Google Cloud Dynamic Workload Scheduler를 활용한 AI 워크로드 관리
오늘날 AI 모델의 훈련과 추론에는 대규모의 컴퓨팅 자원이 필요하며, 특히 TPU나 GPU 같은 가속기 자원을 어떻게 효율적으로 활용하느냐가 매우 중요한 문제로 부상했습니다. 이 글에서는 AI 인프라 운영자와 AI 개발자·데이터 과학자가 Google Cloud의 Dynamic Workload Scheduler(이하 DWS)를 통해 AI 워크로드를 효율적으로 관리할 수 있는 방법을 살펴보겠습니다. 먼저 AI 인프라 자원 효율성의 중요성에 대해 이야기한 뒤, 잡 스케줄러가 어떤 역할을 담당하는지 짚어보겠습니다. 그다음 Google Cloud DWS를 어떻게 활용할 수 있는지 정리해보겠습니다.
AI 인프라 자원 효율성이 중요한 이유
고성능 AI 인프라 자원은 매우 비싸므로, 최대한 효율적으로 활용해야 합니다. AI 모델의 훈련이나 추론 작업에는 수백~수천 개의 GPU/TPU가 투입되는 경우도 많은데, 예를 들어 클라우드에서 고급 NVIDIA A100 GPU 한 대를 1시간만 사용해도 수 달러 이상의 비용이 발생합니다. 이렇게 GPU/TPU 비용이 높기 때문에 사용하지도 않는 자원을 미리 확보해 두거나 계산 작업에 제대로 활용하지 못하면 즉시 금전적 낭비로 이어집니다. 특히 GPU를 가동하면서 놀리는 시간(idle)이 길어지면, 실제로는 사용하지 않는 그 시간에도 비용을 지불하게 되어 결국 불필요한 비용 지출이 발생합니다.
뿐만 아니라 자원 활용이 비효율적이면 병목현상이 생겨서 자칫 AI 프로젝트 지연될 수 있습니다. 실제로 필요한 시점에 GPU가 제대로 확보되지 않으면 다른 작업들이 대기 상태로 밀리면서 개발 사이클이 늘어나고, 반대로 일부 GPU가 남아도는 상황에서는 정작 GPU가 부족한 팀이나 작업이 생기는 식으로 리소스가 불균형하게 사용될 가능성이 큽니다. 제대로 된 스케줄링과 리소스 관리가 없으면 어떤 작업은 자원을 기다리느라 멈춰 있고, 다른 한편에서는 쓸데없이 자원이 남아도는 식의 비효율이 발생하게 됩니다. 결국 동일한 작업을 수행하는 데 더 오래 걸려 시간과 비용 면에서 손해를 보게 됩니다.
환경 지속 가능성 측면에서도 효율적인 AI 자원 운영은 매우 중요합니다. 고성능 GPU 한 대가 소모하는 전력은 상당히 크기 때문에 사용하지 않는데 켜 둔 채로 두면 전력 낭비와 탄소 배출을 늘리는 원인이 됩니다. 효율적인 GPU 활용이 이루어지지 않을 경우에는 불필요한 비용 지출뿐 아니라 막대한 전력 소모로 인해 탄소 발자국이 커지는 문제도 발생하게 됩니다. 반면 필요한 때에만 자원을 가동하고 필요 없을 때는 즉시 해제하는 방식으로 운영하면, 전력 낭비가 줄어들어 친환경적인 운영이 가능해지고 경제적 비용 역시 절감할 수 있습니다. 기업 입장에서 리소스 최적화에 실패하면 불필요한 비용과 에너지를 낭비해 경쟁력까지 떨어질 수 있으므로, AI 인프라 운영에 있어 자원 효율성을 최적화하는 것은 선택이 아닌 필수라는 인식이 점차 확산되고 있습니다.
Google Cloud Dynamic Workload Scheduler의 역할
이처럼 AI 인프라를 효율적으로 운영하기 위해서는 잡 스케줄러라는 도구가 중요한 역할을 담당합니다. 잡 스케줄러는 다양한 컴퓨팅 작업을 효율적으로 배치하고 관리하여, 적절한 시점에 적절한 자원을 할당해 작업들의 원활한 수행을 돕습니다. 즉, 동시에 처리해야 하는 많은 작업 중에서 어떤 것을 먼저 실행할지, 어떤 자원을 어느 작업에 할당할지를 결정하는 메커니즘을 제공해 전체 시스템 성능을 끌어올리고 비용을 낮추는 데 기여합니다. 예컨대 수십 개의 AI 모델 훈련 작업이 쌓여 있다고 가정해보면 잡 스케줄러가 가용 GPU들을 적절히 배분해 어느 한쪽이 과도하게 독식하거나 다른 한쪽이 부족해지지 않도록 균형을 잡아줍니다. 이런 방식으로 자원의 과다할당이나 부족 현상을 줄이고, 운영 효율을 높여서 비용을 절감할 수 있습니다.
Google Cloud의 DWS는 이 같은 잡 스케줄링 기능을 AI 워크로드에 특화하여 제공하는 플랫폼입니다. Google 내부에서는 오래전부터 Borg라는 대규모 클러스터 관리 기술을 통해 수백만 개의 작업을 실시간으로 스케줄링해 왔고, 2023년 기준으로 세계 최대 규모의 LLM 분산 훈련에 이르기까지 이 시스템을 활용하고 있습니다. DWS는 이러한 구글의 Borg 스케줄링 기술을 기반으로 만들어진 것으로, 이미 검증된 스케줄링 핵심 기술을 Google Cloud 고객들을 위해 풀어낸 셈입니다.
DWS가 추구하는 핵심적인 목표는 GPU, TPU 같은 AI 가속기 자원에 대한 접근성을 높이고 효율을 극대화하며, 동시에 비용도 최적화하는 데 있습니다. 예컨대 AI 모델을 훈련하거나 추론할 때 GPU나 TPU가 필요한 순간이 오면 클라우드에서 자동으로 이를 확보해 주고, 사용이 끝나면 즉시 반환하는 방식으로 불필요한 비용과 리소스 낭비를 최소화합니다. 사용자가 “GPU 8개를 1시간 동안 쓰고 싶다”는 요청하면, Google Cloud가 내부적으로 GPU가 비는 시점을 파악해 리소스를 확보하자마자 VM 인스턴스를 생성해 일괄 연결해 주어 필요한 시점에 리소스가 모자라 작업이 끊길 염려가 줄어듭니다. 반대로 자원을 미리 예약해 놓고 대기하느라 사용하지도 않는 GPU 비용을 지불해야 하는 상황도 방지할 수 있습니다. 이처럼 DWS를 활용하면 AI 인프라 자원을 탄력적으로 관리할 수 있어, 필요할 때만 자원을 사용하고 그렇지 않을 때는 자동으로 반납해 운영 효율을 높일 수 있습니다.
DWS의 두 가지 모드: Calendar 모드와 Flex Start 모드
DWS는 AI 작업의 특성에 따라 선택적으로 활용할 수 있도록 두 가지 운영 모드를 제공합니다. 바로 Calendar 모드(Calendar mode)와 Flex Start 모드(Flex Start mode)로 전자는 예측 가능하고 장기적인 작업에, 후자는 일시적이고 가변적인 작업에 각각 최적화되어 있습니다. AI 인프라 자원을 사용하는 패턴에 따라 이 둘을 잘 조합하면, 실제 환경에서 큰 효율을 거둘 수 있습니다. 각 모드의 특징을 알아보겠습니다.
Calendar 모드는 일정 기간 동안 일관되게 자원을 사용하는 작업에 적합합니다. 수 주~수개월에 걸친 ML 모델 훈련, PoC 프로젝트, 정기적으로 돌아가는 추론 서비스 등이 대표적 예시입니다. 매일 혹은 매주 일정한 양의 자원이 꾸준히 필요하거나, 특정 시점부터 일정 기간 동안 작업이 중단 없이 진행되어야 할 때 Calendar 모드를 사용하면 미리 리소스를 예약해 둘 수 있습니다. 즉, 원하는 시작 날짜와 필요한 자원을 지정해 미래 예약을 걸어 놓으면 DWS가 그 시점에 맞춰 해당 자원을 자동으로 확보해 줍니다. 호텔 객실을 예약해 두듯이, 원하는 기간 동안 GPU/TPU를 독점 사용하는 개념입니다. 기간이 끝나면 VM은 자동으로 종료되고, 예약했던 자원도 반환·삭제되어 효율적입니다. 이 Calendar 모드는 7일·14일 단위 등 정해진 기간 예약을 지원하며 최대 8주 이전까지 미리 예약할 수 있도록 계획 중이어서, 장기·정기 작업에 매우 유용합니다.
Flex Start 모드는 짧고 예측하기 어려운 작업에 최적화되어 있습니다. 이름에서 알 수 있듯, 작업 시작 시점이 유연하고, 자원을 사용할 때만 과금을 하도록 돕습니다. 예컨대 모델 미세조정(fine-tuning)이나 간헐적으로 실행되는 실험적 훈련, 일회성 대규모 추론 배치 작업처럼 언제 실행될지 알 수 없고, 한 번에 길지 않은 시간만 필요할 수도 있는 잡에 특히 적합합니다. Flex Start 모드에서는 필요한 가속기 수량과 최대 사용 시간을 지정하여 용량 요청을 보내면, DWS가 자원 가용 상황을 파악해 즉시 자원이 있으면 바로 VM을 생성하고, 부족하다면 요청을 큐에 넣어 대기시킵니다. 자원이 확보되는 순간 VM을 만들어 작업을 시작하므로, 사용자는 GPU가 비는 시점만 기다리면 됩니다. 또한 요청이 최대 7일까지 대기 가능하기 때문에, 요청 시간이 짧은 작업일수록 빠르게 자원을 배정받고 긴 작업일수록 대기 시간이 길어질 수 있습니다.
Flex Start 모드에서 가장 돋보이는 장점은 실제로 자원을 사용하는 동안에만 비용을 지불한다는 점입니다. 작업이 실행되는 동안에만 VM이 동작하고, 작업이 끝나면 즉시 종료되므로 불필요한 유휴 시간에 대한 과금이 일어나지 않습니다. 기존에는 필요할 때 GPU를 바로 쓰기 위해 미리 잡아놓았다가 놀리는 경우가 많았지만, Flex Start 덕분에 꼭 필요한 시점에만 확보하고 금세 반납하기 때문에 비용 낭비가 훨씬 줄어듭니다. Spot VM이나 Preemptible VM처럼 단가 자체를 낮추는 방식과는 달리, Flex Start는 아예 불필요한 시간을 없애서 비용을 아끼는 접근입니다. 예측하기 어려운 실험성 작업, 짧은 모델 튜닝, 혹은 가끔씩 발생하는 대규모 배치 추론 작업 등에 이 모드를 쓰면, 리소스가 생기는 타이밍에만 실행하고 다 마치면 곧바로 자원을 회수하므로 효율과 경제성을 동시에 잡게 됩니다.
Google Cloud 제품에서 DWS 활용 방법
DWS는 Google Cloud의 여러 제품과 통합되어 있기 때문에, 각 서비스별로 DWS를 어떻게 활용하느냐에 따라 AI 인프라 운영 효율이 크게 달라질 수 있습니다. 먼저 Compute Engine에서는 관리형 인스턴스 그룹(MIG)을 통해 DWS를 적용할 수 있습니다. 예를 들면 GPU VM으로 구성된 MIG를 만들고, 특정 시간대에 인스턴스 수를 늘리거나 줄이는 스케줄을 설정하면, DWS가 해당 시간에 필요한 GPU 용량을 확보해 VM을 생성합니다. Calendar 모드의 미래 예약 기능과 MIG를 연동하면, 지정된 시점에 MIG가 자동으로 확장되도록 할 수도 있어 피크 타임에 맞춰 미리 GPU 인스턴스를 확보하고, 사용하지 않는 시간대에는 축소해 비용을 아낄 수 있습니다. 예컨대 평일 낮에는 GPU 10대를 쓰다가 밤에는 2대만 유지하도록 DWS로 일정을 관리하는 식입니다.
Batch 서비스는 완전관리형 대규모 배치 잡 관리 툴로, 내부적으로 DWS를 사용해 잡을 큐에 대기시켰다가 자원이 확보되면 실행합니다. 굳이 사용자가 별도 설정하지 않아도 Batch에 GPU/TPU 자원이 필요한 잡을 제출하기만 하면, 가용한 리소스가 생길 때까지 자동으로 대기시키고 적절할 때 작업을 실행하는 구조입니다. Google은 대규모 배치 AI 작업을 오프피크(off-peak) 시간대에 실행해 리소스를 더 쉽게 확보하고 비용을 최적화하길 권장하는데, DWS와 Batch를 연동하면 이런 전략을 간편하게 구현할 수 있습니다.
다음으로 Kubernetes Engine(GKE*에서도 DWS를 이용한 잡 스케줄링이 가능합니다. GKE 클러스터에서 노드풀 생성 시 –enable-queued-provisioning 옵션을 활성화하면, 필요 노드를 곧바로 만드는 대신 DWS 큐에 등록했다가 자원이 생길 때 노드를 프로비저닝하는 방식으로 동작합니다. 이를 통해 GPU가 부족할 땐 DWS가 백그라운드에서 새 GPU 노드 생성 요청을 대기열에 넣고, GPU 서버가 비면 노드를 추가해 파드를 실행시킵니다. GKE에서는 Kueue 같은 오케스트레이션 도구와 연계해 특정 잡을 suspend 상태로 제출해두었다가, 자원이 확보되면 DWS가 잡을 자동으로 시작하도록 할 수도 있습니다. 이렇게 하면 GKE 파드 스케줄링에 있어서도 DWS의 자원 대기·할당 메커니즘이 적용되어 클러스터 자원을 더욱 알차게 쓸 수 있습니다.
Vertex AI에서는 사용자 정의 훈련 잡(Custom Training Job)을 실행할 때 scheduling.strategy를 FLEX_START로 설정하면, 해당 잡이 DWS의 Flex Start 모드로 제출됩니다. 그러면 필요한 GPU/TPU 자원이 확보될 때까지 잡이 대기하고, 확보되는 순간 자동으로 시작되므로 인프라 수동 관리가 크게 줄어듭니다. 또한 최대 대기 시간(maxWaitDuration)을 설정해 예를 들어 “최대 30분까지 기다렸다가 자원이 없으면 취소” 같은 정책도 줄 수 있습니다. 이를 통해 모델 학습 잡을 유연하게 스케줄할 수 있고, 원하는 자리가 나면 곧바로 시작하니 개발자는 실험 코드 작성이나 분석에만 집중할 수 있습니다.
Cloud TPU 환경에서는 Queued Resources 인터페이스를 통해 DWS 기능을 사용할 수 있습니다. 사용자가 필요한 TPU 기기의 종류와 개수를 지정해 대기열(queue)에 등록해 놓으면, TPU 자원이 비는 시점에 Cloud TPU 서비스가 해당 요청을 처리해 프로젝트에 할당합니다. 예컨대 TPU v3 8개가 필요할 때 즉시 가용 자원이 없다면 대기 상태로 있다가, 8개가 동시에 준비되는 시점에 한꺼번에 할당해 주는 식입니다. 이는 Flex Start 모드와 유사하게 동작하여, TPU가 모자랄 때 매번 수동으로 재시도할 필요 없이 필요한 용량이 확보되는 즉시 자동으로 실행 환경을 마련해 줍니다. GKE와 연계해 TPU Pod를 queued로 만들 수도 있고, gcloud/REST API로 직접 QueuedResource 객체를 생성해 TPU를 요청할 수도 있습니다. 특히 TPU Pod처럼 다수 TPU 칩이 동시에 필요한 작업이라면, 준비가 완전히 끝났을 때 한꺼번에 실행해 최적의 환경을 보장할 수 있습니다.
이렇듯 Compute Engine의 MIG 스케줄링, Batch의 대규모 잡 큐잉, GKE 노드 큐 대기, Vertex AI 잡의 Flex Start, 그리고 Cloud TPU의 Queued Resources까지, Google Cloud가 제공하는 주요 서비스 전반에서 DWS가 유연한 자원 할당을 지원합니다. AI 인프라 운영자는 이 기능들을 자신의 사용 사례에 맞춰 적극 활용함으로써 리소스 부족이나 낭비를 최소화하고, AI 실험과 서비스를 더 빠르고 원활하게 제공할 수 있습니다.
DWS로 AI 인프라 효율 극대화하기
잡 스케줄러의 중요성이 점점 커지는 시대에 Google Cloud DWS 같은 스케줄링 솔루션을 도입하면 AI 프로젝트를 더욱 적은 비용과 빠른 속도로 진행할 수 있으며, 궁극적으로 에너지 사용과 탄소 배출을 줄이는 친환경 경영에도 기여할 수 있게 됩니다. 만약 Google Cloud 환경에서 AI 인프라를 직접 운용하거나 곧 대규모 AI 훈련 작업을 준비하고 있다면 DWS를 활용한 스마트한 워크로드 스케줄링이 큰 도움이 될 것입니다. 직접 도전해 보고 싶다면? 메가존소프트가 도움을 드리겠습니다.