AI/ML 워크로드

지원 버전: Kubernetes 1.31, 1.32, 1.33 마지막 업데이트: 2026년 2월 23일

Kubernetes는 AI/ML 워크로드를 실행하기 위한 강력한 플랫폼입니다. 이 장에서는 EKS에서 AI/ML 워크로드를 실행하는 방법과 모범 사례를 알아보겠습니다.

AI/ML 워크로드의 특성

AI/ML 워크로드는 일반적인 애플리케이션 워크로드와 다른 특성을 가지고 있습니다:

spinner
  1. 리소스 집약적: GPU, 고성능 CPU, 대용량 메모리 등 많은 컴퓨팅 리소스가 필요합니다.

  2. 데이터 집약적: 대용량 데이터셋에 대한 빠른 액세스가 필요합니다.

  3. 분산 처리: 대규모 모델 훈련을 위해 여러 노드에 걸친 분산 처리가 필요합니다.

  4. 워크로드 다양성: 훈련, 추론, 데이터 전처리 등 다양한 유형의 워크로드가 있습니다.

최신 AI/ML 트렌드 (2025)

Kubernetes에서 AI/ML 워크로드를 실행하는 최신 트렌드는 다음과 같습니다:

1. 대규모 언어 모델(LLM) 배포

대규모 언어 모델(LLM)은 최근 AI 분야에서 가장 주목받는 기술 중 하나입니다. Kubernetes에서 LLM을 효율적으로 배포하기 위한 주요 고려사항:

  • 모델 샤딩: 대규모 모델을 여러 GPU에 분산하여 로드

  • 양자화: 모델 정밀도를 낮추어 메모리 사용량 감소 (INT8, FP16 등)

  • 추론 최적화: vLLM, TensorRT, ONNX Runtime 등을 사용한 추론 성능 향상

  • 스케일링 전략: 수평적 확장을 통한 처리량 증가

2. AI 오케스트레이션 프레임워크

Kubernetes 위에서 AI/ML 워크로드를 관리하기 위한 특화된 오케스트레이션 프레임워크:

  • Kubeflow: 머신러닝 워크플로우를 위한 종합적인 플랫폼

  • Ray on Kubernetes: 분산 컴퓨팅 프레임워크

  • KServe: 서버리스 추론 서비스

  • Seldon Core: 모델 서빙 및 모니터링

3. GPU 공유 및 최적화

GPU 리소스를 효율적으로 활용하기 위한 기술:

  • MIG (Multi-Instance GPU): NVIDIA A100/H100 GPU의 파티셔닝

  • 시간 공유 스케줄링: NVIDIA MPS, GPU 시간 슬라이싱

  • 동적 할당: 필요에 따라 GPU 리소스 동적 할당

  • GPU Operator: Kubernetes에서 GPU 관리 자동화

4. MLOps 및 GitOps 통합

AI/ML 라이프사이클 관리를 위한 DevOps 원칙 적용:

  • 모델 버전 관리: Git과 통합된 모델 버전 관리

  • CI/CD 파이프라인: 모델 훈련 및 배포 자동화

  • A/B 테스팅: 새로운 모델 버전의 점진적 롤아웃

  • 모니터링 및 피드백 루프: 모델 성능 모니터링 및 재훈련

5. 벡터 데이터베이스 통합

임베딩 및 시맨틱 검색을 위한 벡터 데이터베이스 통합:

  • Pinecone: 관리형 벡터 검색

  • Milvus: 오픈소스 벡터 데이터베이스

  • Faiss: Facebook AI의 효율적인 유사성 검색 라이브러리

  • OpenSearch: 벡터 검색 기능이 추가된 검색 엔진

  1. 배치 및 실시간 처리: 배치 처리와 실시간 추론이 모두 필요합니다.

EKS에서의 AI/ML 인프라 구성

spinner

노드 유형 선택

AI/ML 워크로드에 적합한 EC2 인스턴스 유형은 다음과 같습니다:

  1. GPU 인스턴스:

    • p4d.24xlarge: 8x NVIDIA A100 GPU, 320GB GPU 메모리

    • p3.16xlarge: 8x NVIDIA V100 GPU, 128GB GPU 메모리

    • g5.xlarge~g5.48xlarge: NVIDIA A10G GPU, 최대 8개의 GPU

    • g4dn.xlarge~g4dn.16xlarge: NVIDIA T4 GPU, 최대 4개의 GPU

  2. CPU 최적화 인스턴스:

    • c6i.32xlarge: 128 vCPU, 256GB 메모리

    • c7g.16xlarge: 64 vCPU (AWS Graviton3), 128GB 메모리

  3. 메모리 최적화 인스턴스:

    • r6i.32xlarge: 128 vCPU, 1024GB 메모리

    • x2gd.16xlarge: 64 vCPU, 1024GB 메모리

  4. Inferentia 인스턴스:

    • inf1.24xlarge: 16 AWS Inferentia 칩, 96 vCPU, 192GB 메모리

  5. Trainium 인스턴스:

    • trn1.32xlarge: 16 AWS Trainium 칩, 128 vCPU, 512GB 메모리

스토리지 구성

AI/ML 워크로드에는 고성능 스토리지가 필요합니다:

  1. Amazon EBS:

    • gp3: 기본 범용 SSD 스토리지

    • io2: 고성능 SSD 스토리지

    • st1: 처리량 최적화 HDD 스토리지

  2. Amazon EFS:

    • 여러 노드에서 공유 데이터에 액세스해야 하는 경우 유용

    • 성능 모드: 범용 또는 최대 I/O

    • 처리량 모드: 버스팅 또는 프로비저닝된 처리량

  3. Amazon FSx for Lustre:

    • 고성능 병렬 파일 시스템

    • 대규모 데이터셋에 대한 빠른 액세스 제공

    • S3와의 통합으로 데이터 가져오기 및 내보내기 간소화

  4. Amazon S3:

    • 대용량 데이터셋 저장

    • 훈련 데이터 및 모델 아티팩트 저장

네트워킹 구성

분산 훈련을 위한 네트워킹 구성:

  1. 클러스터 배치 그룹:

    • 노드 간 지연 시간 최소화

    • 동일한 가용 영역 내에 노드 배치

  2. 향상된 네트워킹:

    • Elastic Network Adapter(ENA)

    • ENA Express

    • Elastic Fabric Adapter(EFA)

  3. VPC CNI 구성:

    • 대규모 포드 배포를 위한 IP 주소 관리

    • 보조 IP 주소 범위 구성

AI/ML 워크로드 배포

spinner

NVIDIA GPU 운영자

NVIDIA GPU 운영자는 Kubernetes 클러스터에서 NVIDIA GPU를 관리하기 위한 도구입니다:

GPU 운영자는 다음과 같은 구성 요소를 배포합니다:

  1. NVIDIA 드라이버: GPU 드라이버 자동 설치

  2. NVIDIA Container Toolkit: 컨테이너에서 GPU 사용 가능하게 함

  3. NVIDIA Device Plugin: Kubernetes에 GPU 리소스 노출

  4. NVIDIA DCGM Exporter: GPU 모니터링 메트릭 제공

Kubeflow

Kubeflow는 Kubernetes에서 ML 워크플로우를 실행하기 위한 플랫폼입니다:

Kubeflow는 다음과 같은 구성 요소를 제공합니다:

  1. Jupyter Notebooks: 대화형 개발 환경

  2. TensorFlow/PyTorch 훈련 작업: 분산 훈련 작업 실행

  3. KFServing: 모델 서빙

  4. Pipelines: 엔드-투-엔드 ML 워크플로우

  5. Katib: 하이퍼파라미터 튜닝

분산 훈련

분산 훈련을 위한 Kubernetes 리소스:

spinner
  1. MPI Operator:

  1. PyTorch Elastic:

모델 서빙

모델 서빙을 위한 옵션:

spinner
  1. KServe:

  1. TorchServe:

  1. Triton Inference Server:

AI/ML 워크로드 최적화

spinner

GPU 메모리 최적화

  1. GPU 메모리 오버커밋:

  1. GPU 공유:

분산 훈련 최적화

  1. 노드 어피니티:

  1. 토폴로지 인식 스케줄링:

스토리지 최적화

  1. FSx for Lustre 구성:

  1. 데이터 캐싱:

모니터링 및 로깅

spinner

Prometheus 및 Grafana

로그 수집

비용 최적화

Spot 인스턴스 활용

자동 스케일링

하이브리드 노드 활용

결론

EKS에서 AI/ML 워크로드를 실행하는 것은 강력한 인프라, 유연한 스케일링, 그리고 다양한 최적화 옵션을 제공합니다. 적절한 노드 유형, 스토리지 구성, 네트워킹 설정을 선택하고, Kubeflow와 같은 도구를 활용하여 ML 워크플로우를 관리하며, GPU 메모리 및 분산 훈련을 최적화하는 것이 중요합니다. 또한, 모니터링 및 로깅을 통해 워크로드 성능을 추적하고, Spot 인스턴스 및 자동 스케일링을 활용하여 비용을 최적화할 수 있습니다.

참고 자료

퀴즈

이 장에서 배운 내용을 테스트하려면 주제 퀴즈를 풀어보세요.

마지막 업데이트