Categories: 미분류

AWS EKS로 쿠버네티스 클러스터 만들기 실전편

AWS EKS로 쿠버네티스 클러스터 만들기 실전편

쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션의 사실상 표준이며, AWS에서는 이를 손쉽게 운영할 수 있도록 EKS(Amazon Elastic Kubernetes Service)를 제공합니다. EKS는 AWS에서 제공하는 완전관리형 Kubernetes 서비스로, 제어 플레인(Control Plane)을 자동으로 구성하고 유지관리하며, 보안과 가용성을 AWS 수준으로 보장합니다. 이번 포스팅에서는 실무에서 바로 활용할 수 있도록 AWS EKS로 쿠버네티스 클러스터 만들기 실전편을 단계별로 소개합니다.


✅ EKS의 기본 구조 이해

EKS는 크게 두 가지 요소로 구성됩니다:

  • Control Plane (제어 플레인)
    • AWS가 관리 (Kubernetes API 서버, etcd 등)
    • 고가용성, 자동 패치, 모니터링 포함
  • Worker Nodes (작업 노드)
    • EC2 인스턴스 또는 Fargate 기반
    • 실제 컨테이너가 실행되는 곳

✅ 준비 사항

  • AWS 계정 및 관리자 권한
  • AWS CLI 설치 및 인증 완료
  • kubectl, eksctl 설치
  • VPC, 서브넷 구성 (eksctl이 자동 생성 가능)

✅ 1단계: 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 관리형 노드 그룹 사용
  • 실행 시간: 약 15분
  • 자동으로 VPC, IAM 역할, 노드 그룹까지 구성

성공 시 출력: kubectl을 통해 클러스터와 연결된 상태가 됨


✅ 2단계: kubectl로 클러스터 확인

kubectl get nodes
kubectl get all --all-namespaces
  • 노드 정보가 출력되면 클러스터가 정상적으로 구성된 것
  • kube-system 네임스페이스에 AWS 관련 파드(CoreDNS, VPC CNI 등) 확인 가능

✅ 3단계: IAM OIDC 및 서비스 계정 연결 (IRSA 설정)

EKS에서 Pod에 IAM 권한을 부여하려면, OIDC 공급자 설정 + IAM 역할과 서비스계정 연결이 필요합니다.

1. OIDC 공급자 연결

eksctl utils associate-iam-oidc-provider \
  --region ap-northeast-2 \
  --cluster my-eks-cluster \
  --approve

2. IAM 역할 생성 + 정책 연결

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에 접근 가능

✅ 4단계: 애플리케이션 배포 (nginx 예제)

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --type=LoadBalancer --port=80
kubectl get svc
  • EXTERNAL-IP 항목에 퍼블릭 주소 확인 가능
  • 웹 브라우저에서 IP 접속 시 nginx 페이지 출력

✅ 5단계: Helm으로 애플리케이션 설치

Helm은 Kubernetes의 패키지 관리자 역할을 합니다.

Helm 설치 후 repo 추가

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

WordPress 설치 예시

helm install my-blog bitnami/wordpress
kubectl get svc
  • my-blog 서비스의 EXTERNAL-IP 확인 → 브라우저 접속

✅ 6단계: 클러스터 삭제

eksctl delete cluster --name my-eks-cluster --region ap-northeast-2
  • 관련 자원(VPC, 노드, IAM 등) 모두 자동 삭제

✅ Q&A

Q. EC2 대신 Fargate로 노드 없이 배포도 가능한가요?
네, 가능합니다. EKS는 Fargate 프로필을 설정하면 Pod 단위로만 배포할 수 있습니다. 이 경우 노드를 직접 관리할 필요 없이 서버리스 방식으로 사용량에 따라 과금됩니다.

eksctl create fargateprofile \
  --cluster my-eks-cluster \
  --name fp-default \
  --namespace default

Q. 왜 EC2 대신 EKS를 사용하나요?

  • 쿠버네티스 클러스터 설치 및 운영 자동화
  • 자동 스케일링, 롤링 업데이트, 노드 교체 용이
  • IAM, VPC, CloudWatch 등 AWS 생태계 통합 가능
  • 보안 관리(컨트롤 플레인 암호화, 인증서, OIDC 등) 강화

Q. 비용은 어떻게 계산되나요?

  • 제어 플레인: EKS 클러스터당 $0.10/시간 과금
  • 노드 EC2 인스턴스: 인스턴스 사용 시간 기준 별도 과금
  • Fargate 사용 시 CPU/메모리 단위로 과금

비용 절감을 위한 팁:

  • 예약 인스턴스 또는 Savings Plan 활용
  • Auto Scaling으로 유휴 인스턴스 최소화
  • 클러스터 수명 주기 관리

✅ 요약 정리

항목내용
서비스AWS EKS (Elastic Kubernetes Service)
클러스터 구성eksctl 또는 AWS 콘솔
워커 노드EC2 또는 Fargate 선택
권한 제어IAM + OIDC (IRSA 방식)
애플리케이션 배포kubectl, Helm 활용
삭제eksctl delete cluster 명령

결론
AWS EKS로 쿠버네티스 클러스터 만들기 실전편을 통해 인프라를 코드로 구성하고, 컨테이너 기반 서비스 배포까지 한 번에 진행할 수 있습니다. 복잡한 운영 부담을 줄이고, 클라우드 네이티브 아키텍처로 전환하고자 한다면 EKS는 매우 강력한 도구입니다. 실무에서 자주 쓰는 자동화 및 보안 기능까지 함께 익히면 더욱 유용하게 활용할 수 있습니다.

huniverse4

Recent Posts

윈드라이브 동기화 용량 초과 시 대처법

윈드라이브(OneDrive)를 사용하다 보면 어느 순간 “동기화 중지됨”, “저장소 가득 참”이라는 메시지를 마주할 수 있습니다. 이는…

1개월 ago

윈드라이브 동기화 폴더 바꾸는 법 (드라이브 변경 포함)

윈드라이브(OneDrive)를 사용하다 보면, 기본으로 설정된 동기화 폴더 위치가 불편하거나 C드라이브 용량 부족 등으로 인해 다른…

1개월 ago

윈드라이브를 수동 동기화로 설정하는 방법

윈드라이브(OneDrive)는 기본적으로 자동으로 파일을 클라우드와 동기화하도록 설정되어 있습니다. 문서를 수정하거나 사진을 추가하면, 몇 초 내로…

1개월 ago

윈드라이브 동기화 안 될 때 체크할 설정 5가지

윈드라이브(OneDrive)는 자동으로 파일을 클라우드에 백업하고 여러 기기와 실시간으로 동기화해주는 매우 유용한 도구입니다. 하지만 간혹 “OneDrive…

1개월 ago

윈드라이브 동기화 상태 확인 및 오류 해결법

윈드라이브(OneDrive)는 실시간으로 파일을 클라우드에 저장하고 여러 기기에서 자동으로 동기화해주는 편리한 서비스지만, 때때로 동기화가 멈추거나 오류가…

1개월 ago

윈드라이브 특정 폴더만 동기화하는 방법

윈드라이브(OneDrive)는 기본적으로 전체 OneDrive 폴더를 PC와 동기화하지만, 모든 데이터를 동기화할 필요는 없습니다. 저장 공간을 절약하거나,…

1개월 ago