AWS Elastic Kubernetes Service (EKS)를 사용하여 Kubernetes 클러스터를 생성하고 워커 노드를 관리하기 위한 노드 그룹을 설정하는 과정을 알아보자. 과금 절감 및 효율적인 운영을 위한 설정 또한 알아본다
EKS 클러스터 생성
AWS 콘솔에서 EKS를 검색하여 서비스 화면으로 이동한다

클러스터 생성 시작
- 클러스터 탭에서 클러스터 생성 버튼을 클릭한다
- “사용자 지정 구성” 선택: 과금을 줄이고 환경에 맞게 세밀하게 설정하기 위해 “사용자 지정 구성”을 선택 한다. “빠른 구성”은 기본 스펙이 높아 예상치 못한 과금이 발생할 수 있다. “EKS 자율 모드 – 신규”는 사용하지 않는다

클러스터 구성: 이름
- 클러스터 이름을 적절하게 입력한다 (예: my-cluster)
클러스터 구성: IAM 역할
- EKS 클러스터가 EC2 인스턴스 및 기타 AWS 리소스에 접근할 수 있는 권한을 부여해야 한다.
신뢰할 수 있는 엔티티 선택 – “AWS 서비스”를 선택하고 “사용 사례”에서 “EKS – Cluster”를 선택한다

권한 추가 – AmazonEKSClusterPolicy가 자동으로 추가된다
- 자동으로 추가되는 권한으로 시간이 지나면서 AWS 정책 및 변화에 따라 변경될 수 있다

이름 지정, 검토 및 생성 – 역할 이름을 적절하게 지정하고 (예: my-cluster-role) 역할을 생성한다
- 나머지 설정은 기본값으로 유지하고 다음을 클릭한다

이후 클러스터 IAM 역할에 새로고침 아이콘을 클릭 한 다음 생성한 역할을 선택한다
클러스터 구성 – 네트워킹 지정
- VPC 및 서브넷은 기본값으로 유지한다. EKS가 자동으로 사용 가능한 서브넷 중 하나에 리소스를 생성한다
- 보안 그룹 역시 별도로 생성하지 않았다면 EKS가 자동으로 생성한다
- 모든 설정을 기본값으로 두고 다음을 클릭한다
클러스터 구성 – 관찰성 구성, 추가 기능 선택 및 설정 구성
- 이 단계들은 기본적으로 클러스터 운영에 필요한 다양한 프로그램 및 로깅 설정을 담당한다. 당장 세부적으로 알 필요는 없으므로 모든 설정을 기본값으로 유지하고 다음을 클릭한다
클러스터 구성 – 검토 및 생성
- 설정 내용을 최종 검토한 후 생성 버튼을 클릭한다. 클러스터 생성에는 10~20분 정도 소요된다
EKS 노드 그룹 생성 (워커 노드 관리)
- 클러스터 생성이 완료되면, 이제 워커 노드를 관리하는 “노드 그룹”을 생성할 차례이다
컴퓨팅 탭으로 이동

- 생성된 클러스터의 상세 정보 화면에서 컴퓨팅 탭을 클릭한다
- 노드 그룹 추가 버튼을 클릭하여 새로운 노드 그룹을 생성한다
노드 그룹 구성
이름 – 노드 그룹 이름을 적절하게 입력한다 (예: my-nodes)

노드 IAM 역할
- 워커 노드 (EC2 인스턴스)가 EKS 클러스터 및 기타 AWS 서비스에 접근할 수 있는 권한을 부여해야 한다
- 권장 역할 생성을 클릭하여 새로운 IAM 역할을 생성한다
신뢰할 수 있는 엔티티 선택 – “AWS 서비스”를 선택하고 “사용 사례”에서 “EC2″를 선택한다

권한 추가
- AmazonEC2ContainerRegistryReadOnly, AmazonEKS_CNI_Policy, AmazonEKSWorkerNodePolicy 세 가지 권한 정책이 자동으로 추가된다. 이 정책들은 워커 노드 운영에 필수적이다 – 자동으로 추가되는 정책은 변경될 수 있다

이름 지정, 검토 및 생성
- 역할 이름을 적절하게 지정하고 (예: my-nodes-role) 역할을 생성한다

역할 생성이 완료되면 노드 그룹 생성 화면으로 돌아와 새로 고침 버튼을 누르고 새로 생성된 역할을 선택한다
컴퓨팅 및 조정 구성 설정
- AMI 유형: 기본값 (Amazon Linux 2023)을 유지한다 – 기본값은 이후 변경 될 수 있다
- 용량 유형: “온디맨드”를 선택한다
- 인스턴스 유형: 워커 노드의 스펙을 결정한다. 실습 목적이라면 t3.small로 충분하다. 실제 운영 환경에서는 워크도르에 맞춰 충분한 검증을 통해 적절한 스펙을 선택해야 한다
- 디스크 크기: 기본값인 20 GiB를 유지한다

노드 그룹 조정 구성 – 워커 노드의 자동 스케일링을 설정한다
- 원하는 크기: 처음 시작할 노드 수 (예: 2)
- 최소 크기: 노드 그룹이 축소될 수 있는 최소 노드 수 (예: 2)
- 최대 크기: 노드 그룹이 확장될 수 있는 최대 노드 수 (예:2)
- 참고: 필요에 따라 최소 크기와 최대 크기를 조절하여 서버 부하에 따른 자동 증설 / 축소 범위를 설정할 수 있다.
예를 들어 최소 크기 : 1, 최대 크기: 3 으로 설정하면 부하에 따라 1대에서 3대까지 자동으로 노드 수가 조절된다

네트워크 지정 – 기본 서브넷을 선택하고 다음을 클릭한다
검토 및 생성 – 설정 내용을 최종 검토한 후 생성 버튼을 클릭한다. 노드 그룹 생성에는 약 5분 정도 소요된다
클러스터 및 노드 그룹 확인
클러스터 개요 탭에서는 클러스터의 역할, 생성 시간 등의 정보를 확인할 수 있다

리소스 탭에서는 현재 실행 중인 Pod (기본 시스템 Pod 포함), ReplicaSet 등의 정보를 볼 수 있지만, 주로 명령줄(CLI)을 통해 확인하게 된다

네트워킹 탭에서는 VPC, 서브넷, 보안 그룹 등 네트워크 관련 정보를 확인할 수 있다

컴퓨팅 탭에서 생성된 노드 그룹 및 워커 노드의 상태를 확인할 수 있으며, 필요 시 노드 그룹을 편집하여 노드 수를 조절할 수 있다

다음 단계
- EKS 클러스터와 워커 노드들이 성공적으로 생성되었다. 이 과정에서 직접 컨트롤 플레인을 생성하지 않았지만, 클러스터를 구성할 때 자동으로 생성되어 워커 노드를 통제하는 역할을 한다
- AWS CLI와 kubectl을 설치하여 EKS 클러스터를 관리하고 배포할 준비를 해야 한다 AWS CLI를 통해 AWS 리소스에 접근할 수 있도록 IAM 사용자 엑세스 키를 설정하는 과정이 필요하다