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는 매우 강력한 도구입니다. 실무에서 자주 쓰는 자동화 및 보안 기능까지 함께 익히면 더욱 유용하게 활용할 수 있습니다.
윈드라이브(OneDrive)를 사용하다 보면 어느 순간 “동기화 중지됨”, “저장소 가득 참”이라는 메시지를 마주할 수 있습니다. 이는…
윈드라이브(OneDrive)를 사용하다 보면, 기본으로 설정된 동기화 폴더 위치가 불편하거나 C드라이브 용량 부족 등으로 인해 다른…
윈드라이브(OneDrive)는 기본적으로 자동으로 파일을 클라우드와 동기화하도록 설정되어 있습니다. 문서를 수정하거나 사진을 추가하면, 몇 초 내로…
윈드라이브(OneDrive)는 자동으로 파일을 클라우드에 백업하고 여러 기기와 실시간으로 동기화해주는 매우 유용한 도구입니다. 하지만 간혹 “OneDrive…
윈드라이브(OneDrive)는 실시간으로 파일을 클라우드에 저장하고 여러 기기에서 자동으로 동기화해주는 편리한 서비스지만, 때때로 동기화가 멈추거나 오류가…
윈드라이브(OneDrive)는 기본적으로 전체 OneDrive 폴더를 PC와 동기화하지만, 모든 데이터를 동기화할 필요는 없습니다. 저장 공간을 절약하거나,…