Amazon EKS Provisioned Control Plane

Amazon EKS Provisioned Control Plane

클러스터 관리자가 다양한 스케일링 티어 중에서 선택해 제어 플레인에서 매우 높고 예측 가능한 성능을 얻을 수 있는 Amazon EKS Provisioned Control Plane 기능을 알아봐요. 지정한 용량으로 제어 플레인이 항상 프로비저닝되도록 보장할 수 있어요.

출처: 문서

본문

개요 (Overview)

Amazon EKS Provisioned Control Plane은 클러스터 관리자가 여러 스케일링 티어 중에서 선택하고, 선택한 티어를 지정해 클러스터 제어 플레인에서 매우 높고 예측 가능한 성능을 얻을 수 있게 하는 기능이에요. 이렇게 하면 제어 플레인이 항상 지정된 용량으로 프로비저닝되도록 보장할 수 있어요.

Amazon EKS는 클러스터의 제어 플레인에 대해 두 가지 운영 모드를 제공해요. 기본적으로 Amazon EKS 클러스터는 워크로드 수요에 따라 제어 플레인이 자동으로 확장/축소되는 Standard 모드를 사용해요. Standard 모드는 워크로드 요구를 충족하도록 제어 플레인 용량을 동적으로 할당하며 대부분의 사용 사례에 권장되는 솔루션이에요. 하지만 제어 플레인 스케일링으로 인한 어떤 성능 변동도 견딜 수 없거나 매우 높은 양의 제어 플레인 용량이 필요한 특수 워크로드에는 선택적으로 Provisioned 모드를 사용할 수 있어요. Provisioned 모드를 사용하면 까다로운 워크로드 요구를 항상 처리할 준비가 된 제어 플레인 용량을 미리 할당할 수 있어요.

참고: Provisioned 모드는 기본 Standard 모드와 함께 제공되는 추가 제어 플레인 운영 모드예요. Provisioned 모드의 도입은 Standard 모드 동작을 변경하지 않아요.

EKS Provisioned Control Plane을 사용하면 클러스터 관리자가 원하는 제어 플레인 용량을 미리 프로비저닝해 항상 사용 가능한 예측 가능하고 높은 성능을 얻을 수 있어요. 또한 스테이징부터 프로덕션, 재해 복구 사이트까지 환경 간에 동일한 제어 플레인 용량을 프로비저닝할 수 있어요. 이는 환경 간 제어 플레인 성능이 일관되고 예측 가능하도록 보장하는 데 중요해요. 마지막으로 EKS Provisioned Control Plane은 매우 높은 수준의 제어 플레인 성능에 접근할 수 있게 해, Kubernetes에서 대규모 확장 AI 워크로드, 고성능 컴퓨팅, 대규모 데이터 처리 워크로드를 실행할 수 있게 해요.

모든 기존 및 새 Amazon EKS 클러스터는 기본적으로 Standard 모드로 운영돼요. 제어 플레인에서 높고 예측 가능한 성능이 필요한 클러스터는 EKS Provisioned Control Plane 기능을 선택(opt in)할 수 있어요. 표준 또는 확장 지원 EKS 시간당 요금에 더해 특정 제어 플레인 스케일링 티어의 시간당 요율로 청구됩니다. 요금에 대한 자세한 내용은 Amazon EKS pricing을 참고해 주세요.

사용 사례 (Use cases)

EKS Provisioned Control Plane은 운영에서 높고 예측 가능한 제어 플레인 성능이 중요한 특정 시나리오를 해결하도록 설계됐어요. 이 사용 사례를 이해하면 워크로드에 EKS Provisioned Control Plane이 적합한 솔루션인지 판단하는 데 도움이 돼요.

  • 성능 중시 워크로드 (Performance-critical workloads) — Kubernetes 제어 플레인에서 최소 지연 시간과 최대 성능이 필요한 워크로드에 EKS Provisioned Control Plane은 제어 플레인 스케일링에 따른 성능 변동을 없애는 용량을 제공해요.
  • 대규모 확장 워크로드 (Massively scalable workloads) — 클러스터에서 많은 수의 노드를 실행해야 하는 AI 학습·추론, 고성능 컴퓨팅, 대규모 데이터 처리 같은 확장성이 매우 높은 워크로드의 경우 Provisioned Control Plane이 이런 까다로운 워크로드를 지원하는 데 필요한 제어 플레인 용량을 제공해요.
  • 예상되는 수요 급증 이벤트 (Anticipated high-demand events) — 전자상거래 세일이나 프로모션, 제품 출시, 쇼핑 성수기, 주요 스포츠/엔터테인먼트 이벤트 같은 예정된 이벤트로 제어 플레인 요청이 갑자기 급증할 것으로 예상될 때, Provisioned Control Plane으로 제어 플레인 용량을 미리 확장할 수 있어요. 이 사전 예방적 접근 방식은 자동 스케일링이 수요에 응답할 때까지 기다리지 않고 제어 플레인이 증가된 부하를 처리할 준비가 되도록 보장해요.
  • 미션 크리티컬 고가용성 (Mission-critical high availability) — 최고 수준의 가용성이 필요한 워크로드에 Provisioned Control Plane은 1분 간격으로 측정되는 99.99% Service Level Agreement(SLA)를 제공해요. 이 향상된 SLA는 5분 간격으로 측정되는 Standard 제어 플레인 모드의 99.95% SLA에 비해 더 엄격한 가용성 약속을 제공해요.
  • 환경 일관성 (Environment consistency) — Provisioned Control Plane으로 스테이징과 프로덕션 환경 간에 제어 플레인 용량과 성능을 일치시켜 프로덕션 배포 전에 잠재적 문제를 조기에 식별할 수 있어요. 환경 간에 동일한 제어 플레인 티어를 유지하면 테스트 결과가 프로덕션 동작을 정확히 반영하도록 보장해, 롤아웃 중 성능 관련 예상치 못한 문제의 위험을 줄여요.
  • 재해 복구 및 업무 연속성 (Disaster recovery and business continuity) — 재해 복구 시나리오에서 Provisioned Control Plane으로 기본 환경과 동일한 수준의 용량으로 장애 조치 환경을 프로비저닝할 수 있어요. 활성화되는 순간부터 재해 복구 클러스터가 프로덕션 클러스터와 동일한 제어 플레인 성능 특성을 가지므로 장애 조치 이벤트 중 최소한의 중단과 빠른 복구가 보장돼요.

제어 플레인 스케일링 티어 (Control Plane Scaling Tiers)

EKS Provisioned Control Plane은 티셔츠 크기(XL, 2XL, 4XL, 8XL)로 명명된 스케일링 티어를 제공해요. 각 티어는 클러스터 제어 플레인의 성능 특성을 결정하는 네 가지 핵심 속성으로 그 기능을 정의합니다. 이 속성을 이해하면 워크로드 요구 사항에 적절한 티어를 선택하는 데 도움이 돼요.

  • API 요청 동시성 (API request concurrency) — Kubernetes 제어 플레인의 API 서버가 동시에 처리할 수 있는 요청 수입니다. 높은 처리량 워크로드에 중요합니다.
  • 파드 스케줄링 속도 (Pod scheduling rate) — 기본 Kubernetes 스케줄러가 노드에 파드를 스케줄링할 수 있는 속도로, 초당 파드 수로 측정합니다.
  • 클러스터 데이터베이스 크기 (Cluster database size) — 클러스터 상태/메타데이터를 보유하는 데이터베이스인 etcd에 할당된 스토리지 공간입니다.
  • SLA (Service Level Agreement) — EKS 클러스터의 Kubernetes 엔드포인트의 월간 가동 시간 약속입니다.

Provisioned Control Plane으로 클러스터 제어 플레인을 특정 스케일링 티어로 프로비저닝하면 EKS는 클러스터 제어 플레인이 해당 티어에 해당하는 한도를 유지하도록 보장해요. 제어 플레인 스케일링 티어의 한도는 다음 표와 같이 Kubernetes 버전에 따라 달라져요.

EKS v1.30 ~ v1.33

Provisioned Control Plane 스케일링 티어 API 요청 동시성 (seats) 파드 스케줄링 속도 (pods/sec) 클러스터 DB 크기 (GB) SLA (1분 간격 측정)
XL 1700 167 16 99.99%
2XL 3400 283 16 99.99%
4XL 6800 400 16 99.99%
8XL 13600 400 16 99.99%

EKS v1.34 이상

Provisioned Control Plane 스케일링 티어 API 요청 동시성 (seats) 파드 스케줄링 속도 (pods/sec) 클러스터 DB 크기 (GB) SLA (1분 간격 측정)
XL 2000 167 16 99.99%
2XL 4000 283 16 99.99%
4XL 8000 400 16 99.99%
8XL 16000 400 16 99.99%

스케일링 티어 값을 프로그래밍 방식으로 검색 (Retrieving scaling tier values programmatically)

DescribeClusterVersions API로 각 Kubernetes 버전의 스케일링 티어 속성과 값을 검색할 수 있어요. 티어 선택을 자동화하거나 버전 간 티어 기능을 프로그래밍 방식으로 비교해야 할 때 유용해요. 자세한 내용은 Amazon EKS API 참조의 DescribeClusterVersions를 참고해 주세요.

제어 플레인 스케일링 티어 활용도 모니터링 (Monitoring control plane scaling tier utilization)

Amazon EKS는 제어 플레인의 티어 활용도를 모니터링하는 데 도움이 되는 여러 메트릭을 제공해요. 이 메트릭은 Amazon CloudWatch 메트릭으로 게시되며 CloudWatch와 EKS 콘솔에서 접근할 수 있어요. 또한 EKS 클러스터의 Prometheus 엔드포인트에서 스크랩할 수 있어요.

성능 속성 Prometheus 메트릭 CloudWatch 메트릭
API 요청 동시성 apiserver_flowcontrol_current_executing_seats apiserver_flowcontrol_current_executing_seats
파드 스케줄링 속도 scheduler_schedule_attempts_total scheduler_schedule_attempts_total, scheduler_schedule_attempts_SCHEDULED, scheduler_schedule_attempts_UNSCHEDULABLE
클러스터 DB 크기 apiserver_storage_size_bytes (참고: etcd_mvcc_db_total_size_in_use_in_bytes는 2026년 하반기까지 모든 EKS 클러스터에 prometheus 메트릭으로 출시될 예정) etcd_mvcc_db_total_size_in_use_in_bytes

Amazon EKS 콘솔에서 제어 플레인 활용도를 볼 수 있어요. 클러스터 개요 페이지에서 Monitor cluster를 선택해 관측성 대시보드에 접근한 다음, Control plane monitoring 탭을 선택해 Control plane scaling 섹션 아래에서 제어 플레인 활용도를 확인할 수 있어요.

티어 용량과 실제 성능 이해하기 (Understanding Tier capacity versus actual performance)

Provisioned Control Plane 스케일링 티어를 선택하면 티어 속성은 Amazon EKS가 제어 플레인에 적용하는 기본 구성을 나타내요. 하지만 실제 달성하는 성능은 특정 워크로드 패턴, 구성, Kubernetes 모범 사례 준수에 따라 달라져요. 예를 들어 4XL 티어가 API Priority and Fairness(APF)를 6,800개의 동시 요청 seats로 구성하지만, 제어 플레인에서 얻는 실제 요청 처리량은 수행되는 작업 유형에 따라 달라져요. 예를 들어 Kubernetes는 get 요청보다 list 요청에 더 불리하게 작용하므로, 제어 플레인이 동시에 처리하는 효과적인 list 요청 수는 get 요청보다 낮아요. 자세한 내용은 EKS 모범 사례 가이드의 API Priority and Fairness를 참고해 주세요. 마찬가지로 기본 스케줄러 QPS가 4XL 티어에서 400으로 설정되어 있어도 실제 파드 스케줄링 속도는 노드가 스케줄링을 위해 준비되고 정상인지 같은 요소에 따라 달라져요. 최적의 성능을 얻으려면 애플리케이션이 Kubernetes 모범 사례를 따르고 워크로드 특성에 맞게 적절히 구성되었는지 확인해 주세요. 자세한 내용은 EKS 모범 사례 가이드의 Scalability best practices를 참고해 주세요.

Horizontal Pod Autoscaler 동기화 동시성 (HPA sync concurrency)

제어 플레인 스케일링 티어 속성 외에도 EKS Provisioned Control Plane 클러스터는 더 높은 Horizontal Pod Autoscaler(HPA) 동기화 동시성으로 튜닝돼요. HPA 동기화 동시성은 Kubernetes 컨트롤러 매니저가 병렬로 처리하는 HPA 객체 수예요. 업스트림 Kubernetes 기본값은 5예요. 동시성이 높을수록 제어 플레인이 더 많은 HPA 객체를 동시에 조정할 수 있어, 부하 변경과 해당 스케일링 작업 사이의 시간이 줄어요. 이는 많은 수의 HPA 객체를 실행하는 클러스터에서 유용한데, 직렬로 처리하면 오토스케일링이 지연될 수 있기 때문이에요.

각 Provisioned Control Plane 스케일링 티어는 다음 HPA 동기화 동시성으로 구성돼요.

Provisioned Control Plane 스케일링 티어 HPA 동기화 동시성
XL 50
2XL 100
4XL 200
8XL 200

HPA 컨트롤러에 대한 Kubernetes 컨트롤러 매니저 워크큐 메트릭을 통해 더 높은 HPA 동기화 동시성의 효과를 관찰할 수 있어요:

  • workqueue_depth{name="horizontalpodautoscaler"} — HPA 컨트롤러가 처리하기를 기다리는 HPA 객체 수입니다. 동시성이 높을수록 더 많은 워커가 이 큐를 병렬로 비우므로 깊이가 낮고 안정적으로 유지됩니다(이상적으로 각 조정 주기 내에 0에 도달). 0에 가까운 워크큐 깊이는 제어 플레인이 클러스터의 HPA 객체를 따라잡고 있고 오토스케일링 결정이 백로그로 지연되지 않음을 나타냅니다.

관찰하는 실제 오토스케일링 응답성은 제어 플레인 외부의 요소에도 달려 있어요. 각 HPA 조정은 스케일링 결정을 이끄는 메트릭을 가져오는데, 일반적으로 CPU와 메모리 활용도는 Kubernetes Metrics Server에서, 사용자 지정 또는 외부 메트릭은 어댑터에서 가져옵니다. 클러스터의 HPA 객체 수와 메트릭 조회의 지연 시간은 모두 컨트롤러가 큐를 처리하는 속도에 영향을 줘요. 메트릭 소스가 요청을 충분히 빠르게 서비스하지 못하면 병렬로 처리하는 수와 관계없이 조정이 느려져요. 요청 볼륨을 서비스할 만큼 충분한 Metrics Server replica를 실행하고 메트릭 쿼리를 효율적으로 범위를 지정하면 더 높은 HPA 동기화 동시성의 이점을 온전히 누릴 수 있어요. Horizontal Pod Autoscaler가 어떻게 동작하고 어디서 메트릭을 검색하는지에 대한 자세한 내용은 Kubernetes 웹사이트의 Horizontal Pod Autoscaling을 참고해 주세요.

고려 사항 (Considerations)

  • Standard 제어 플레인 용량 — EKS Standard 제어 플레인 모드는 가장 좋은 가격 대비 성능을 제공하며 대부분의 사용 사례에 권장되는 옵션이에요. 하지만 제어 플레인 스케일링으로 인한 어떤 성능 변동도 견딜 수 없거나 매우 높은 용량이 필요한 특수 워크로드에는 선택적으로 Provisioned 모드 사용을 고려할 수 있어요.
  • 선택(opt-in) 필요 — 기존 클러스터는 Standard 제어 플레인에서 더 높은 비용의 EKS Provisioned Control Plane 티어로 자동으로 확장되지 않아요. 새 EKS Provisioned Control Plane 스케일링 티어 중 하나에 명시적으로 opt in해야 해요.
  • 종료 제한 (Exit restriction) — Standard 제어 플레인 모드는 최대 8GB의 클러스터 데이터베이스(etcd) 크기를 지원해요. Provisioned 모드를 사용하는 동안 클러스터 데이터베이스 크기가 8GB를 초과하면, 데이터베이스 크기를 8GB 미만으로 줄일 때까지 Standard 모드로 돌아갈 수 없어요. 예를 들어 Provisioned 모드에서 14GB의 데이터베이스 스토리지를 사용한다면 Standard 모드로 돌아가기 전에 데이터베이스 활용도를 8GB 미만으로 줄여야 해요.
  • 자동 티어 스케일링 없음 — EKS Provisioned Control Plane은 티어 간에 자동으로 스케일링하지 않아요. 스케일링 티어를 선택하면 클러스터 제어 플레인은 그 티어에 고정되어 일관되고 예측 가능한 성능을 보장해요. 하지만 티어 활용도 메트릭을 모니터링하고 EKS Provisioned Control Plane API를 사용해 이 메트릭이 정의한 임계값을 넘을 때 확장/축소하는 자체 오토스케일링 솔루션을 구현할 수 있는 유연성이 있어요. 스케일링 전략과 비용 최적화를 완전히 제어할 수 있어요.
  • 현재 티어 보기 — Amazon EKS 콘솔, AWS CLI, 또는 API로 현재 제어 플레인 스케일링 티어를 볼 수 있어요. CLI에서는 describe-cluster 명령을 실행할 수 있어요: aws eks describe-cluster --name cluster-name
  • 티어 전환 시간 — Amazon EKS 콘솔, Amazon EKS API, 또는 CLI로 스케일링 티어를 종료하거나 이동할 수 있어요. Amazon EKS는 ScalingTierConfigUpdate라는 새 클러스터 업데이트 유형을 도입했는데, 이를 검사해 전환 진행 상황을 모니터링할 수 있어요. 티어 변경 명령을 실행한 후 클러스터의 업데이트를 나열하면 상태가 Updating인 ScalingTierConfigUpdate 유형의 새 업데이트가 보여요. 업데이트가 완료되면 상태가 Successful로 바뀌고, 오류가 발생하면 Failed로 바뀌어요. 업데이트의 error 필드가 실패 이유를 나타내요. 티어 전환 빈도에는 제한이 없어요. 제어 플레인 티어 변경은 완료하는 데 몇 분이 걸려요. 이 과정 중 API 서버 다운타임은 없어요. EKS가 기존 API 서버를 종료하기 전에 새 API 서버를 띄우기 때문이에요.
  • 최적 티어 선택 — 클러스터에 최적의 Provisioned Control Plane 스케일링 티어를 결정하려면 클러스터를 최고 티어(8XL)로 프로비저닝해 부하 테스트를 수행할 수 있어요. 그런 다음 클러스터 제어 플레인의 피크 수요를 시뮬레이션하는 부하 테스트를 수행합니다. 피크 부하에서 제어 플레인 티어 활용도 메트릭을 관찰하고 이 관찰을 Provisioned 모드에 적절한 티어를 선택하는 기준으로 사용해 주세요.
  • Provisioned Control Plane 요금 — 클러스터가 있는 Provisioned Control Plane 스케일링 티어의 시간당 요율로 청구됩니다. 이는 표준 또는 확장 지원 시간당 요금에 추가로 부과돼요. 세부 정보는 Amazon EKS Pricing 페이지를 참고해 주세요.
  • 더 큰 스케일링 티어 — 8XL보다 큰 스케일링 티어에서 클러스터를 실행하려면 추가 요금 정보를 위해 AWS 계정 팀에 문의해 주세요.
  • Kubernetes 버전 및 리전 지원 — EKS Provisioned Control Plane은 모든 AWS 상용, GovCloud, 중국 리전에서 지원돼요. Provisioned Control Plane은 EKS v1.28 이상에서 동작해요.
  • 더 높은 SLA — EKS Provisioned Control Plane은 Standard Control Plane보다 더 높은 EKS SLA를 제공해요. 자세한 내용은 EKS SLA 페이지에서 알아보세요.

더 알아보기 (Learn more)