새소식

AWS/EKS

[EKS Study 1주차] EKS 소개

  • -

CloudNet@ 팀의 가시다님께서 Leading 하시는 AEWS Study 내용 요약

해당 EKS Study 는 AWS 에서 제공하는 'EKS Workshop v2' 를 기반으로 진행 중입니다.

 

  • EKS Workshop v2
 

EKS Workshop | EKS Workshop

Amazon Web Services workshop for Elastic Kubernetes Service

www.eksworkshop.com

 

이전에 진행했던 PKOS 스터디가 끝나고 바로 EKS Workshop 스터디에 참가하게 되었습니다.

 

현재 EKS 워크샵의 테라폼 소스를 가지고 실무를 진행하고 있는터라 업무를 함에 있어,

다양한 EKS Add-on과 기능을 이해하는 데에 있어 더 뜻깊은 스터디가 될 것 같습니다! :)

 

이번 스터디는 7주간 진행됨에 따라 현재 다니고 있는 방통대의 과제와 시험 일정이 겹치게 될 것 같지만 7주 동안 빡세게 달려보겠습니다.

 

저번 PKOS 스터디에서는 KOPS 를 통해 쿠버네티스 환경을 배포하고 실습을 진행했는데,
이번에는 EKS 스터디이다 보니 eksctl 을 통해 실제 EKS 를 배포하여 진행하였습니다.

 

이번 글에서는 EKSEKS 구성 아키텍처에 대해 간략하게 알아보겠습니다.

 

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 를 잘 활용하기 위한 여러 기능에 대해서 알아볼 예정입니다.

Contents

포스팅 주소를 복사했습니다