본문 바로가기

Data/Data Engineering

[AWS] EKS(Elastic Kubernetes Service)란? (WIP)

반응형

쿠버네티스 환경을 만들기 위해서는 아래와같이 세세하게 다양한 설정이 필요하다. 또한, 업그레이드에 필요한 과정들 또한 반복적이고 어려울수가 있다. 이외로 네트워크 설정이나 etcd설정등 복잡한 설정들이 많이 존재한다. 따라서, 이러한 복잡한 과정을 생략하기 위해 AWS에서는 EKS라는 ControlPlane을 직접 구성하지 않아도 쿠버네티스 환경을 편리하게 제공해주는 서비스를 제공한다.

VPC(Virtual Private Cloud)

[참고] https://nearhome.tistory.com/128

[참고] https://medium.com/harrythegreat/aws-가장쉽게-vpc-개념잡기-71eef95a7098

먼저 VPC에 대해서 이해 할 필요가 있다. VPC가 없는 상태에서는 여러개의 EC2 인스턴스들이 아래 그림처럼 서로 거미줄처럼 연결되고 인터넷과 연결됨. 따라서, 특정 EC2 인스턴스가 추가될때마다 다른 EC2의 연결 정보를 매번 수정해줘야하는 번거로움이 발생함.

하지만, VPC가 생긴이후에는 VPC별로 네트워크를 구성할 수 있고 각각의 VPC에 따라서 다르게 네트워크 설정을 줄수가 있음. 각각의 VPC는 독립된 네트워크처럼 작동하게됨

EKS로 넘어가서...

일반적으로 쿠버네티스 클러스터에서는 Pod 네트워크로 워크 노드의 네트워크와는 다른 자체 네트워크 체계를 배치함. 따라서 명시적으로 엔드 포인트를 설정하지 않으면 클러스터 외부에서 Pod에 통신이 불가능함.

 

하지만, EKS생성시 AWS VPC를 연결해줌에 따라서 내부 주소 대역을 사용 할 수 있고 클러스터 외부와의 통신이 가능해지며 이를 자동으로 구현해준다.

ELB (Elastic Load Balancer)

[참고] https://aws-hyoh.tistory.com/128

EKS에서 생성한 쿠버네티스 환경이 아닌 곳에서는 외부에서 접속을 하기위해 직접 엔드포인트를 설정 해줘야하며, 트래픽을 효율적으로 관리할수있기위해 보통은 Load Balancer를 사용함.

하지만 EKS를 사용한다면 자동으로 Load Balancer를 생성해주며, 이를 활용하여 Https 또는 L7 Load Balancer를 AWS서비스로 구현이 가능하다.

 

EKSCTL

k8s에서 kubectl 명령어를 사용하여 리소스를 생성하는것처럼. AWS에서 제공하는 eksctl 명령어를 이용하여 eks클러스터를 생성 할 수가 있다.

kubectl 처럼 eksctl또한 Yaml파일을 활용하여 클러스터를 생성할수있고, cli에서 바로 생성하는것도 가능하다

https://eksctl.io

 

eksctl

eksctl - The official CLI for Amazon EKS sponsored by and built by on New for 2021 Use eksctl to manage clusters which were created by other tools. Find out more here. eksctl is a simple CLI tool for creating and managing clusters on EKS - Amazon's managed

eksctl.io

아래는 다양한 상황에서의 eksctl yaml파일들을 제공해준다

https://github.com/weaveworks/eksctl/tree/main/examples

 

GitHub - weaveworks/eksctl: The official CLI for Amazon EKS

The official CLI for Amazon EKS. Contribute to weaveworks/eksctl development by creating an account on GitHub.

github.com

 

반응형