AI/ML 워크로드
지원 버전: Kubernetes 1.31, 1.32, 1.33 마지막 업데이트: 2026년 2월 23일
Kubernetes는 AI/ML 워크로드를 실행하기 위한 강력한 플랫폼입니다. 이 장에서는 EKS에서 AI/ML 워크로드를 실행하는 방법과 모범 사례를 알아보겠습니다.
AI/ML 워크로드의 특성
AI/ML 워크로드는 일반적인 애플리케이션 워크로드와 다른 특성을 가지고 있습니다:
리소스 집약적: GPU, 고성능 CPU, 대용량 메모리 등 많은 컴퓨팅 리소스가 필요합니다.
데이터 집약적: 대용량 데이터셋에 대한 빠른 액세스가 필요합니다.
분산 처리: 대규모 모델 훈련을 위해 여러 노드에 걸친 분산 처리가 필요합니다.
워크로드 다양성: 훈련, 추론, 데이터 전처리 등 다양한 유형의 워크로드가 있습니다.
최신 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: 벡터 검색 기능이 추가된 검색 엔진
배치 및 실시간 처리: 배치 처리와 실시간 추론이 모두 필요합니다.
EKS에서의 AI/ML 인프라 구성
노드 유형 선택
AI/ML 워크로드에 적합한 EC2 인스턴스 유형은 다음과 같습니다:
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
CPU 최적화 인스턴스:
c6i.32xlarge: 128 vCPU, 256GB 메모리
c7g.16xlarge: 64 vCPU (AWS Graviton3), 128GB 메모리
메모리 최적화 인스턴스:
r6i.32xlarge: 128 vCPU, 1024GB 메모리
x2gd.16xlarge: 64 vCPU, 1024GB 메모리
Inferentia 인스턴스:
inf1.24xlarge: 16 AWS Inferentia 칩, 96 vCPU, 192GB 메모리
Trainium 인스턴스:
trn1.32xlarge: 16 AWS Trainium 칩, 128 vCPU, 512GB 메모리
스토리지 구성
AI/ML 워크로드에는 고성능 스토리지가 필요합니다:
Amazon EBS:
gp3: 기본 범용 SSD 스토리지
io2: 고성능 SSD 스토리지
st1: 처리량 최적화 HDD 스토리지
Amazon EFS:
여러 노드에서 공유 데이터에 액세스해야 하는 경우 유용
성능 모드: 범용 또는 최대 I/O
처리량 모드: 버스팅 또는 프로비저닝된 처리량
Amazon FSx for Lustre:
고성능 병렬 파일 시스템
대규모 데이터셋에 대한 빠른 액세스 제공
S3와의 통합으로 데이터 가져오기 및 내보내기 간소화
Amazon S3:
대용량 데이터셋 저장
훈련 데이터 및 모델 아티팩트 저장
네트워킹 구성
분산 훈련을 위한 네트워킹 구성:
클러스터 배치 그룹:
노드 간 지연 시간 최소화
동일한 가용 영역 내에 노드 배치
향상된 네트워킹:
Elastic Network Adapter(ENA)
ENA Express
Elastic Fabric Adapter(EFA)
VPC CNI 구성:
대규모 포드 배포를 위한 IP 주소 관리
보조 IP 주소 범위 구성
AI/ML 워크로드 배포
NVIDIA GPU 운영자
NVIDIA GPU 운영자는 Kubernetes 클러스터에서 NVIDIA GPU를 관리하기 위한 도구입니다:
GPU 운영자는 다음과 같은 구성 요소를 배포합니다:
NVIDIA 드라이버: GPU 드라이버 자동 설치
NVIDIA Container Toolkit: 컨테이너에서 GPU 사용 가능하게 함
NVIDIA Device Plugin: Kubernetes에 GPU 리소스 노출
NVIDIA DCGM Exporter: GPU 모니터링 메트릭 제공
Kubeflow
Kubeflow는 Kubernetes에서 ML 워크플로우를 실행하기 위한 플랫폼입니다:
Kubeflow는 다음과 같은 구성 요소를 제공합니다:
Jupyter Notebooks: 대화형 개발 환경
TensorFlow/PyTorch 훈련 작업: 분산 훈련 작업 실행
KFServing: 모델 서빙
Pipelines: 엔드-투-엔드 ML 워크플로우
Katib: 하이퍼파라미터 튜닝
분산 훈련
분산 훈련을 위한 Kubernetes 리소스:
MPI Operator:
PyTorch Elastic:
모델 서빙
모델 서빙을 위한 옵션:
KServe:
TorchServe:
Triton Inference Server:
AI/ML 워크로드 최적화
GPU 메모리 최적화
GPU 메모리 오버커밋:
GPU 공유:
분산 훈련 최적화
노드 어피니티:
토폴로지 인식 스케줄링:
스토리지 최적화
FSx for Lustre 구성:
데이터 캐싱:
모니터링 및 로깅
Prometheus 및 Grafana
로그 수집
비용 최적화
Spot 인스턴스 활용
자동 스케일링
하이브리드 노드 활용
결론
EKS에서 AI/ML 워크로드를 실행하는 것은 강력한 인프라, 유연한 스케일링, 그리고 다양한 최적화 옵션을 제공합니다. 적절한 노드 유형, 스토리지 구성, 네트워킹 설정을 선택하고, Kubeflow와 같은 도구를 활용하여 ML 워크플로우를 관리하며, GPU 메모리 및 분산 훈련을 최적화하는 것이 중요합니다. 또한, 모니터링 및 로깅을 통해 워크로드 성능을 추적하고, Spot 인스턴스 및 자동 스케일링을 활용하여 비용을 최적화할 수 있습니다.
참고 자료
AI on EKS - AWS에서 제공하는 EKS 기반 AI/ML 워크로드 배포 가이드 및 예제
퀴즈
이 장에서 배운 내용을 테스트하려면 주제 퀴즈를 풀어보세요.
마지막 업데이트