Amazon EKS (Auto Mode, Pod Identity, 버전 관리, EKS Capabilities)
EKS 클러스터 요금과 버전 지원 일정(표준 14 개월, 연장 12 개월), 노드 운영 방식(관리형 노드 그룹, Karpenter, Auto Mode, Fargate), 권한 연결(액세스 항목, Pod Identity), 2025-12 에 나온 EKS Capabilities 와 Provisioned Control Plane 을 정리합니다.
EKS 가 맡는 것과 내가 맡는 것
Amazon EKS 는 쿠버네티스 컨트롤 플레인(API 서버, etcd)을 여러 AZ 에 걸쳐 운영해 줍니다. 그 위에서 도는 노드, 애드온, 애플리케이션, 업그레이드 계획은 기본적으로 고객 몫입니다. 다만 Auto Mode 와 EKS Capabilities 가 나오면서 고객 몫이 크게 줄어드는 추세입니다.
요금 (2026-10 기준)
| 항목 | 요금 |
|---|---|
| 클러스터 (표준 지원 버전) | 시간당 0.10 USD |
| 클러스터 (연장 지원 버전) | 시간당 0.60 USD |
| Provisioned Control Plane | 클러스터 요금에 더해 XL 1.65, 2XL 3.40, 4XL 6.90, 8XL 13.90 USD/시간 |
| Auto Mode | EC2 요금에 더해 인스턴스 유형별 관리 요금(초 단위 과금) |
| EKS Capabilities | Argo CD 0.03 USD/시간 + 애플리케이션당, ACK 와 kro 0.005 USD/시간 + 리소스당 |
| 노드 | EC2, EBS, 퍼블릭 IPv4, 데이터 전송 요금 따로 |
EKS 요금 페이지 기준입니다. 연장 지원은 표준의 6 배라서 클러스터가 많은 조직은 업그레이드를 미루는 것만으로 비용이 크게 늘어납니다.
버전 지원 일정
EKS 는 쿠버네티스 버전마다 표준 지원 14 개월, 이어서 연장 지원 12 개월, 합쳐 26 개월을 지원합니다. 연장 지원은 기본으로 켜져 있고, 연장 지원까지 끝나면 컨트롤 플레인이 가장 오래된 연장 지원 버전으로 자동 업그레이드됩니다.
| 버전 | 표준 지원 끝 | 연장 지원 끝 |
|---|---|---|
| 1.37 | 2027-12-01 | 2028-12-01 |
| 1.36 | 2027-08-02 | 2028-08-02 |
| 1.35 | 2027-03-27 | 2028-03-27 |
| 1.34 | 2026-12-02 | 2027-12-02 |
| 1.33 | 2026-07-29 (연장 중) | 2027-07-29 |
| 1.32 | 2026-03-23 (연장 중) | 2027-03-23 |
aws eks describe-cluster-versions --query "clusterVersions[].{v:clusterVersion,status:versionStatus,end:endOfStandardSupportDate}" --output table업그레이드는 한 번에 한 마이너 버전씩입니다. 순서는 (1) 폐기된 API 사용 점검(EKS 업그레이드 인사이트), (2) 컨트롤 플레인, (3) 애드온(VPC CNI, CoreDNS, kube-proxy), (4) 노드입니다.
노드 운영 방식
| 방식 | 누가 노드를 고르고 패치하나 | 특징 |
|---|---|---|
| 관리형 노드 그룹 | 고객이 유형 선택, AWS 가 ASG 와 업데이트 도구 제공 | 가장 흔한 시작점 |
| Karpenter | 고객이 설치, Karpenter 가 파드 요구에 맞춰 노드를 바로 띄움 | 빠른 확장, 스팟과 다양한 유형 활용, 노드 통합(consolidation) |
| EKS Auto Mode | AWS 가 컴퓨팅, 스토리지(EBS CSI), 로드 밸런서 연동, 패치까지 | Karpenter 기반을 AWS 가 운영. 노드는 최대 21 일마다 교체되는 불변 노드 |
| Fargate | 파드마다 격리된 환경 | DaemonSet 불가, GPU 불가. 작은 배치나 격리 요구에 |
| Hybrid Nodes | 온프레미스 서버를 노드로 | vCPU 시간당 요금 |
새 클러스터라면 Auto Mode 부터 검토합니다. 애드온 버전 관리와 노드 패치, 스팟 중단 처리 같은 반복 작업이 사라집니다. 노드 수준 커스터마이징(커널 모듈, 특수 AMI)이 꼭 필요하면 Karpenter 나 관리형 노드 그룹을 고릅니다.
권한 연결
사람과 파이프라인: 액세스 항목
예전에는 aws-auth ConfigMap 에 IAM 역할을 적었지만, 지금은 액세스 항목(access entries) 으로 EKS API 에서 관리합니다. 잘못 고친 ConfigMap 때문에 모두가 클러스터에서 잠기는 사고가 사라집니다.
aws eks create-access-entry --cluster-name prod --principal-arn arn:aws:iam::111122223333:role/PlatformAdmin
aws eks associate-access-policy --cluster-name prod \
--principal-arn arn:aws:iam::111122223333:role/PlatformAdmin \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy --access-scope type=cluster파드: EKS Pod Identity
파드가 AWS API 를 부를 때는 EKS Pod Identity 가 간단합니다. 클러스터에 Pod Identity 에이전트 애드온을 깔고, IAM 역할과 서비스 어카운트를 연결만 하면 됩니다. OIDC 공급자를 클러스터마다 만들고 신뢰 정책을 고치던 IRSA 보다 관리가 쉽고, 같은 역할을 여러 클러스터에서 재사용할 수 있습니다.
aws eks create-pod-identity-association --cluster-name prod \
--namespace orders --service-account orders-api \
--role-arn arn:aws:iam::111122223333:role/orders-api-pod네트워크와 IP
기본 VPC CNI 는 파드마다 VPC IP 를 줍니다. 파드가 많으면 서브넷이 금방 찹니다.
- 노드 서브넷은 넉넉하게(/19 이상) 잡거나, 파드 전용 보조 CIDR(100.64.0.0/10 대역)을 붙입니다.
- 접두사 위임(prefix delegation) 을 켜면 ENI 하나에 /28 블록을 받아 노드당 파드 수가 늘어납니다.
- IPv6 클러스터는 IP 고갈 문제를 근본적으로 없앱니다.
EKS Capabilities (2025-12)
re:Invent 2025 에서 나온 EKS Capabilities 는 플랫폼 팀이 클러스터마다 깔던 핵심 컨트롤러를 EKS 가 관리형으로 돌려 줍니다. 컨트롤러는 내 노드가 아니라 EKS 쪽에서 돌기 때문에 노드 자원을 차지하지 않습니다.
| 기능 | 하는 일 |
|---|---|
| Argo CD | Git 저장소의 매니페스트를 클러스터에 동기화하는 GitOps 배포. Identity Center 연동, 호스팅된 UI |
| ACK (AWS Controllers for Kubernetes) | S3 버킷, RDS, IAM 역할 같은 AWS 리소스를 쿠버네티스 리소스로 선언해 관리. 50 개 이상 서비스 지원 |
| kro (Kube Resource Orchestrator) | 쿠버네티스와 AWS 리소스를 묶어 재사용 가능한 사용자 정의 API 로 만듦 |
클러스터마다 기능별로 하나씩 만들 수 있고, 시간당 요금과 관리 리소스 수에 따른 요금이 붙습니다.
Provisioned Control Plane
대규모 AI 학습 클러스터처럼 API 서버 부하가 큰 경우를 위해, 컨트롤 플레인 용량을 미리 큰 등급(XL 부터 8XL)으로 잡아 두는 Provisioned Control Plane 이 있습니다. 평소 클러스터는 기본(Standard) 등급이면 충분하니, API 서버 지연과 throttling 지표를 먼저 보고 결정합니다.
자주 하는 실수
- 업그레이드 미루기: 연장 지원 요금이 쌓이고, 결국 자동 업그레이드가 원치 않는 시점에 옵니다.
- 노드 그룹에 IMDS 열어 두기: 파드가 노드 역할 자격 증명을 훔칠 수 있습니다. 홉 제한을 1 로 두고 Pod Identity 를 씁니다(단, 메타데이터가 필요한 애드온은 확인).
- 서브넷을 /24 로 작게: 파드 IP 고갈로
FailedCreatePodSandBox가 납니다. - LoadBalancer 서비스 남발: 서비스마다 NLB 가 생겨 비용이 늘어납니다. Ingress(ALB)로 묶습니다.