GKE의 AI/ML 워크로드를 위한 간소화된 자동 확장 개념

이 문서에서는 Google Kubernetes Engine (GKE)의 AI/ML 워크로드에 대한 자동 확장 개념을 간략하게 설명합니다.

이 문서는 GKE를 처음 사용하는 머신러닝 (ML) 엔지니어를 대상으로 합니다. AI/ML 워크로드에 GKE를 쉽게 사용할 수 있도록 다음 문서를 읽어보시기 바랍니다.

  1. AI/ML 추론에 GKE를 사용해야 하는 이유
  2. GKE의 AI/ML 모델 추론 정보
  3. GKE의 AI/ML 워크로드에 대한 간소화된 자동 확장 개념 (이 문서)

시작하기 전에

다음 개념에 대한 기본적인 이해가 있어야 합니다.

문제: 최대 수요 충족

가상의 온라인 소매업체인 Cymbal Shops에서 연례 할인 행사를 준비하고 있습니다. 매장의 AI 기반 추천 엔진은 대규모 온라인 쇼핑객에게 실시간 맞춤 제안을 제공해야 합니다.

추천 엔진이 느려지면 사용자 환경이 저하되고 판매가 감소합니다. 하지만 정상적인 트래픽 기간에는 과도한 서버 용량을 프로비저닝하는 것이 비용 효율적이지 않습니다. 목표는 수요에 따라 리소스를 자동으로 확장하여 비용을 관리하면서 우수한 사용자 경험을 보장하는 것입니다.

솔루션: 주문형 자동 확장

GKE 자동 확장 기능은 판매 급증에 대비하는 매장 관리자와 같습니다. 매니저는 대규모 건물을 항상 인력과 전력으로 가득 채우는 대신, 언제든지 쇼핑객의 요구에 맞게 직원, 매장 공간, 장비 등 매장의 전체 용량을 동적으로 조정합니다.

GKE는 동일한 원칙을 적용합니다. 실시간 수요에 따라 애플리케이션 (워크로드와 인프라 모두)에 할당된 리소스를 자동으로 확장합니다.

GKE 자동 확장의 비즈니스 이점

수평 확장 전략과 수직 확장 전략을 결합하여 GKE는 다음과 같은 세 가지 핵심 이점을 제공하는 강력한 접근 방식을 제공합니다.

  • 비용 최적화: 사용한 컴퓨팅 리소스에 대해서만 비용을 지불하고 과도한 프로비저닝 비용을 방지합니다. GKE 자동 확장 기능은 애플리케이션을 실제 CPU 및 메모리 요구사항에 맞게 자동으로 조정하여 낭비를 방지합니다. 또한 필요할 때만 비용이 많이 드는 특수 하드웨어 (예: GPU)를 프로비저닝하고 작업이 완료되면 삭제할 수 있습니다.
  • 안정성 및 성능 향상: 애플리케이션이 갑작스러운 트래픽 급증을 처리하기 위해 자동으로 확장 (사본 추가)되어 사용자에게 안정성을 보장할 수 있습니다. 동시에 GKE의 자동 확장 기능은 애플리케이션을 비정상 종료시킬 수 있는 일반적인 '메모리 부족' (OOM) 오류를 방지하는 데 도움이 됩니다. 까다로운 AI/ML 작업의 경우 효율적으로 실행하고 작업을 제시간에 완료하는 데 필요한 고성능 하드웨어를 사용할 수 있습니다.
  • 운영 오버헤드 감소: GKE의 다차원 자동 확장 전략은 리소스 관리를 크게 간소화합니다. GKE는 리소스 요청을 조정하고 다양한 하드웨어의 전문 노드 풀을 관리하는 복잡한 작업을 자동화합니다. 이 자동화를 통해 엔지니어링팀은 인프라 조정이 아닌 애플리케이션 개발에 집중할 수 있습니다.

워크로드 자동 확장

워크로드 자동 확장 기능은 수요에 맞게 애플리케이션의 전력을 자동으로 조정합니다. GKE는 2단계 자동 확장 시스템을 사용하여 애플리케이션의 리소스를 효율적으로 관리합니다.

수평형 포드 자동 확장 처리 (HPA): 리소스 추가

수평형 포드 자동 확장 처리 (HPA)는 애플리케이션의 포드 리소스 사용률을 모니터링합니다. 이 비유에서 포드는 '판매 직원'이고 HPA는 판매 직원의 바쁜 정도를 관찰하는 '팀 관리자'입니다.

포드에 대한 수요가 증가하면 HPA는 부하를 분산하기 위해 포드를 자동으로 더 프로비저닝합니다. 수요가 감소하면 HPA는 리소스를 절약하기 위해 유휴 포드를 종료합니다.

자세한 내용은 수평형 포드 자동 확장을 참조하세요.

수직형 포드 자동 확장 처리 (VPA): 리소스 성능 향상

수평 확장은 리소스의 양을 늘리는 데 중점을 두는 반면, 수직 확장은 기존 리소스의 성능을 높이는 데 중점을 두는 보완적인 전략입니다. 오프라인 매장 비유를 적용하면 직원을 더 많이 채용하는 것이 아니라 현재 팀의 역량을 강화하여 개인의 효율성을 개선하는 것입니다.

포드 수준 수직 확장의 이 접근 방식은 수직형 포드 자동 확장 처리 (VPA)에 의해 관리됩니다. VPA는 애플리케이션의 리소스 소비를 분석하고 실제 사용량에 맞게 포드의 CPU 및 메모리 요청을 위아래로 조정합니다.

VPA는 포드를 다시 프로비저닝하여 1CPU 및 16GB에서 4CPU 및 64GB로 확장하는 등 포드의 리소스 요청 및 한도를 조정할 수 있습니다. 이 프로세스에는 워크로드를 더 잘 처리하기 위해 성능이 향상된 새 구성으로 포드를 다시 시작하는 작업이 포함됩니다.

자세한 내용은 다음 리소스를 참조하세요.

HPA와 VPA는 상호 보완적입니다. HPA는 트래픽 변화에 따라 포드 수를 조정하고 VPA는 각 포드가 작업에 맞게 올바르게 크기가 조정되도록 지원합니다. 이러한 확장 전략은 리소스 낭비를 방지하고 불필요한 비용을 피하며 트래픽 변동 시 앱이 응답성과 가용성을 유지하도록 지원합니다. 하지만 HPA와 VPA가 충돌할 수 있으므로 동일한 측정항목 (CPU 및 메모리)에 HPA와 VPA를 함께 사용하지 않는 것이 좋습니다. 자세한 내용은 수평형 포드 자동 확장 제한사항을 참고하세요.

인프라 자동 확장

인프라 자동 확장은 워크로드 요구에 맞게 하드웨어를 자동으로 추가하거나 삭제합니다.

클러스터 자동 확장 처리: 건물 관리자

클러스터 자동 확장 처리는 포드를 수용할 수 있는 충분한 기본 인프라 (VM 또는 GKE 컨텍스트의 노드)가 있는지 확인하는 데 도움이 됩니다. 노드는 매장의 '층'에 비유할 수 있으며, 클러스터 자동 확장 처리는 '건물 관리자'에 비유할 수 있습니다.

HPA에서 포드를 더 추가해야 하지만 기존 노드에 사용 가능한 용량이 부족한 경우 클러스터 자동 확장 처리가 새 노드를 프로비저닝합니다. 반대로 노드 사용률이 낮아지면 클러스터 자동 확장 처리가 해당 노드의 포드를 다른 노드로 이동하고 이제 비어 있는 노드를 종료합니다.

자세한 내용은 클러스터 자동 확장 처리를 참고하세요.

노드 풀 자동 생성: 자동화 전문가

클러스터 자동 확장 처리는 기존 노드 풀에 노드를 추가하지만 노드 풀 자동 생성은 클러스터 자동 확장 처리가 Pod의 특정 요구사항에 맞는 새 노드 풀을 자동으로 생성할 수 있도록 하여 클러스터 자동 확장 처리의 기능을 확장합니다.

특정 AI/ML 워크로드에는 범용 노드 풀에서 사용할 수 없는 GPU 또는 TPU와 같은 특수 고성능 하드웨어가 필요합니다. 노드 풀 자동 생성은 워크로드에 필요한 경우 이 특수 하드웨어의 프로비저닝을 완전히 자동화합니다. 이를 통해 컴퓨팅 집약적인 작업도 필요할 때 필요한 하드웨어를 사용할 수 있습니다.

자세한 내용은 노드 풀 자동 생성 정보를 참고하세요.

GKE에서 사용할 수 있는 가속기는 다음을 참고하세요.

ComputeClass: 노드 풀 자동 생성 트리거

노드 풀 자동 생성은 포드의 특정 하드웨어 유형 (예: nvidia-l4-vws) 요청에 의해 트리거될 수 있지만 ComputeClass를 사용하는 것이 더 탄력적이고 최신 방법입니다. ComputeClass는 하드웨어 자동 확장 방식을 제어하고 맞춤설정하기 위해 일련의 규칙에 따라 작동하는 사용자가 정의하는 GKE 리소스입니다. 자체적으로 자동 확장 처리기는 아니지만 클러스터 자동 확장 처리기와 함께 작동합니다.

유사한 예로, ComputeClasses를 매장 장비의 '스마트 요청 양식'이라고 생각하면 됩니다.

판매 담당자 (포드)가 특정하고 엄격한 하드웨어 (예: 'X 브랜드 모델 500 금전 등록기가 필요해')를 요구하는 대신 요청 양식을 사용하여 기능을 요청합니다 (예: '고속 결제 스테이션이 필요해'). 양식(ComputeClass)에는 구매팀(GKE)이 주문을 처리하는 방법에 관한 규칙이 포함되어 있습니다.

ComputeClass는 하드웨어에 대한 포드의 요청을 GKE의 프로비저닝 작업과 분리합니다. 포드가 특정 머신 (예: a3-highgpu-8g)을 요구하는 대신 ComputeClass를 요청할 수 있습니다. ComputeClass 자체는 '스마트' 로직, 즉 GKE에 요청을 처리하는 방법을 알려주는 우선순위가 지정된 규칙 목록을 정의합니다.

자세한 내용은 GKE ComputeClass 정보를 참고하세요.

실제 예시와 YAML 구성을 사용한 ComputeClass에 대한 자세한 내용은 기술 가이드 맞춤 ComputeClass로 GKE 워크로드 최적화를 참고하세요.

자동 확장을 위한 주요 측정항목 및 트리거

자동 확장 구성요소는 정보에 입각한 확장 결정을 내리기 위해 다양한 신호를 모니터링합니다. 다음 표에서는 측정항목 기반 자동 확장 트리거를 비교합니다.

구성요소 다음 항목에 반응 신호 소스 사고 과정 GKE의 작업
HPA 현재 부하 실시간 소비(예: 현재 CPU가 90% 임) '현재 Pod가 과부하 상태입니다. 이 트래픽을 즉시 분배해야 합니다.' 확장 또는 축소: 수요를 충족하도록 포드 복제본 수를 변경합니다.
VPA 크기 조정 효율성 이전 소비량(예: 지난 24시간 동안의 평균 RAM 사용량) '이 포드의 리소스 요구사항이 변경되었거나 초기 추정치가 잘못되었습니다. 실제 사용량에 맞게 리소스 할당을 조정해야 합니다.' 확장 또는 축소: 포드의 크기 (CPU 또는 RAM 한도)를 변경하여 적절한 크기로 조정합니다.
노드 풀 자동 생성 하드웨어 사용 가능 여부 충족되지 않은 요청(예: GPU 노드가 없기 때문에 포드가 '대기 중' 상태임) '요청된 실제 하드웨어가 누락되어 이 포드를 시작할 수 없습니다.' 인프라를 프로비저닝합니다. 특정 하드웨어로 새 노드 풀을 만듭니다.

수평형 포드 자동 확장 처리 (HPA) 트리거: 부하에 대한 반응

HPA는 실시간 성능 측정항목을 모니터링하여 Pod 수를 조정합니다 (확장 또는 축소). 예를 들어 포드의 처리 부하를 나타내는 기본 측정항목인 CPU 및 메모리 사용률은 HPA에서 기본적으로 사용할 수 있습니다.

하지만 일부 측정항목에는 다음과 같은 명시적 구성이 필요합니다.

  • 부하 분산기 측정항목 (초당 요청 수 (RPS)): 애플리케이션 트래픽을 직접 측정하여 더 빠른 확장 응답을 지원합니다. 이 측정항목을 사용하려면 사용률 기반 부하 분산 및 성능 HPA 프로필 사용 설정을 참고하세요.
  • 맞춤 측정항목: '활성 사용자 수'와 같은 맞춤 비즈니스 측정항목에 따라 자동 확장을 구성하여 예상 수요에 따라 리소스를 사전 대응적으로 관리합니다. 커스텀 측정항목을 사용하려면 측정항목 파이프라인을 설정하여 HPA에 노출해야 합니다. 자세한 내용은 Google Cloud Managed Service for Prometheus를 참고하세요.

수직형 포드 자동 확장 처리 (VPA) 트리거: 리소스 요구에 대응

VPA는 이전 리소스 소비량을 모니터링하여 포드의 크기를 조정합니다 (확장 또는 축소).

  • CPU 및 메모리 사용률: VPA는 포드의 과거 사용량을 분석하여 리소스 요청이 올바른지 확인합니다. VPA의 기본 목표는 실제 요구사항에 맞게 포드의 메모리 및 CPU 요청을 늘리거나 줄여 리소스 경합을 방지하는 것입니다.

노드 풀 자동 생성 트리거: 하드웨어 요청에 대응

노드 풀 자동 생성은 특수 하드웨어로 새 노드 풀을 프로비저닝합니다. CPU 부하와 같은 성능 측정항목에 의해 트리거되지 않습니다. 대신 포드의 리소스 요청에 의해 트리거됩니다.

  • 예약할 수 없는 리소스 요청: 주요 트리거입니다. 포드가 생성되면 특정 하드웨어를 요청합니다. 기존 노드에 해당 하드웨어가 없어 클러스터에서 이 요청을 처리할 수 없는 경우 노드 풀 자동 생성 작업이 실행됩니다.
  • ComputeClass 요청: 포드가 ComputeClass(예: cloud.google.com/compute-class: premium-gpu)를 요청합니다. 클러스터의 어떤 노드도 'premium-gpu' 기능을 제공할 수 없는 경우 노드 풀 자동 생성은 이러한 기능을 제공할 수 있는 새 노드 풀을 자동으로 만듭니다.

커스텀, Prometheus, 외부 측정항목을 사용하여 자동 확장을 달성하는 방법을 알아보려면 측정항목을 기반으로 워크로드 자동 확장 정보를 참고하세요.

결론

이러한 자동 확장 전략을 적용하면 변동하는 AI/ML 워크로드를 효과적으로 관리할 수 있습니다. Cymbal Shops 매장 관리자가 리소스를 유연하게 관리하여 최대 판매 이벤트를 탐색한 것처럼 GKE 자동 확장 기능을 사용하여 인프라 및 워크로드 리소스를 자동으로 확장하고 축소할 수 있습니다. 이렇게 하면 트래픽이 급증하는 기간에는 모델의 성능을 유지하고 트래픽이 적은 기간에는 비용 효율성을 유지하여 환경의 크기를 적절하게 유지할 수 있습니다.

다음 단계