[워크삽] AWS 트레니엄 워크삽(6)-EKS
Amazon EKS는 AWS와 온프레미스에서 Kubernetes를 쉽게 실행할 수 있게 해주는 관리형 Kubernetes 서비스다. Amazon EKS는 Kubernetes 적합성 인증을 받았으므로, 업스트림 Kubernetes에서 실행되는 기존 애플리케이션은 Amazon EKS와 호환된다.
1. Amazon EKS란 무엇인가?
Amazon EKS는 최신 버전의 오픈 소스 Kubernetes 소프트웨어를 실행하므로 Kubernetes 생태계의 기존 플러그인과 도구를 모두 사용할 수 있다. 표준 Kubernetes 환경에서 실행되는 애플리케이션은 Amazon EKS와 호환된다.
Figure 1. Amazon EKS 아키텍처
2. 주요 기능
2-1. 관리형 컨트롤 플레인(Control Plane)
Amazon EKS는 컨테이너 스케줄링, 애플리케이션 가용성 관리, 클러스터 데이터 저장 및 기타 주요 작업을 담당하는 Kubernetes Control Plane 노드의 가용성과 확장성을 자동으로 관리한다. Amazon EKS를 사용하면 Kubernetes Control Plane을 직접 설치하고 운영하며 유지 관리할 필요가 없다.
2-2. 고가용성
Amazon EKS는 부하에 따라 Control Plane 인스턴스를 자동으로 확장하고, 비정상 Control Plane 인스턴스를 자동으로 탐지해 교체하며, 자동 버전 업데이트와 패치를 제공한다.
2-3. 보안
Amazon EKS는 고가용성을 보장하기 위해 여러 가용 영역(Availability Zone)에서 Kubernetes Control Plane 인스턴스를 실행한다. Amazon EKS는 비정상 Control Plane 인스턴스를 자동으로 교체하고 자동 버전 업데이트와 패치를 제공한다.
2-4. 네트워킹
Amazon EKS는 Pod 네트워킹을 위한 최신 버전의 Amazon VPC CNI 플러그인을 제공하며, Security Group, VPC Endpoint 및 VPC Flow Log를 지원한다.
2-5. 로드 밸런싱
Amazon EKS는 Kubernetes 애플리케이션을 위해 Application Load Balancer와 Network Load Balancer를 프로비저닝하는 AWS Load Balancer Controller를 지원한다.
2-6. 스토리지
Amazon EKS는 영구 스토리지를 위한 Amazon EBS CSI 드라이버를 지원하며, 공유 파일 스토리지로 Amazon EFS를 사용할 수 있다.
3. vLLM 배포의 이점
3-1. 관리형 운영
- Control Plane 관리: AWS가 Kubernetes Control Plane을 처리하므로 운영 오버헤드가 줄어든다.
- 자동 업데이트: Kubernetes 버전 업그레이드와 보안 패치를 원활하게 적용한다.
- 고가용성: Multi-AZ 배포를 통해 99.95% 가동 시간 SLA를 보장한다.
3-2. AWS 통합
- IAM 통합: AWS의 기본 Identity and Access Management 기능을 사용한다.
- VPC 네트워킹: 기존 AWS 인프라와 원활하게 통합된다.
- CloudWatch 모니터링: 내장된 관측 가능성과 경고 기능을 제공한다.
- Auto Scaling: Control Plane과 Worker Node를 모두 자동으로 확장한다.
3-3. 비용 최적화
- 사용량 기반 과금: 사용한 리소스에 대해서만 비용을 지불한다.
- Spot Instance 지원: 비용을 절감하기 위해 중단 가능한 인스턴스를 사용한다.
- Reserved Instance: 예측 가능한 비용을 위해 사용량을 약정한다.
- 효율적인 리소스 활용: Pod 밀도와 리소스 할당을 개선한다.
4. EKS 아키텍처
4-1. 컨트롤 플레인
Amazon EKS Control Plane은 etcd와 Kubernetes API Server 같은 Kubernetes 소프트웨어를 실행하는 Control Plane 노드로 구성된다. Control Plane 노드는 AWS가 관리하는 계정에서 실행되며, Kubernetes API는 Amazon EKS Public Endpoint를 통해 외부에 제공된다.
4-2. 워커 모드
Worker Node는 사용자의 AWS 계정에서 실행되며 Cluster API Server Endpoint를 통해 클러스터의 Control Plane에 연결된다. Amazon EC2 인스턴스, AWS Fargate 또는 자체 관리형 Node Group을 사용해 Worker Node를 시작할 수 있다.
4-3. 네트워킹
Amazon EKS는 Pod 네트워킹을 위한 최신 버전의 Amazon VPC CNI 플러그인을 제공한다. 이 플러그인을 사용하면 Kubernetes Pod가 Pod 내부와 VPC 네트워크에서 동일한 IP 주소를 가질 수 있다.
5. vLLM 사용 사례
5-1. 모델 서빙
- 확장 가능한 추론: Auto Scaling을 적용해 vLLM 모델을 배포한다.
- Load Balancing: 추론 요청을 여러 모델 인스턴스에 분산한다.
- 고가용성: 여러 가용 영역에서 모델 Serving의 가용성을 보장한다.
5-2. 리소스 관리
- Trainium 최적화: AWS Trainium 인스턴스를 효율적으로 할당한다.
- 비용 제어: 리소스 사용량을 모니터링하고 최적화한다.
- 성능 튜닝: Pod 배치와 리소스 할당을 최적화한다.
5-3. 운영
- 배포 자동화: 표준 Kubernetes 배포 패턴을 사용한다.
- 모니터링: CloudWatch 및 기타 AWS 모니터링 서비스와 통합한다.
- 보안: Pod 보안 표준과 Network Policy를 구현한다.
6. 시작하기
vLLM 배포를 위해 Amazon EKS를 사용하려면 다음 단계를 수행한다.
1) EKS 클러스터 생성: AWS Management Console, AWS CLI 또는 eksctl을 사용한다.
2) Worker Node 구성: 적절한 인스턴스 유형으로 Node Group을 설정한다.
3) vLLM 배포: 표준 Kubernetes 배포 패턴을 사용한다.
4) 모니터링 구성: CloudWatch 통합과 Custom Metric을 설정한다.
5) 보안 구현: RBAC, Network Policy 및 IAM Role을 구성한다.
Amazon EKS는 엔터프라이즈급 안정성, 보안 및 확장성을 갖춘 프로덕션 준비형 vLLM 워크로드를 실행하기 위한 기반을 제공한다.
댓글남기기