배치 작업(Batch Job)은 IT 운영의 핵심 업무로, 관리자의 개입 없이 자동으로 스케줄링을 통해 처리하는 작업을 의미합니다. 배치 작업의 대표적인 유형 중 하나가 데이터 처리입니다. 대규모 리소스가 필요한 유형의 작업이 많다 보니 보통 야간 시간에 일정을 잡아 처리합니다. 프로덕션 환경에 영향을 끼치면 안 되다 보니 이러한 작업 형태를 띤다고 합니다. 배치 작업을 떠올릴 때 자동화 못지않게 리소스를 중요하게 보는 이유입니다. 이는 배치 작업과 클라우드가 꽤 잘 어울리는 이유이기도 합니다.
😮 배치 작업과 궁합이 좋은 Google Kubernetes Engine (GKE)
구글 클라우드의 매니지드 쿠베너테스 엔진인 Google Kubernetes Engine (GKE)는 배치 처리에 필요한 모든 것을 갖추고 있습니다. 중요 포인트를 짚어 보겠습니다.
👍 탄력적 자원 사용
먼저 GKE는 배치 작업의 리소스 요구에 맞게 탄력적으로 자원을 사용할 수 있습니다. GKE는 다양한 하드웨어 요구 사항을 충족하기 위해 다양한 Compute Engine VM 시리즈를 지원합니다. 이러한 VM은 ARM, Intel, AMD 프로세서 등 다양한 CPU 옵션을 지원합니다. 더불어 AI/ML(Artificial Intelligence / Machine Learning)같이 컴퓨팅 집약적인 작업을 위해 GPU 및 TPU와 같은 하드웨어 가속기도 지원합니다. 참고로 TPU는 Google의 맞춤형 ASIC으로, AI/ML 작업을 가속할 수 있습니다.
👍뛰어난 확장성
GKE는 확장성도 뛰어난데요. 노드 풀을 통해 배치 작업 확장을 지원합니다. 최대 15,000개의 노드로 클러스터를 구성할 수 있어 어떤 유형의 배치 작업도 자원 걱정 없이 처리할 수 있습니다. 노드 풀은 자동으로 크기가 조정됩니다. 따라서 관리자가 일일이 손을 쓰지 않아도 배치 작업 요구에 맞게 자원을 활용할 수 있습니다. 관리자가 할 일은 최대, 최소 크기만 설정하면 됩니다. 그러면 설정 범위 내에서 노드 수가 자동으로 조정됩니다.
👍 확실한 고가용성 보장
GKE는 고가용성도 충실하게 보장합니다. 배치 작업 처리에 있어 고가용성 보장은 꽤 중요합니다. 그 이유는 두 가지 측면에서 살펴볼 수 있습니다. 배치 작업은 대량의 데이터를 처리하는 경우가 많은데요. 배치 작업 시 시스템에 문제가 생기면 데이터 무결성에 영향을 끼칠 수 있어 고가용성 보장이 필요합니다. 다음으로 배치 작업은 정해진 시간에 완료되어야 합니다. 보통 야간에 작업을 하는 이유는 프로덕션 환경에 영향을 끼치지 않기 위함입니다. 이는 다른 말로 비즈니스에 영향을 끼치지 않아야 한다는 것입니다. 시스템이 다운되거나 문제가 발생할 경우 배치 작업 완료 시간이 늦어질 수 있고 이는 곧 비즈니스에 영향을 미칠 수 있습니다.
GKE는 지역 클러스터를 지원하여 고가용성 보장에 대한 고민을 덜어냅니다. 지역 클러스터는 여러 영역에 복제된 고가용성 제어 평면과 노드 풀을 제공합니다. 노드 자동 복구는 실행 중인 노드의 상태를 확인하고 실패한 노드를 복구합니다. 노드 자동 업그레이드는 클러스터의 노드가 제어 평면 버전과 일치하도록 유지합니다. 이외에도 노드 자동 프로비저닝(Node Auto Provisioning), 노드 자동 업그레이드(Node Auto Upgrade) 등의 기능도 배치 작업 고가용성 보장에 도움이 됩니다.
👍 작업과 자원의 비용 관리에 있어 높은 효율성
클라우드를 이용해 배치 작업을 처리할 때 비용 관리가 중요합니다. 비용은 크게 작업과 자원 측면에서 관리가 가능한데요. 먼저 작업의 경우 멀티테넌시(Multitenancy)를 활용하는 것이 도움이 됩니다. GKE는 멀티테넌시를 지원하므로 여러 사용자가 동일한 클러스터를 공유할 수 있습니다. 각 사용자는 자신의 작업을 다른 사용자의 작업과 분리할 수 있습니다.
스케줄링은 GKE의 kueue라는 kubernetes 네이티브 작업 큐잉 시스템을 이용하면 됩니다. kueue는 리소스 할당, 작업 승인, 작업 대기, 작업 중단을 관리합니다.
다음으로 자원 측면에서 배치 작업 비용을 관리하는 다양한 옵션을 알아보겠습니다. GKE는 비용 효율적인 클러스터 운영을 위해 다양한 도구를 제공합니다. 예를 들어 스팟 VM은 유연한 배치 작업의 경우 더 저렴한 가격을 제공합니다. GPU 시간 공유 및 다중 인스턴스 GPU를 사용하면 GPU 노드의 리소스를 더 효율적으로 사용할 수 있습니다. 스토리지의 경우 영구 저장소로 지속 디스크를 사용하고 높은 성능이 필요할 때마다 임시 저장 공간으로 SSD를 쓰면 됩니다.
👍 집중적인 모니터링과 가시성 확보
마지막으로 모니터링 및 가시성에 대해 알아보겠습니다. GKE는 구글 클라우드의 인프라 운영 서비스 제품군과 통합되어 있습니다. 따라서 배치 작업을 중앙 집중적으로 모니터링하는 가운데 자원과 성능에 대한 가시성을 확보할 수 있습니다. 참고로 GKE는 모니터링 및 가시성을 위해 Google Cloud Operations Suite와 통합되어 있습니다. 더불어 Cloud Logging 및 Cloud Monitoring을 통해 관리자는 배치 작업에 대한 자세한 정보를 확인할 수 있습니다. 필요에 따라 Prometheus를 이용하는 것도 가능합니다.
간단히 살펴본 바와 같이 GKE는 배치 작업을 클라우드 환경에서 하고자 할 때 여러 이점을 제공합니다. 더 자세한 사항이 궁금하다면? 메가존소프트가 도움을 드리겠습니다.
이상으로 『 배치 작업에 Google Kubernetes Engine이 적합한 이유 』 에 대해 알아보았습니다. 😎🤗🤗
Google Cloud와 관련된 더 자세한 내용은 메가존소프트로 문의해 주세요. 👉 메가존소프트 문의 바로가기