콘텐츠로 이동
Data Prep
상세

데이터/ML 인프라

ML/데이터 시스템의 기반이 되는 인프라 기술. 클라우드 서비스, 컨테이너, 오케스트레이션, IaC를 다룬다.


왜 인프라 지식이 필요한가

상황 필요한 인프라 지식
모델 학습 GPU 인스턴스, 분산 학습 클러스터, 체크포인트 스토리지
모델 서빙 컨테이너, 로드밸런싱, 오토스케일링, 네트워크 보안
데이터 파이프라인 스토리지 계층화, 배치/스트리밍 처리, 데이터 레이크
MLOps CI/CD, 인프라 자동화, 모니터링
비용 최적화 스팟 인스턴스, 서버리스, 예약 인스턴스

토픽 목록

컨테이너 및 오케스트레이션

  • Docker: 컨테이너화, ML 이미지 빌드, Docker Compose
  • Kubernetes: 오케스트레이션, GPU 스케줄링, 분산 학습

클라우드

  • AWS: S3, SageMaker, Bedrock, Lambda, EKS
  • 네트워킹: VPC, 서브넷, 보안 그룹, 로드밸런서

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 비용 모니터링