더북(TheBook)

1.2.2 어떤 작업을 자동화합니까?

시스템 자동화는 주로 시스템 관리자의 지루하고 반복적인 업무를 대상으로 합니다. 전통적으로 시스템 관리자는 다음 일들을 처리합니다.

시스템의 네트워크 주소와 이름 정보 할당하기

운영 중인 서버의 환경 설정 변경하기

새로운 시스템에 운영체제 설치하기

사용자 계정 관리하기

소프트웨어 관리하기

자료 관리하기(이전, 공유, 백업, 복원)

로그 점검, 침입 탐지, 취약점 분석으로 시스템 보안 유지하기

시스템 부하, 디스크 공간, 장치 고장 감시 등 물리적인 시스템 상태 점검하기

이런 업무 중에서 절차가 명확하고 반복적인 작업일수록 자동화에 적합합니다. 이 책에서는 다양한 시스템 자동화 도구를 소개합니다. 어떤 도구를 사용하더라도 다음 몇 가지 원칙은 기억해 둘 필요가 있습니다.

예외를 줄이기 위해 일관된 방법을 적용해야 합니다. 같은 시스템, 같은 운영체제, 같은 응용 프로그램을 관리한다면 더 바랄 나위가 없겠지만 적어도 시스템 사이의 차이를 최소화시키려고 노력해야 합니다. 예외적인 작업이 늘어날수록 자동화 과정은 더욱 복잡해지고 관리는 어려워질 것입니다.

재사용을 고려해야 합니다. 어떤 작업에 사용한 셸 스크립트를 조금만 수정해서 전체 시스템을 대상으로 배포하여 적용할 수 있다면 유용할 것입니다. 자동화한 결과를 재사용하면 그만큼 시간과 업무를 줄일 수 있습니다.

문제가 발생하면 시스템 스스로 감지해서 관리자에게 알려야 하며, 가능하다면 자동으로 복구할 수 있어야 합니다. 궁극적으로 시스템 관리자가 없어도 시스템이 운영되는 무인 운영(No Operations, NoOps)을 지향해야 합니다.

내가 아닌 다른 누군가가 시스템을 관리하더라도 문제없어야 합니다. 결국 시스템 관리도 팀 업무입니다. 자동화했던 작업을 유지 보수할 때도 정보가 필요합니다. 자동화한 내용을 누구나 이해할 수 있도록 문서화해야 합니다.

자동화 과정에서 보안을 유지해야 하며, 시스템을 변경하는 중요한 작업은 안전한 환경에서 테스트한 후 전체 시스템에 적용해야 합니다.

사실 이 책에서 소개하는 시스템 관리자를 위한 자동화 도구는 빙산의 일각에 불과합니다. 지금도 변화에 맞추어 수많은 도구가 개발되고 있습니다. 모든 상황에 딱 맞는 은색 총알은 존재하지 않습니다. 실무에서 다루어야 할 시스템 환경이 저마다 다르기 때문에 이 책 내용을 그대로 적용하기는 어려울 것입니다. 이 책으로 시스템 자동화를 고민하고 테스트하면서 상황에 따른 대처 능력을 키우기 바랍니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.