Skip to main content

Compute Layer

EKS Clusters

us-east-1 — Primary

항목
Cluster Namemulti-region-mall
EKS Versionv1.35 (v1.35.2-eks-f69f56f)
Bootstrap Nodes2× t3.medium / t3a.medium
App Nodes~14-15 (Karpenter managed)
Node IAM Rolemulti-region-mall-node-group
Karpenter Rolemulti-region-mall-karpenter-controller

us-west-2 — Secondary

항목
Cluster Namemulti-region-mall
EKS Versionv1.35 (v1.35.2-eks-f69f56f)
Bootstrap Nodes2× t3.medium / t3a.medium
App Nodes~14-15 (Karpenter managed)
Node IAM Rolemulti-region-mall-node-group-us-west-2
Karpenter Role...-karpenter-controller-us-west-2

EKS Addon Versions

AddonVersion비고
VPC CNIv1.21.1eksbuild suffix differs by region
CoreDNSv1.13.2
kube-proxyv1.35.0
EBS CSIv1.56.0IRSA 필수 (1.35에서 IMDS 제한)
EFS CSIv2.3.0IRSA 필수
IAM Role 네이밍

us-east-1은 role_name_suffix = "" (접미사 없음) — 서픽스 컨벤션 이전에 생성됨. us-west-2는 -us-west-2 접미사 사용.

Karpenter v1.9

부트스트랩 노드 그룹(2× m5.large)은 시스템 워크로드(Karpenter, ArgoCD, CoreDNS)를 실행하고, 애플리케이션 노드는 Karpenter가 6개 NodePool을 통해 동적 프로비저닝합니다.

NodePools

NodePool용도Instance Types
general일반 워크로드m5, m6i, m7i (mixed)
critical핵심 서비스 (API GW, Order)c5, c6i (compute-optimized)
api-tierAPI 계층 서비스m5, c5 (balanced)
worker-tier백그라운드 처리m5, r5 (general)
batch-tier배치 작업m5, c5 (spot 가능)
memory-tier메모리 집약 워크로드r5, r6i (memory-optimized)

EC2NodeClass

apiVersion: karpenter.k8s.aws/v1
kind: EC2NodeClass
metadata:
name: default
spec:
amiSelectorTerms:
- alias: al2023@latest
role: multi-region-mall-node-group # IAM은 글로벌, 양 리전에서 동작
subnetSelectorTerms:
- tags:
Tier: private
securityGroupSelectorTerms:
- tags:
karpenter.sh/discovery: multi-region-mall
Architecture

amd64 only. arm64(Graviton)는 Phase 2에서 도입 예정. EC2NodeClass는 role: multi-region-mall-node-group을 사용하며, IAM이 글로벌이므로 양쪽 리전에서 동작합니다.

Karpenter Requirements

  • Instance profile IAM permissions
  • SQS permissions (interruption handling)
  • karpenter.sh/nodepool tag on subnets
  • aws-auth ConfigMap에 node group role 등록
    • us-west-2: regional role AND global node-group role (Karpenter용)