AWS EKS (Elastic Kubernetes Service)는 완전관리형 Kubernetes 서비스로, 컨테이너화된 애플리케이션을 자동 배포하고 확장 및 관리할 수 있도록 지원한다.
EKS (Elastic Kubernetes Service) | ECS (Elastic Container Service) | |
---|---|---|
오픈소스 여부 | ✅ 오픈소스 (Kubernetes 기반) | ❌ AWS 독점 서비스 |
멀티 클라우드 지원 | ✅ 가능 (온프레미스 포함) | ❌ AWS에서만 사용 가능 |
컨테이너 오케스트레이션 | ✅ 다양한 환경에서 사용 가능 | ✅ AWS에서 최적화된 관리형 서비스 |
사용 사례 | 기업이 쿠버네티스를 직접 운영하고 싶을 때 | AWS가 컨테이너 관리를 대신 해주길 원할 때 |
💡 EKS는 Kubernetes 표준을 지원하므로, 멀티 클라우드 및 하이브리드 환경에서도 운영 가능하다.
EKS 클러스터는 기본적으로 제어 플레인(Control Plane)과 데이터 플레인(Data Plane)으로 구성된다.
🔸 제어 플레인 (Control Plane)
🔸 데이터 플레인 (Data Plane)
EKS에서 Pod가 실행되는 노드는 세 가지 방식으로 운영된다.
✅ AWS에서 EC2 인스턴스를 자동 관리
✅ Auto Scaling Group(Auto Scaling Group, ASG) 지원
✅ Kubernetes 클러스터에 자동 등록됨
🔸 사용자가 직접 EC2 인스턴스를 프로비저닝
🔸 Kubernetes 클러스터에 직접 등록해야 함
🔸 더 높은 커스터마이징 가능 (Ex: 특정 AMI 사용)
✅ EC2 노드 없이 서버리스 환경에서 Pod 실행
✅ 유지보수 없이 자동 확장 및 축소
✅ 비용 효율적 (실행된 Pod 만큼만 과금)
💡 비교 요약
관리형 노드 | 자체 관리형 노드 | Fargate | |
---|---|---|---|
EC2 관리 | AWS가 자동 관리 | 직접 설정 필요 | EC2 필요 없음 |
Auto Scaling 지원 | O | O (직접 설정) | O (Pod 단위) |
유지보수 | 자동 패치 | 직접 패치 | 필요 없음 |
비용 절감 | 상대적으로 고비용 | 인프라 최적화 가능 | 사용량 기준 과금 |
EKS에서 Pod는 직접 외부와 통신할 수 없으므로 로드 밸런서를 사용해야 한다.
✅ 퍼블릭 로드 밸런서 (ALB, NLB)
✅ 프라이빗 로드 밸런서 (NLB)
Kubernetes에서 데이터를 영구적으로 저장하려면 스토리지 볼륨을 연결해야 한다.
✅ Amazon EFS (Elastic File System)
✅ Amazon EBS (Elastic Block Store)
💡 EFS는 서버리스와 함께 사용 가능하지만, EBS는 특정 노드에 종속됨!
✔ 마이크로서비스 아키텍처
✔ 데이터 파이프라인 구축 (ETL, AI 모델 배포)
✔ 온프레미스와 클라우드 통합 (하이브리드 클라우드)
✔ 고성능 대규모 애플리케이션 운영
사용자가 요청 → ALB / NLB → EKS 서비스 → Pod → 데이터 저장 (EFS / EBS)
🔹 EKS는 Kubernetes 기반으로 멀티 클라우드 및 하이브리드 운영 가능
🔹 Pod 실행 방식에 따라 관리형 노드, 자체 관리형 노드, Fargate를 선택 가능
🔹 로드 밸런서를 통해 트래픽을 관리하고, EFS / EBS를 활용해 데이터 저장
🔹 대규모 분산 시스템과 마이크로서비스 운영에 최적화된 환경