AWS에 컨테이너를 실행하는 또 다른 방법으로는 Amazon EKS(Elastic Kubernetes Service)가 존재하며 이는 AWS에 관리형 Kubernetes 클러스터를 실행하는 방법
Kubernetes는 오픈 소스 시스템으로 컨테이너화된 애플리케이션(즉, 도커 등)를 자동으로 배포, 스케일링, 관리할 수 있음
이는 ECS의 대안으로 사용되어 컨테이너를 실행하려는 목적은 비슷하지만 API는 아주 다름 즉, ECS는 절대 오픈 소스가 아니지만 Kubernetes는 오픈 소스이며 일종의 규격화를 제공하는 다양한 클라우드 공급자가 사용
EKS는 두 가지 실행 모드를 지원 1) EC2 실행 모드 : EC2 인스턴스 등 작업자 노드를 배치할 때 사용 2) Fargate 모드 : EKS 클러스터에 서버리스 컨테이너를 배치할 때 사용
이미 온프레미스에서 Kubernetes를 사용하거나 혹은 Kubernetes API를 사용하려는 경우, AWS를 통해 Kubernetes 클러스터를 관리하고자 할 때 Amazon EKS를 사용
Kubernetes의 특징으로는 클라우드-애그노스틱(cloud-agnostic)으로 Azure나 Google 클라우드 등 어떤 클라우드에도 가능 그러므로 클라우드나 컨테이너 사이를 옮겨 다니려면 Amazon EKS를 사용하는 것이 훨씬 편리
Amazon EKS - Diagram
VPC, 가용 영역 3개는 고용 및 사설 서브넷으로 나뉘며 이 때 EKS 작업자 노드(여기서는 EC2 인스턴스)를 생성 각 노드는 EKS 포드를 실행할 것이며 오토 스케일링 그룹이 이 노드를 관리하게 됨 ECS와 비슷하게 EKS 서비스를 Kubernetes 서비스에서 노출하려면 사설 로드 밸런서(Private Service LB)를 설정하거나 공용 로드 밸런서(Public Service LB)를 설정해서 웹과 연결할 수 있음