본문으로 건너뛰기
김신건의 로그

[AWS] EKS: managed Kubernetes

· 수정 · 📖 약 1분 · 363자/단어 #aws #eks #kubernetes #cloud #container
EKS, Amazon EKS, EKS Fargate, managed node group, Karpenter on EKS, EKS Anywhere

정의

EKS (Elastic Kubernetes Service) = AWS 의 managed K8s control plane. worker node 는 사용자 (또는 Fargate). AWS IAM / VPC / ALB 등 AWS 통합.

아키텍처

flowchart TB
    User[kubectl] --> CP["EKS Control Plane<br/>(AWS managed)"]
    CP --> NG["Managed Node Group<br/>(EC2)"]
    CP --> SN[Self-managed Nodes]
    CP --> FG["Fargate Profile<br/>(serverless)"]
    NG --> Pods1[Pods]
    SN --> Pods2[Pods]
    FG --> Pods3[Pods]

Worker 3가지

종류의미
Managed Node GroupEC2, AWS 가 자동 관리 + Auto Scaling
Self-managed NodesEC2, 사용자 직접
Fargate노드 없음, 서버리스

Karpentermanaged node group 의 진화. 더 빠른 scaling + spot 자동 활용.

EKS 비용

  • Control Plane: 73/월 (cluster 당)
  • Worker: EC2 또는 Fargate 비용 별도

VPC CNI

EKS 의 기본 CNI = AWS VPC CNI. Pod 가 VPC IP 직접 (NAT 없음).

장점:

  • VPC 내 native: SG / NetworkPolicy / VPC flow logs 그대로
  • AWS Load Balancer 통합

단점:

  • IP 고갈 (Pod 수 × instance 수)
  • EC2 instance type 별 ENI / IP 한도

대안: Cilium (eBPF), Calico.

IAM Roles for Service Accounts (IRSA)

apiVersion: v1
kind: ServiceAccount
metadata:
  name: s3-uploader
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123:role/s3-uploader

→ pod 가 IAM role assumeAWS API 호출 권한 자동.

IMPORTANT

IRSA 가 2026 표준. 옛 node IAM role 공유 보다 세분화 + 보안.

EKS Pod Identity (2023+)

IRSA 의 간소화 버전. OIDC provider 없이도 동작:

aws eks create-pod-identity-association \
  --cluster-name prod \
  --namespace default \
  --service-account s3-uploader \
  --role-arn arn:aws:iam::123:role/s3-uploader

EKS Add-ons

AWS 가 관리하는 권장 add-on:

  • VPC CNI
  • CoreDNS
  • kube-proxy
  • EBS CSI driver
  • AWS Load Balancer Controller
  • ADOT (AWS OpenTelemetry)
  • GuardDuty Agent

EKS vs ECS

자세한 건 aws-ecs-fargate. 요약:

flowchart TD
    Q{선택}
    Q -->|AWS only OK + 빠른 시작| ECS[ECS]
    Q -->|K8s 표준 / 이식성 / 큰 생태계| EKS[EKS]

흔한 함정

WARNING

  1. VPC IP 고갈 = pod 수 × ENI 한도. secondary CIDR 추가 또는 prefix delegation 활성.
  2. EKS 버전 업그레이드 = control plane → node → add-on 순서. minor 한 번 (n+1 만).
  3. kubeconfig 의 AWS auth = aws eks update-kubeconfig. IAM 변경 시 인증 깨짐.
  4. Fargate + DaemonSet = Fargate 가 DaemonSet 미지원. log/metric sidecar 가 각 Fargate task 안.

관련 위키

이 글의 용어 (5개)
[AWS] ECS + Fargate: 컨테이너 오케스트레이션cloud
정의 ECS (Elastic Container Service) = AWS 의 컨테이너 오케스트레이션. K8s 보다 단순. Fargate = ECS / EKS 의 서버리스 실행 환…
[AWS] IAM: User, Role, Policy, STScloud
정의 IAM (Identity and Access Management) = AWS 의 권한 관리 전부. User, Group, Role, Policy. 객체 | 객체 | 의미 |…
[AWS] VPC: subnet, route, NAT, peeringcloud
정의 VPC (Virtual Private Cloud) = AWS 안의 논리적 격리 네트워크. CIDR 정의 + subnet 분할 + 라우팅. 구조 Subnet 종류 | 종류 |…
[K8s] Deployment: ReplicaSet, rolling update, rollbackkubernetes
정의 Deployment = stateless 워크로드를 위한 컨트롤러. 내부적으로 ReplicaSet 관리 + rolling update / rollback. 계층 | 객체 |…
[K8s] Pod: 컨테이너의 최소 단위, sidecar, lifecyclekubernetes
정의 Pod = K8s 의 가장 작은 배포 단위. 1개 이상의 컨테이너 + 공유 네트워크 + 공유 스토리지. [!IMPORTANT] Pod 는 컨테이너의 wrapping 이 아니…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기