관리 대상 시스템 수가 많을 경우 관리자는 cron 등을 이용해 단순 반복 작업을 예약 기반으로 수행합니다. 특정 시간에 명령어나 유틸리티가 수행되도록 해 불필요한 수작업을 줄이는 것입니다. 전통적인 전산실은 서버 인프라의 성능과 용량 그리로 구성이 어느 정도 정해져 있죠. 반면에 클라우드 환경에서는 VM을 올려 구성한 가상화 인프라가 역동적으로 확장 및 구성됩니다. 이런 특징으로 인해 대규모 시스템 환경에서 일정을 예약해 일괄 작업을 하기 어려울 때가 있죠. 이런 경우 cron 같이 유용한 도구를 200% 활용하지 못합니다.
그렇다면 클라우드 환경에서는 VM 관리를 위해 cron 같은 작업 스케줄링 도구의 효용 가치가 낮은 것일까요? 정답은 ‘NO’입니다. cron은 이용한 잡 스케줄링은 여전히 효과적인 관리 방식입니다. 몇몇 서비스를 연계하면 cron은 클라우드 환경에 아주 잘 맞는 관리 도구가 됩니다.
그 팁을 간단히 소개하겠습니다. 구글 클라우드 플랫폼(GCP)은 Cloud Scheduler라는 이름의 cron 잡 서비스를 제공합니다. 현재 베타 버전 단계인데요, Cloud Scheduler가 동작하는 방식을 보면 클라우드 환경에 최적화된 cron의 모습이 보입니다.
Cloud Scheduler는 GCP의 Cloud Pub/Sub 서비스를 이용해 잡 스케줄링을 합니다. 아이디어가 참 좋다 싶네요. 작업 예약을 이벤트로 보고 필요한 위치로 필요한 이벤트 데이터를 전송하기 위해 Cloud Pub/Sub를 cron과 연계해 쓰는 것입니다.
Cloud Scheduler는 VM 인프라 관리를 위한 작업을 매우 똑똑한 방식으로 스케줄링합니다. Cloud Pub/Seb를 통해 각각의 VM 인스턴스에 메시지가 전달되는데, 이후 Cloud Pub/Seb 토픽이나 구독 모델에 상응하는 cron 스크립트나 관리 유틸리가 VM 인스턴스에서 실행됩니다.
이런 특징으로 인해 전체 VM을 대상으로 한 작업과 함께 특정 서버들을 대상으로 한 개별 작업을 함께 돌릴 수 있습니다. 본 포스팅에 소개한 GCP 환경에서의 작업 일정 예약에 대한 상세 내용은 관련 문서를 참조 바랍니다.