이전에 진행했던 PKOS 스터디가 끝나고 바로 EKS Workshop 스터디에 참가하게 되었습니다.
현재 EKS 워크샵의 테라폼 소스를 가지고 실무를 진행하고 있는터라 업무를 함에 있어,
다양한 EKS Add-on과 기능을 이해하는 데에 있어 더 뜻깊은 스터디가 될 것 같습니다! :)
이번 스터디는 7주간 진행됨에 따라 현재 다니고 있는 방통대의 과제와 시험 일정이 겹치게 될 것 같지만 7주 동안 빡세게 달려보겠습니다.
저번 PKOS 스터디에서는 KOPS 를 통해 쿠버네티스 환경을 배포하고 실습을 진행했는데, 이번에는 EKS 스터디이다 보니 eksctl 을 통해 실제 EKS 를 배포하여 진행하였습니다.
이번 글에서는 EKS 와 EKS 구성 아키텍처에 대해 간략하게 알아보겠습니다.
1. EKS??
Amazon Elastic Kubernetes Service 의 약자로 Kubernetes 의 Control Plane 과 Node 를 AWS 에서 관리해주는 쿠버네티스 관리형 서비스입니다.
AWS 의 여러 서비스와 통합하여 사용할 수 있습니다. (ECR, ELB, IAM, VPC 등)
오픈 소스인 Kubernetes 를 실행하기 때문에 쿠버네티스 생태계의 다양한 도구를 사용할 수 있습니다.
지원 버전
평균 3개월 마다 새 버전 제공, 각 버전은 12개월 간 지원
현재 1.22 ~ 1.26 버전지원
1.1. EKS Control Plane Architecture
EKS 의 Control Plane 은 AWS Managed VPC 에 배포되기 때문에 사용자는 확인할 수 없습니다.
각 Control Plane 의 API Server 앞에는 ALB 가 구성되어 가용성을 보장해주며, EKS 생성 시 EKS Endpoint 라는 이름으로 연결점을 제공해줍니다.
사용자가 kubectl 명령어를 사용할 시, 해당 EKS Endpoint 로 통신을 시도하게 되며 앞서 설명한 ALB 를 통해 각 Control Plane 의 API 서버로 전송됩니다.
1.2. EKS Data Plane Architecture
EKS 가 제공하는 Data Plane 의 종류
a. Managed Node Groups (관리형 노드 그룹) : 최신 EKS Optimized AMI 를 사용하며, AWS 에서 노드를 관리합니다. b. Self-Managed Nodes (자체 관리형 노드) : Custom AMI 를 사용하며, 사용자가 직접 ASG & OS 구성을 관리합니다. c. AWS Fargate (서버리스) : 별도의 EC2 인스턴스 관리 없이,AWS Fargate 환경에서 제공하는 Micro VM 을 이용하여 Pod 별 VM을 할당합니다.
2. EKS Cluster Endpoint
EKS 사용 시, EKS Endpoint 의 작동 방식을 이해하는 것은 중요합니다.
Endpoint 작동 방식은 Public 이냐 Private 이냐에 따라 총 3가지 조합으로 구분할 수 있습니다.
2.1. Public Endpoint
(Control Plane - kubectl 통신 Public) + (Control Plane - Data Plane 통신 Public)
별도의 설정을 하지 않았을 시, 가장 기본이 되는 통신 방법입니다.
모든 통신이 Public 망을 통해서 이루어지기 때문에, 가장 보안에 취약한 구조입니다.
2.2. Public + Private Endpoint
(Control Plane - kubectl 통신 Public) + (Control Plane - Data Plane 통신 Private)
기존의 Kubectl 명령은 Public 으로 통신하되, Control Plane 과 Data Plane 의 통신은 Private 망으로 숨긴 구성입니다.
Route 53 의 Private Hosted Zone 을 통해 내부 Cluter Endpoint 를 사설망으로 통신할 수 있게 만든 구조입니다.
2.3. Private Endpoint
(Control Plane - kubectl 통신 Private) + (Control Plane - Data Plane 통신 Private)
EKS 의 모든 통신을 Private 망을 통해 할 수 있게 만든 구조입니다. 해당 구성이 보안에 가장 좋으며, EKS 와 통신하기 위한 VPC 내부에 Bastion Host 가 필요하게 됩니다.
이번 글에서는 EKS 에 대해 아주 찍먹 수준으로 간단하게 알아보았습니다. 다음 글부터는 실제 EKS 를 배포하고 EKS 를 잘 활용하기 위한 여러 기능에 대해서 알아볼 예정입니다.