AWS EKS로 쿠버네티스 클러스터 만들기 실전편
쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션의 사실상 표준이며, AWS에서는 이를 손쉽게 운영할 수 있도록 EKS(Amazon Elastic Kubernetes Service)를 제공합니다. EKS는 AWS에서 제공하는 완전관리형 Kubernetes 서비스로, 제어 플레인(Control Plane)을 자동으로 구성하고 유지관리하며, 보안과 가용성을 AWS 수준으로 보장합니다. 이번 포스팅에서는 실무에서 바로 활용할 수 있도록 AWS EKS로 쿠버네티스 클러스터 만들기 실전편을 단계별로 소개합니다.
EKS는 크게 두 가지 요소로 구성됩니다:
kubectl, eksctl 설치eksctl로 클러스터 생성하기 (가장 쉬운 방법)**eksctl**은 EKS 클러스터를 코드 한 줄로 생성할 수 있는 CLI 도구입니다.
eksctl create cluster \
--name my-eks-cluster \
--region ap-northeast-2 \
--nodegroup-name standard-workers \
--node-type t3.medium \
--nodes 2 \
--nodes-min 2 \
--nodes-max 4 \
--managed
--managed: AWS 관리형 노드 그룹 사용성공 시 출력: kubectl을 통해 클러스터와 연결된 상태가 됨
kubectl로 클러스터 확인kubectl get nodes
kubectl get all --all-namespaces
kube-system 네임스페이스에 AWS 관련 파드(CoreDNS, VPC CNI 등) 확인 가능EKS에서 Pod에 IAM 권한을 부여하려면, OIDC 공급자 설정 + IAM 역할과 서비스계정 연결이 필요합니다.
eksctl utils associate-iam-oidc-provider \
--region ap-northeast-2 \
--cluster my-eks-cluster \
--approve
eksctl create iamserviceaccount \
--name s3-reader \
--namespace default \
--cluster my-eks-cluster \
--attach-policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess \
--approve \
--override-existing-serviceaccounts
s3-reader 서비스계정을 사용하는 Pod는 S3에 접근 가능kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --type=LoadBalancer --port=80
kubectl get svc
EXTERNAL-IP 항목에 퍼블릭 주소 확인 가능Helm은 Kubernetes의 패키지 관리자 역할을 합니다.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install my-blog bitnami/wordpress
kubectl get svc
my-blog 서비스의 EXTERNAL-IP 확인 → 브라우저 접속eksctl delete cluster --name my-eks-cluster --region ap-northeast-2
Q. EC2 대신 Fargate로 노드 없이 배포도 가능한가요?
네, 가능합니다. EKS는 Fargate 프로필을 설정하면 Pod 단위로만 배포할 수 있습니다. 이 경우 노드를 직접 관리할 필요 없이 서버리스 방식으로 사용량에 따라 과금됩니다.
eksctl create fargateprofile \
--cluster my-eks-cluster \
--name fp-default \
--namespace default
Q. 왜 EC2 대신 EKS를 사용하나요?
Q. 비용은 어떻게 계산되나요?
비용 절감을 위한 팁:
| 항목 | 내용 |
|---|---|
| 서비스 | AWS EKS (Elastic Kubernetes Service) |
| 클러스터 구성 | eksctl 또는 AWS 콘솔 |
| 워커 노드 | EC2 또는 Fargate 선택 |
| 권한 제어 | IAM + OIDC (IRSA 방식) |
| 애플리케이션 배포 | kubectl, Helm 활용 |
| 삭제 | eksctl delete cluster 명령 |
결론
AWS EKS로 쿠버네티스 클러스터 만들기 실전편을 통해 인프라를 코드로 구성하고, 컨테이너 기반 서비스 배포까지 한 번에 진행할 수 있습니다. 복잡한 운영 부담을 줄이고, 클라우드 네이티브 아키텍처로 전환하고자 한다면 EKS는 매우 강력한 도구입니다. 실무에서 자주 쓰는 자동화 및 보안 기능까지 함께 익히면 더욱 유용하게 활용할 수 있습니다.
자동차를 사랑하는 많은 운전자들이 한 번쯤 고민해본 문제가 바로 연료첨가제입니다. 주유소에서, 온라인 쇼핑몰에서, 자동차용품점에서 "엔진을…
다이어트 열풍과 함께 '제로 칼로리'를 내세운 탄산음료가 폭발적으로 인기를 끌고 있습니다. 하지만 "제로 탄산음료는 많이…
최신 아이폰 14 프로맥스는 강력한 성능과 함께 뛰어난 배터리 용량을 자랑하지만, 올바른 사용법을 모르면 배터리…
윈드라이브(OneDrive)를 사용하다 보면 어느 순간 “동기화 중지됨”, “저장소 가득 참”이라는 메시지를 마주할 수 있습니다. 이는…