티스토리 뷰

Cloud/AWS

[AWS EC2] EKS 시작하기(1): Kubernetes on AWS

나미의 로그포스 2023. 6. 6. 15:17

1. EKS란?

 

EKS(Elastic Kubernetes Service) 란 AWS에서 쿠버네티스 클러스터를 구축하고 운영하는 방식을 말합니다.

클러스터 자체는 ECS로도 무료로 구성이 가능하지만, 다양한 이유로 현업에서는 EKS를 이용해 구축하는 방식을 선택하고 있습니다. 

 

 

📌 EKS를 사용하는 이유
       1.  완전 관리형 서비스 → 자동화 편리성
       2. 빠르고 쉬운 플랫폼 설치
       3. 연동되는 오픈 소스의 사용
       4. Ingress/Egress 트래픽 접근 제어

 

 

EKS는 Kubernetes를 아예 수정, 변경하지 않았으므로 기존과 동일한 사용이 가능합니다.

 

Control Plane EKS + ECS
Data Plane EC2 + Fargate

 

 

Control Plane(=master node)에 해당하는 영역은 AWS에서 전부 관리하며, 사용자가 접근이 불가능하고 어떠한 설정 변경도 허용되지 않습니다. 우리가 볼 수 있는 EC2 인스턴스에서 확인할 수 있는 것은 오로지 worker node인 셈입니다.

 

사용자가 Kubernetes를 잘 몰라도 사용할 수 있지만, master node를 직접 핸들링할 수 없다는 단점이 있어 EC2 인스턴스에 직접 Kubernetes를 설치하여 핸들링하는 방법도 많이 사용됩니다. (비용 절약은 덤!)

 

 

EKS는 다시 말해 신뢰성 및 보안과 관리 작업의 단순화 를 위해 AWS에서 출시한 Kubernetes 서비스 입니다.

 


2. EKS 클라우드 아키텍쳐

 

 

Master node와 Worker node

 

 

일반적으로 쿠버네티스 클러스터에서는 외부 인스턴스와 pod 간 통신이 불가능합니다. 따라서 명시적으로 엔드 포인트를 설정해 주어야 하는데, EKS에서는 VPC 통합 네트워킹을 통해 클러스터 외부와의 통신 및 접근을 간단하게 구현할 수 있습니다.

 

 

2.1 ELB 연결

 

이렇게 클러스터 외부에서 접속하는 경우 서비스를 사용해 엔드포인트를 생성하는데, 가장 대표적인 엔드포인트가 바로 로드 밸런서입니다.

EKS에서는 서비스 타입 중 Load Balancer를 설정하면 자동으로 AWS의 ELB가 생성됩니다. 사용자는 생성된 Load Balancer를 통해 컨테이너에 접근하게 됩니다.

 

EKS 구조의 이해

 

 

2.2 kubectl과 eksctl

 

EKS 사용을 위해 EKS 설치 및 운영 툴인 eksctl과 쿠버네티스 관리 툴인 kubectl을 인스턴스에 설치해 사용합니다.

 

 

kubectl = 쿠버네티스 클러스터를 조작하는 명령줄도구(CLI)

 

 

+) kubectl 명령어 모음_zip

 

[Kubernetes] kubectl 명령어 정리

Pods 생성과 실행 kubectl create deployment [POD_NAME] --image=[IMAGE] kubectl run [POD_NAME] --image=[IMAGE] Pods 삭제 kubectl delete pods [NAME] # run으로 만든 단일 Pod 삭제 kubectl delete deployment [NAME] # deployments 삭제 kubectl dele

logforlog.tistory.com

 

 

eksctl = EKS를 제어하기 위한 CLI로, kubectl과 유사한 명령어로 간단하고 쉽게 클러스터 생성 가능

 

*** 이 때 eksctl을 설치해 사용하려면 AWS CLI가 설치되어 있어야 하며 자격증명 구성이 되어 있어 인증이 가능해야 합니다.

 

2.3 IAM 인증

 

 

kubectl을 통해 클러스터를 조작하려면 해당 작업이 허가된 사용자에 의한 것임을 인증해야 합니다.

따라서 EKS를 사용하려면 IAM으로 사용자와 역할을 생성하는 사전 작업이 필요합니다.

 

📌 IAM 인증을 위한 사전 작업
       1. IAM 사용자 생성을 통해 kubectl 조작을 허가할 사용자 를 정하고,
       2. IAM 역할 생성을 통해 해당 사용자에게 구체적으로 어떤 조작을 허가할지에 관한 역할 을 생성

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함