EKS에 대하여
EKS는 AWS에서 신청 가능한 Kubernetes 관리형 서비스입니다.
AWS EKS를 신청하면 컨트롤 플레인과 노드를 설치하고 유지 보수하는 이유가 사라집니다.
EKS는 여러 가용 영역에서 kubernetes 컨트롤 플레인 인스턴스를 실행하여 고가용성을 보장하며,
컨트롤 플레인의 이상 여부를 감지하여 자동으로 교체합니다.
또, 지속적으로 Kubernetes 버전 업데이트에 맞춰 EKS 역시 릴리즈 업데이트가 되고 있어,
버전 업데이트도 콘솔 및 CLI 상에서 유저가 편리하게 수행할 수 있습니다.
일반적으로 4개의 Standard Version 지원하며, Extended Version으로 Old 버전 5개를 지원합니다. (25.02.05 기준)
Extended Version의 클러스터를 사용할 경우에는 추가 비용이 발생합니다. DOCS
✅ EKS Release Calendar
✅ EKS vs 자체 Kubernetes 구축 비교
비교 항목 | AWS EKS | Self-Hosted |
관리 부담 | AWS가 컨트롤 플레인 관리 | 모든 관리 작업 직접 수행 필요 |
보안 업데이트 | 자동 패치 적용 | 수동으로 보안 패치 수행 필요 |
네트워크 및 IAM 연동 | AWS 네이티브 연동 | 별도 설정 필요 |
확장성 | 자동 확장 기능 제공 | 별도 설정 필요 |
비용 | 컨트롤 플레인 비용 + 워커 노드 비용 | 인프라 구축 및 유지보수 비용 발생 |
EKS 아키텍처
- EKS Control Plane : 분산 구성요소, 복원성, 가동 시간 (SLA), AWS VPC
- API 서버 가용성 보장
- ETCD 가용성 보장
- 백업 관리
(추가1) Control Plane
컨트롤 플레인은 단일 서버 혹은 고가용성을 위한 클러스터 마스터로 구축합니다.
컨트롤 플레인에는 클러스터 전반을 관리하고 제어하는 여러 컴포넌트 포함되어 있습니다.
1. Kube-apiserver
- 모든 컨트롤 플레인 구성 요소 중 가장 앞단에 위치
- 인증/인가 수행
- 클러스터의 API를 제공하고 모든 작업의 핵심 역활
- REST API를 통해 클러스터의 상태를 조회하고 업데이트하고 etcd에 저장
2. ETCD - 하단 추가2 참고
3. Kube-scheduler
- 노드의 리소스(CPU, RAM, Network I/O) 사용량을 고려하여 최적의 노드 선택
- 노드 상태(준비 완료 여부, 가용성)에 따라 배치 결정
- affinity/anti-affinity 규칙 적용 (특정 노드에 파드 배치 제어)
4. Kube-Controller-manager
- 클러스터 상태를 지속 모니터링하여 상태 유지
- node controller : 노드 상태 감지 및 장애 감지
- replication controller : 파드 개수 조정
- endpoint controller : 서비스와 파드 간의 연결 관리
** 컨트롤 플레인과 워커 노드 간의 주요 연결
1. API 서버 ↔ kubelet(워커 노드의 에이전트)
- API 서버는 각 워커 노드의 kubelet과 통신하여 파드의 상태를 관리
2. 컨트롤러 매니저 ↔ 워커 노드
- 컨트롤러 매니저는 노드 상태를 감지하고, 장애가 발생하면 파드를 재배포
3. 스케줄러 ↔ 워커 노드
- 스케줄러는 워커 노드의 리소스를 확인하고, 최적의 노드에 파드를 배치
구성 요소 | 역할 |
API 서버 (kube-apiserver) | Kubernetes API를 통해 요청을 처리하고, 인증/인가 수행 |
etcd | 클러스터 상태 정보를 저장하는 분산 저장소 |
컨트롤러 매니저 (kube-controller-manager) | 클러스터 상태를 유지하고 필요한 조치 수행 |
스케줄러 (kube-scheduler) | 파드를 적절한 워커 노드에 배치 |
클라우드 컨트롤러 매니저 (cloud-controller-manager) | 클라우드 환경에서 로드밸런서, 스토리지 등을 관리 |

(추가2) ETCD란
ETCD는 분산 key-value 저장소로, 고가용성, 일관성 등 장애 복구 기능을 제공하는 데이터 베이스입니다.
주로 Kubernetes의 핵심 컴포넌트로 사용되고, 클러스터의 상태 정보 저장, 리더 선출 등에 활용됩니다.
ETCD의 주요 특징
- 분산 시스템 지원
- 강력한 일관성
- 고가용성 및 장애 복구
- 빠른 성능감지 기능
- 지원트랜잭션 지원
ETCD는 Quorum을 필요로 하기 때문에 홀수 단위의 클러스터를 유지합니다.CKA 시험에서도 항상 나오듯이 ETCD는 백업을 필수적으로 진행하여야 합니다.사실상의 Core 시스템이기 때문에 여러 솔루션을 통한 모니터링 역시 필요합니다.
Kubernetes 운영 시 반드시 필요한 ETCD는 그 외에 고가용성이 필요한 시스템에서도 사용되고 있습니다.최근에는 Postgresql Cluster 구성에서도 사용되는 모습을 보이고 있어, 분산 시스템에서 유용하게 사용되고 있습니다.
- EKS Data Plane : 노드 유형 (Managed node groups, Self-manaed nodes, AWS Auto Mode, AWS Fargate, AWS Hybrid Nodes)
- Managed node groups (관리형 노드 그룹)
- 최신 EKS Optimized AMI를 사용
- AWS에서 AMI를 관리
- Capacity(On-demand, Spot)
- Self-managed nodes
- Custom AMI를 사용
- ASG 직접 관리
- OS 기본구성 / 패치를 고객이 직접 관리
- Karpenter
- 유연한 고성능 Kubernetes 클러스터 스케일러로 어플리케이션 가용성과 클러스터 효율성 개선에 도움
- Karpenter는 가변적인 어플리케이션 로드에 대응하기 위해 상시 감시를 통해 컴퓨팅 리소스를 Scale In / Out
- EKS Auto Mode
- Control Plane과 Data Plane 모두 AWS 관리 영역에 포함되어 자동화
- Auto Scaling, Network, Load Balancer, DNS, Storage, GPU 모두 기본 구성 요소로 통합
- 보안이 향상되고 사용자가 변경할 수 없는 AMI로 워크로드 관리
- EKS Hybrid nodes
- 온프레미스 및 엣지 인프라를 EKS 클러스터의 노드로 사용
- Hybrid 환경 전반의 Kubernetes 관리를 통합하고 온프레미스 및 엣지 어플리케이션을 위해 컨트롤 플레인 관리를 AWS로 오프로드
- AWS Fargate
- Fargate 환경에서 제공하는 Micro VM을 사용하여 Pod 별 VM 할당
- 고객 관리 해당 없음
'Cloud > AWS' 카테고리의 다른 글
[AWS] EKS 설치 및 기본 사용 (2) (0) | 2025.02.07 |
---|---|
[AWS] EKS 설치 및 기본 사용 (1) (0) | 2025.02.06 |
[AWS] Terraform으로 Karpenter 설치하고 노드 증설하기 (2) | 2024.11.05 |
[AWS] EKS 생성 (by terraform) (0) | 2024.07.17 |
[AWS] Oracle RDS 엔진 업그레이드 하기 (0) | 2024.07.17 |