데이터/ML 인프라¶
ML/데이터 시스템의 기반이 되는 인프라 기술. 클라우드 서비스, 컨테이너, 오케스트레이션, IaC를 다룬다.
왜 인프라 지식이 필요한가¶
| 상황 | 필요한 인프라 지식 |
|---|---|
| 모델 학습 | GPU 인스턴스, 분산 학습 클러스터, 체크포인트 스토리지 |
| 모델 서빙 | 컨테이너, 로드밸런싱, 오토스케일링, 네트워크 보안 |
| 데이터 파이프라인 | 스토리지 계층화, 배치/스트리밍 처리, 데이터 레이크 |
| MLOps | CI/CD, 인프라 자동화, 모니터링 |
| 비용 최적화 | 스팟 인스턴스, 서버리스, 예약 인스턴스 |
토픽 목록¶
컨테이너 및 오케스트레이션¶
- Docker: 컨테이너화, ML 이미지 빌드, Docker Compose
- Kubernetes: 오케스트레이션, GPU 스케줄링, 분산 학습
클라우드¶
GPU 및 컴퓨팅¶
- GPU 관리: GPU 선택, 드라이버 설정, 멀티 GPU 학습, 비용 최적화
Infrastructure as Code¶
- Terraform: IaC 기초, 모듈, State 관리, ML 인프라 예제
인프라 스택 개요¶
+------------------+ +------------------+ +------------------+
| Application | | Platform | | Infrastructure |
+------------------+ +------------------+ +------------------+
| | | | | |
| - ML Code | | - Kubernetes | | - AWS/GCP/Azure |
| - API Server | | - Docker | | - VPC, Subnets |
| - Data Pipeline | | - Helm | | - IAM, Security |
| | | | | |
+------------------+ +------------------+ +------------------+
| | |
+------------------------+------------------------+
|
+------------------------+
| Infrastructure as |
| Code (Terraform) |
+------------------------+
ML 인프라 아키텍처¶
+-----------------------------------------------------------------------+
| AWS Cloud |
+-----------------------------------------------------------------------+
| |
| +------------------------+ +------------------------+ |
| | VPC | | S3 | |
| +------------------------+ +------------------------+ |
| | | | - Raw Data | |
| | +------------------+ | | - Processed Data | |
| | | EKS Cluster | | | - Models & Artifacts | |
| | +------------------+ | +------------------------+ |
| | | GPU Node Group | | |
| | | CPU Node Group | | +------------------------+ |
| | | Spot Nodes | | | SageMaker | |
| | +------------------+ | +------------------------+ |
| | | | - Training Jobs | |
| | +------------------+ | | - Endpoints | |
| | | ALB/NLB | | | - Processing | |
| | +------------------+ | +------------------------+ |
| | | |
| +------------------------+ +------------------------+ |
| | Bedrock | |
| +------------------------+ +------------------------+ |
| | RDS/Aurora | | - Foundation LLMs | |
| +------------------------+ | - Knowledge Base | |
| | - Metadata Store | +------------------------+ |
| | - MLflow Backend | |
| +------------------------+ +------------------------+ |
| | ECR | |
| +------------------------+ +------------------------+ |
| | ElastiCache | | - Training Images | |
| +------------------------+ | - Inference Images | |
| | - Feature Cache | +------------------------+ |
| | - Session Store | |
| +------------------------+ |
| |
+-----------------------------------------------------------------------+
학습 순서¶
Phase 1: 기초
+------------------+
| 1. Docker 기초 | 컨테이너 개념, Dockerfile 작성
+------------------+
|
v
+------------------+
| 2. AWS 핵심 | S3, EC2, IAM, VPC 기초
+------------------+
|
v
+------------------+
| 3. 네트워킹 | CIDR, 서브넷, 보안 그룹
+------------------+
Phase 2: 운영
+------------------+
| 4. Kubernetes | Pod, Deployment, Service
+------------------+
|
v
+------------------+
| 5. GPU 관리 | 드라이버, 모니터링, 멀티 GPU
+------------------+
|
v
+------------------+
| 6. Terraform | IaC 기초, 모듈화
+------------------+
Phase 3: 고급
+------------------+
| 7. 분산 학습 | DDP, 멀티노드 학습
+------------------+
|
v
+------------------+
| 8. 오토스케일링 | HPA, Karpenter, Spot
+------------------+
|
v
+------------------+
| 9. 비용 최적화 | RI, Savings Plans, 아키텍처
+------------------+
비용 최적화 전략¶
| 전략 | 대상 워크로드 | 예상 절감율 | 주의사항 |
|---|---|---|---|
| Spot/Preemptible | 학습, 배치 처리 | 60-90% | 체크포인트 필수 |
| Reserved Instances | 상시 서빙 | 30-60% | 1-3년 약정 |
| Savings Plans | 다양한 워크로드 | 30-40% | 유연성 있음 |
| Auto Scaling | 가변 트래픽 | 20-40% | 적절한 메트릭 설정 |
| Serverless | 이벤트 기반 | 변동 | 콜드스타트 고려 |
| Cold Storage | 오래된 데이터 | 80% | 접근 시간 고려 |
| 양자화 | 추론 | 50-75% GPU 비용 | 정확도 검증 필요 |
GPU 비용 비교 (시간당, ap-northeast-2)¶
| 용도 | 인스턴스 | GPU | 온디맨드 | Spot (추정) |
|---|---|---|---|---|
| 개발/실험 | g4dn.xlarge | T4 x1 | $0.71 | $0.21 |
| 추론 서빙 | g5.xlarge | A10G x1 | $1.19 | $0.36 |
| 학습 | p3.2xlarge | V100 x1 | $4.19 | $1.26 |
| 대규모 학습 | p4d.24xlarge | A100 x8 | $40.96 | $12.29 |
Quick Start: ML 추론 서비스 배포¶
# 1. Docker 이미지 빌드
docker build -t ml-inference:v1.0 .
# 2. ECR에 푸시
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin $ECR_URL
docker tag ml-inference:v1.0 $ECR_URL/ml-inference:v1.0
docker push $ECR_URL/ml-inference:v1.0
# 3. Kubernetes에 배포
kubectl apply -f deployment.yaml
# 4. 서비스 노출
kubectl apply -f service.yaml
kubectl apply -f ingress.yaml
참고 자료¶
공식 문서 - AWS Well-Architected ML Lens - Kubernetes Documentation - Docker Documentation - Terraform Documentation
Best Practices - AWS ML Infrastructure - GCP ML Best Practices - NVIDIA GPU Cloud
비용 관리 - AWS Cost Explorer - Infracost - Terraform 비용 추정 - Kubecost - Kubernetes 비용 모니터링