EKS Control Plane Deep Dive — CRD at Scale 종합 가이드
📅 작성일: 2026-03-24 | ⏱️ 읽는 시간: 약 25분
CRD(Custom Resource Definition) 기반 플랫폼을 EKS 위에서 운영할 때, Control Plane은 가장 먼저 병목이 되는 지점입니다. 이 가이드는 Control Plane이 어떻게 동작하는지 이해하고, CRD가 미치는 구체적 영향을 파악한 뒤, Provisioned Control Plane(PCP)과 모니터링을 통해 선제적으로 대응하는 실전 전략을 제공합니다.
목차
- EKS Control Plane 내부 아키텍처
- Control Plane 자동 스케일링
- EKS Provisioned Control Plane (PCP)
- CRD가 Control Plane에 미치는 영향
- EKS Control Plane 모니터링
- CRD 설계 베스트 프랙티스
- 종합 권장사항 & 도입 로드맵
1. EKS Control Plane 내부 아키텍처
1.1 물리적 인프라 구조
EKS의 Control Plane은 AWS가 관리하는 전용 VPC 내에서 실행됩니다. 고객의 워커 노드와는 분리된 독립적인 인프라입니다.
EKS Control Plane (AWS 관리형)
├── kube-apiserver (최소 2개, 다중 AZ 분산)
├── kube-controller-manager
├── kube-scheduler
├── etcd (분산 키-값 저장소)
└── Network Load Balancer (API Server 엔드포인트)
핵심 포인트:
- Control Plane 컴포넌트는 다중 AZ에 분산되어 고가용성을 보장합니다
- 고객에게는 NLB를 통해 단일 API Server 엔드포인트가 노출됩니다
- Control Plane은 AWS가 완전 관리하며, 고객 VPC와 분리된 환경에서 실행됩니다
1.2 etcd — Control Plane의 심장
etcd는 Kubernetes의 모든 상태(Pod, Service, CRD 오브젝트 등)를 저장하는 분산 키-값 저장소입니다. Control Plane 성능의 핵심 병목이 되는 이유:
| 특성 | 설명 | CRD 영향 |
|---|---|---|
| DB Size 한도 | Standard 티어 8GB, Provisioned 티어 16GB | CRD 오브젝트가 많을수록 DB 크기 증가 |
| 요청 크기 제한 | 단일 오브젝트 최대 1.5MB | 큰 spec을 가진 CR이 한도에 근접 가능 |
| Watch Stream | 변경 사항을 실시간으로 전파 | CRD 컨트롤러가 Watch를 추가할수록 부하 증가 |
| RAFT 합의 | 쓰기 시 과반수 합의 필요 | 쓰기가 많은 CRD 패턴에서 지연 발생 |
AWS는 EKS의 etcd 계층을 지속적으로 개선하고 있으며, 예측 가능한 성능(일관된 지연 시간), 데이터 내구성 향상, 가용성 개선이 진행 중입니다.
2. Control Plane 자동 스케일링
2.1 자동 스케일링 동작 원리
EKS는 Control Plane 인스턴스를 자동으로 수직 스케일링합니다. 워크로드 부하에 따라 API Server, etcd 등의 리소스가 자동으로 조정됩니다. 주요 스케일링 신호:
- API Server 부하: inflight requests 수, 요청 지연 시간
- etcd 부하: 데이터베이스 크기, Watch 스트림 수
- 스케줄링 부하: 스케줄링 대기 Pod 수
- 데이터 플레인 규모: Worker Node 수에 따른 선제적 스케일업
2.2 스케일링 특성
- Scale Up: 부하 증가 감지 시 자동으로 스케일업
- Scale Down: 부하 감소 후 보수적으로 스케일다운 (급격한 축소 방지)
- Standard 모드에서는 스케일링 범위에 상한이 있으며, Provisioned 모드로 이를 확장할 수 있습니다
Standard 티어에서는 etcd DB Size가 8GB로 고정됩니다. CRD 오브젝트가 많은 플랫폼에서는 이 한도가 가장 먼저 병목이 됩니다. 자동 스케일링이 CPU/Memory를 아무리 올려도 etcd 용량은 늘어나지 않습니다.
3. EKS Provisioned Control Plane (PCP)
3.1 개요
**EKS Provisioned Control Plane(PCP)**은 re:Invent 2025에서 GA로 출시되었습니다. 고객이 직접 Control Plane의 스케일링 티어(T-Shirt Size)를 선택하여 **성능 바닥(floor)**을 설정할 수 있는 기능입니다.
기존에는 VAS의 자동 스케일링에만 의존했지만, PCP를 통해 선제적으로 최소 성능 보장 수준을 확보할 수 있습니다.
3.2 두 가지 운영 모드
| 모드 | 설명 |
|---|---|
| Standard (동적 모드) | 기존과 동일. 자동으로 부하에 따라 스케일링. 부하 감소 시 보수적으로 스케일다운 |
| Provisioned (프로비저닝 모드) | 고객이 XL/2XL/4XL/8XL 중 원하는 티어를 선택. 해당 티어 아래로 절대 스케일다운하지 않음. 필요시 티어 이상으로 자동 스케일업 가능 |
3.3 티어별 사양 및 가격
| 티어 | etcd DB | SLA | 시간당 가격 |
|---|---|---|---|
| Standard | 8GB | 99.95% | $0.10 |
| XL | 16GB | 99.99% | $1.65 |
| 2XL | 16GB | 99.99% | $3.40 |
| 4XL | 16GB | 99.99% | $6.90 |
| 8XL | 16GB | 99.99% | $13.90 |
최신 가격은 AWS EKS Pricing 페이지에서 확인하세요.
3.4 Provisioned 티어에서만 사용 가능한 기능
| 기능 | Standard | XL 이상 |
|---|---|---|
| API Server 수평 확장 (2개 이상) | 2개 제한 | 가능 |
| etcd DB Size 16GB | 8GB 고정 | 16GB |
| etcd Event Sharding | 불가 | 가능 (이벤트 객체를 별도 etcd 파티션으로 분리) |
| 99.99% SLA | 99.95% | 99.99% |
CRD 기반 플랫폼에서 가장 먼저 한계에 도달하는 것은 etcd DB Size입니다. Standard 티어의 8GB 한도는 CRD 오브젝트가 많은 환경에서 금방 소진됩니다. Provisioned 티어는 16GB로 2배 확장되며, Event Sharding을 통해 이벤트 객체의 부하도 분리할 수 있습니다.
3.6 CLI/API 사용법
클러스터 생성 시 티어 지정:
aws eks create-cluster --name prod \
--role-arn arn:aws:iam::012345678910:role/eks-service-role \
--resources-vpc-config subnetIds=subnet-xxx,securityGroupIds=sg-xxx \
--control-plane-scaling-config tier=XL
기존 클러스터 티어 변경:
aws eks update-cluster-config --name example \
--control-plane-scaling-config tier=XL
업데이트 진행 확인:
aws eks describe-update --name example --update-id <update-id>
# Response: { "update": { "type": "ScalingTierConfigUpdate", "status": "Successful" } }
클러스터 정보 확인:
aws eks describe-cluster --name example
# Response에 controlPlaneScalingConfig.tier 필드 포함