더북(TheBook)

시스템 자동화란 무엇인가요?

불과 몇 년 전까지만 해도 시스템 관리자가 관리해야 할 시스템의 수는 그리 많지 않았습니다. 하지만, 세상이 변했습니다. 인터넷 규모는 더욱 커졌고 네트워크는 빠르고 안정적이며 하드웨어 가격은 날이 갈수록 떨어집니다. 사용자의 요구도 늘어납니다. 기업은 새롭고 창의적인 서비스를 빠르고 안정적으로 제공해야 합니다. 최근에는 개개의 컴퓨터로 처리하던 업무를 인터넷을 통해 서버에서 처리할 수 있는 클라우드 컴퓨팅이 등장했습니다. 클라우드 컴퓨팅은 수많은 시스템을 네트워크로 연결하여 운영합니다. 모든 시스템을 관리해야 하는 짐은 시스템 관리자가 짊어져야 합니다.

이제 시스템 관리자는 네트워크로 연결된 수많은 시스템을 운영해야 합니다. 수백, 수천 대의 시스템을 보유한 기업 환경까지는 아니더라도 최소한 수십 대 이상의 시스템을 관리하는 상황입니다. 아무리 성능이 뛰어나도 시스템 하나로는 안정적이고 신속한 서비스 제공이 불가능하기 때문입니다.

서비스가 중단되지 않도록 시스템을 운영해야 한다는 목적은 전과 동일하지만, 관리할 대상과 관리 방법은 달라질 수밖에 없습니다. 몇몇 서버를 관리했던 때를 가내수공업에 비유한다면 수많은 시스템을 대상으로 하는 지금은 자동화된 자동차 공장에 비유할 수 있을 것입니다.

그림 1-5 시스템 관리 대상과 방법의 변화: 가내수공업과 공장자동화

한정된 인원, 예산, 시간으로 모든 시스템을 관리하기란 쉽지 않을 것입니다. 이를 극복하기 위해 시스템 관리를 자동화합니다. 시스템 자동화란 관리 작업을 일정한 규칙에 따라 스스로 처리하게 만드는 일련의 과정이라고 정의할 수 있습니다.

단순한 작업조차 시스템 수가 늘어난다면 시스템 관리자의 업무는 기하급수적으로 늘어납니다. 리눅스 시스템의 IP 주소를 조회하는 단순한 업무를 예로 들어 봅시다. 예전에는 IP 주소를 알아내는 명령 ifconfig만 알면 문제가 해결되었지만 지금은 관리자 혼자 50대나 되는 리눅스 시스템을 일일이 부팅해서 ifconfig 명령 결과를 기록해야 합니다. 시간을 줄이려고 50명의 시스템 관리자를 고용할 수는 없는 노릇입니다. 그래서 명령을 한 번 수행하면 50대의 시스템에서 자동으로 ipconfig 명령으로 IP 주소를 조회하고 그 결과를 명령을 실행한 시스템으로 보내 시스템 관리자가 확인할 수 있는 셸 스크립트를 만들었습니다. 셸 스크립트를 제작하는 데 시간을 소모했지만 불필요한 수작업을 줄여 시간과 인력이라는 매우 중요한 자원을 절약한 셈입니다.

그림 1-6 시스템 자동화와 수작업 비교

생각해봅시다. 50대의 우분투 시스템을 오늘 내로 배치해야 합니다. 새로 구입한 시스템 포장을 뜯고, 네트워크 배선하고, 각 시스템마다 우분투를 설치합니다. 아마 5대 정도 준비를 끝내면 오늘 퇴근할 가능성이 희박하다는 사실을 깨닫게 될 것입니다. 단순한 업무는 관리자의 의욕을 저하시킵니다. 단순한 업무를 줄이는 대신 시스템 관리자가 창조적이고 생산적인 일을 할 수 있도록 배려해야 합니다.

시스템 하나에 문제가 발생한다면 문제의 원인을 밝히고 해결하는 데 많은 시간이 걸릴 수밖에 없습니다. 문제를 해결할 때까지 서비스를 중지해야 하는 최악의 사태가 벌어질지도 모릅니다. 설치 과정을 자동화해서 미리 설정해 놓은 대로 시스템을 다시 전개하는 편이 문제를 해결하는 데 많은 노력을 들이는 것보다 효율적입니다. 짧은 시간에 서비스를 정상화한 다음, 앞서 발생한 문제의 원인을 고민하는 여유도 가질 수 있습니다.

그뿐이 아닙니다. 시스템 관리자도 사람인 이상 실수하기 마련입니다. 50대의 시스템 설치를 끝내고 기본적인 시스템 환경 설정 과정에서 발생한 작은 오타 하나 때문에 전체 시스템이 원하는 대로 동작하지 않을지도 모릅니다. 문제의 원인을 찾는 것조차 쉽지 않을 수도 있습니다. 기계적이고 반복적인 일일수록 사람보다 컴퓨터가 더 잘 처리하는 법입니다. 시스템 관리자의 실수를 줄이기 위해서도 시스템 자동화는 필요합니다.

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