본문 바로가기
클라우드/AWS

[AWS] Amazon EKS가 궁금해요(feat.쿠버네티스)

by 클레어몬트 2025. 3. 6.

https://claremont.tistory.com/entry/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-KubernetesK8s-%EA%B0%9C%EB%85%90

 

[쿠버네티스] Kubernetes(K8s) 개념

ㅇ쿠버네티스(Kubernetes, K8s): “컨테이너”화된 애플리케이션을 자동으로 배포, 관리 및 확장하는 오픈소스 오케스트레이션 플랫폼현대 애플리케이션 개발에서는 컨테이너 기술이 필수적이다.

claremont.tistory.com

Kubernetes(K8s)는 컨테이너화된 애플리케이션을 배포, 관리 및 확장하는 오픈소스 오케스트레이션 도구이며, EKS를 사용하면 AWS 환경에서 Kubernetes 클러스터를 쉽게 운영할 수 있다!

AWS EKS 클러스터의 대시보드 화면

 

 

 

ㅁAmazon Elastic Kubernetes Service(Amazon EKS): AWS에서 완전 관리형 Kubernetes 클러스터를 실행할 수 있도록 지원하는 서비스



(Amazon EKS의 핵심 역할)

  • Kubernetes 클러스터를 자동으로 생성 및 관리
  • AWS 인프라에서 고가용성 및 확장성 제공
  • 온프레미스 및 하이브리드 환경에서도 EKS Anywhere를 통해 활용 가능
  • Fargate와 연동하여 서버리스 Kubernetes 운영 가능

Amazon EKS의 주요 특징

1) 완전 관리형 Kubernetes 서비스

  • Amazon EKS는 Kubernetes의 제어 플레인(Control Plane)을 자동으로 관리하며, 사용자는 워커 노드(Worker Node)만 운영하면 된다
  • Kubernetes 버전 업그레이드, 보안 패치 적용, 고가용성 유지 등을 AWS가 자동으로 수행한다

2) AWS 네이티브 서비스와의 연동

  • Amazon EKS는 AWS VPC, IAM, ELB, Auto Scaling 등과 통합되어 원활하게 운영된다
  • AWS Load Balancer Controller, AWS Fargate, AWS App Mesh 등과 함께 사용 가능

3) 높은 확장성과 가용성

  • 여러 가용 영역(AZ)에 걸쳐 클러스터를 배포하여 장애 조치를 자동화할 수 있다
  • 자동 확장(Auto Scaling)Spot Instance 활용으로 비용 최적화 가능

4) 보안 및 규정 준수

  • IAM과 통합하여 역할 기반 액세스 제어(RBAC, Role-Based Access Control)를 지원한다
  • AWS PrivateLink를 통해 인터넷을 거치지 않고 VPC 내부에서 안전하게 EKS API 호출 가능
  • AWS WAF(웹 방화벽) 및 네트워크 정책(CNI Plugin) 적용 가능

5) 온프레미스 및 하이브리드 지원 (EKS Anywhere & EKS Distro)

  • Amazon EKS Anywhere: 온프레미스 환경에서 Kubernetes 클러스터를 실행할 수 있도록 지원
  • Amazon EKS Distro: AWS에서 제공하는 Kubernetes 배포판을 사용하여 자체적으로 클러스터 운영 가능

[Amazon EKS 아키텍처 구성요소]

📌 1) 제어 플레인 (Control Plane)

  • EKS에서 관리하는 Kubernetes API 서버 및 etcd 데이터 저장소
  • 클러스터 상태 관리 및 노드 간 통신을 담당
  • Multi-AZ(다중 가용 영역)에 걸쳐 배포되어 고가용성 보장

📌 2) 데이터 플레인 (Data Plane)

  • 애플리케이션이 실행되는 워크로드 노드(Worker Nodes)
  • Amazon EC2 인스턴스 또는 AWS Fargate(서버리스 컨테이너)에서 실행됨
  • kubectl을 통해 컨테이너 배포 및 관리 가능

📌 3) VPC 네트워크 (Networking)

  • AWS VPC 내부에서 EKS 클러스터를 실행하고, ENI(Elastic Network Interface)를 통해 네트워크 관리
  • AWS CNI(Container Network Interface)를 사용하여 Pod 간 통신 및 로드 밸런싱 수행

📌 4) IAM 인증 및 RBAC

  • IAM과 Kubernetes RBAC(Role-Based Access Control) 연동으로 보안 정책 관리
  • 사용자 및 서비스 계정에 대해 세분화된 권한 제어 가능

Amazon EKS 배포 방식


Amazon EKS vs ECS

EKS와 ECS(Amazon Elastic Container Service)는 AWS에서 제공하는 대표적인 컨테이너 오케스트레이션 서비스다

EKS와 ECS(Amazon Elastic Container Service)는 AWS에서 제공하는 대표적인 컨테이너 오케스트레이션 서비스이다

 

Amazon EKS Kubernetes 기반 애플리케이션을 AWS에서 쉽게 실행할 수 있도록 도와주는 서비스로, 오픈소스 생태계와 연동성이 뛰어나다
Amazon ECS AWS 환경에 최적화된 간단한 컨테이너 관리 서비스로, Kubernetes에 대한 학습 부담 없이 빠르게 컨테이너를 운영할 수 있다


Amazon EKS 시작 방법

1️⃣ EKS 클러스터 생성

aws eks create-cluster --name my-cluster --role-arn <IAM_ROLE> --resources-vpc-config subnetIds=<SUBNET_ID>,securityGroupIds=<SECURITY_GROUP_ID>
 

2️⃣ 클러스터 구성 확인

aws eks describe-cluster --name my-cluster --query "cluster.status"

3️⃣ 워커 노드(Worker Node) 추가

aws eks create-nodegroup --cluster-name my-cluster --nodegroup-name my-nodegroup --subnets <SUBNET_ID>

4️⃣ kubectl을 사용한 배포

kubectl get nodes
kubectl apply -f my-deployment.yaml

 


 

[결론]

- Amazon EKS는 AWS에서 Kubernetes 클러스터를 쉽게 배포하고 관리할 수 있도록 지원하는 서비스이다
- Kubernetes의 강력한 오케스트레이션 기능을 활용하면서도 AWS의 네이티브 서비스와 긴밀하게 연동 가능!
- Fargate를 사용하면 서버리스 방식으로 컨테이너를 실행할 수도 있다
- 기존 Kubernetes 환경을 AWS로 마이그레이션하고 싶은 기업들에게 최적의 솔루션이다~

 

Amazon EKS를 활용하면 확장성과 가용성이 뛰어난 클라우드 네이티브 애플리케이션을 손쉽게 운영할 수 있다 [: