스터디/AEWS

[AEWS] 0주차 EKS 알아보기

안녕유지 2025. 2. 8. 15:25

아래 글은 'Amazon EKS 알아보기 - EKS Overview' 영상을 보고 정리한 글입니다.

https://www.youtube.com/watch?v=E49Q3y9wsUo

 

컨테이너 오케스트레이터

 

만약 우리가 서버에 컨테이너 하나를 실행시킨다고 했을 때, 서버 하나 서비스 하나 일 경우에는 관리가 쉽지만, 이게 수십 수백대의 서버 위에 컨테이너를 실행하는 환경이라면 컨테이너가 장애가 발생하였을 때, 관리자가 서버에 들어가서 컨테이너를 되살리거나 노드를 증설하는 등 조치를 매번 하게 된다면 운영 부담이 증가하게 될 것입니다.

 

이러한 운영 부담을 줄이기 위해 탄생한 개념이 컨테이너 오케이스트레이터로서, 사용자가 원하는 상태를 동작하도록 관리하는 역할을 합니다.

 

ECS VS EKS

AWS에서 컨테이너 오케스트레이션 도구 중 대표적으로 ECS와 EKS가 있는데 둘은 어떤 차이가 있을까요?

ECS EKS 공통점
- AWS에서 제작한 컨테이너 서비스
- 운영이 쉽고 간편
- AWS 관리형 쿠버네티스 서비스
- 오픈소스 커뮤니티에서 개발한 도구 및 플러그인 활용
  - 오픈소스 K8s 수정하지 않고 구동
  - K8s 4개 마이너 버전 지원
- 운영 표준화
- 관리형 컨트롤 플레인
- EC2, Fargate로 실행
- AWS 서비스들과 통합

 

 

EKS 깊이 알아보기

일반 설치형 쿠버네티스 같은 경우, 컨트롤 플레인(마스터 노드)에 API server, etcd, kube-scheduler, controller-manager 등 쿠버네티스 내부 주요 컴포넌트들이 있고, 데이터 플레인(워커 노드)에 kubelet, kube-proxy 등의 컴포넌트로 구성되어있습니다. 부하가 크거나 요청이 많을 경우 컨트롤 플레인의 수량만 무한정 늘리기 보단 적절한 괸리가 필요합니다.

이 때, 컨트롤 플레인 영역을 AWS에서 관리할 수 있도록 관리형 쿠버네티스로 나온 것이 EKS입니다.

AWS Managed VPC
Customer VPC

 

EKS 클러스터와 통신하기 위한 방법은 크게 3가지가 있습니다.

 

1. Public 엔드포인트

워커 노드도 퍼블릭으로 접근해야해서 보안 상 비권장

 

2. Public + Private 엔드포인트

외부에서 API 서버 엔드포인트 퍼블릭으로 접근, 클러스터 내부에서 워커노드와 API 서버 간 통신할 때는 ENI 활용하여 프라이빗으로 접근

가능한 이유는, R53에서 같은 도메인일 경우 내부 Private Host zone 먼저 찾아가기 때문

 

3. Private 엔드포인트

외부에서 접근하지 못하고 bastion 서버 등에 접속하여 접근

하지만, 외부로 나가지 못하여 VPC Endpoint 만들지 않는다면 외부로 나갈 수 있는 방법이 없음 (ecr,s3 등)

 

 

데이터 플레인에 대한 옵션도 크게 3가지가 있습니다.

 

1. Self-Managed 노드 그룹

Custom AMI 사용, Autoscaling Group 직접 관리

 

2. Managed 노드 그룹

최신 EKS Optimized AMI 사용, Autoscaling Group 자동 생성

 

+) 업데이트 과정

새로운 Launch Configuration 생성 -> Auto scaling group 업데이트 설정으로 병렬로 업그레이드 할 최대 노드 수 와 사용할 수 없는 노드 수 설정 -> 기존 노드 삭제 작업 -> 구 버전 AMI 터미네이션 -> Auto Scaling Group 설정을 기존 설정으로 변경

 

3. AWS Fargate

별도 관리하는 EC2 인스턴스 없이 Fargate 환경에서 제공하는 Micro VM 이용하여 pod별 VM 할당