[IaC] 테라폼을 활용한 EKS 구축

정성헌·2026년 3월 31일
post-thumbnail
  1. 왜 테라폼을 사용해야 할까요?

실무에서 테라폼을 도입하면 얻을 수 있는 구체적인 장점들은 다음과 같습니다:
장애 방지 및 신속한 복구: 수동 작업 시 발생할 수 있는 실수를 방지하고, 장애 발생 시 코드를 통해 빠르게 동일한 환경을 재구축할 수 있습니다.
업무 효율성 (칼퇴 보장): 수동으로 일일이 생성하던 자원들을 코드로 단시간에 생성할 수 있어 업무 시간을 획기적으로 줄여줍니다.
컴플라이언스 대응: ISMS-P(개인정보보호법) 심사나 전자금융거래법 감사 시, 콘솔을 일일이 보여주는 대신 코드를 통해 인프라 현황을 명확하게 증명할 수 있습니다.
멀티 클라우드 및 종속성 탈피: 특정 CSP(AWS, Google Cloud, Naver 등)에 종속되지 않고 동일한 문법(HCL)으로 여러 클라우드를 관리할 수 있습니다
. 예를 들어 게임사에서 해외 데이터센터 응답 속도 최적화를 위해 AWS와 GCP를 병행 운영할 때 매우 유용합니다
.
불변 인프라(Immutable Infrastructure): 서버를 수정하는 대신 기존 것을 삭제하고 새로 생성하는 클라우드 네이티브 방식에 최적화되어 있습니다
.
잠깐! 용어 정리
CSP (Cloud Service Provider): 인프라를 제공하는 업체 (AWS, Google, Naver 등)
MSP (Managed Service Provider): 기업의 클라우드 설계를 대행하고 운영/관리해주는 전문 업체 (메가존, 베스핀글로벌, 가비아 등)


  1. 테라폼의 핵심 개념
    테라폼을 다루기 위해 반드시 알아야 할 5가지 개념입니다
    :
    Provider: 테라폼과 외부 서비스(AWS, GCP 등)를 연결하는 플러그인입니다.
    Resource: 실제 생성할 인프라 자원 (EC2, S3, VPC 등)을 정의합니다.
    State (.tfstate): 현재 인프라의 상태를 저장하는 파일입니다. 팀 협업 시에는 S3 같은 원격 저장소에 저장하고 Locking(DynamoDB 활용)을 하는 것이 원칙입니다.
    Module: 리소스들을 그룹화하여 재사용 가능하게 만든 패키지입니다.
    HCL (HashiCorp Configuration Language): 테라폼 전용 언어로 가독성이 매우 뛰어납니다.

  1. 테라폼 동작 프로세스
    테라폼은 보통 다음의 4단계 흐름으로 작업합니다
    :
    명령어
    설명
    terraform init
    작업 디렉토리 초기화 및 Provider 플러그인 다운로드
    terraform plan
    생성/수정/삭제될 리소스 예측 및 검토 (실제 반영 X)
    terraform apply
    실제 인프라 배포 (실행 시 yes 입력 필요)
    terraform destroy
    생성된 모든 리소스 삭제
    Tip: -auto-approve 옵션을 사용하면 yes 입력 없이 바로 실행이 가능합니다.

  1. 실전! 테라폼으로 EKS(Elastic Kubernetes Service) 구축하기
    비용 절감 꿀팁
    EKS Managed Node Group 설정 시 비용을 아끼고 싶다면 capacity_type을 ON_DEMAND가 아닌 SPOT으로 설정하세요
    .
    주요 구축 흐름
    VPC 생성: EKS를 위해 최소 2개의 가용 영역(AZ)과 Public/Private 서브넷을 구성합니다.
    EKS 클러스터 생성: 공식 EKS 모듈을 사용하여 Control Plane과 노드 그룹을 설정합니다.
    접속 설정: 인프라 생성 후 내 PC에서 클러스터를 확인하려면 kubeconfig 업데이트가 필요합니다.

  1. 운영 중 발생하는 문제 및 꿀팁 (Troubleshooting)
    Q1. HPA 설정 후 서버 부하를 주었는데 파드가 늘어나지 않아요.
    원인: Metrics Server가 설치되어 있는지 확인하세요.
    작동 원리: HPA 컨트롤러는 15초마다 메트릭 서버를 체크하여 목표 사용량과 대조 후 Pod 개수를 조절합니다.
    Q2. 노드 자리가 부족해서 노드를 늘려야 해요.
    Cluster Autoscaling이 필요하며, 이때 ASG(Auto Scaling Group) 이름과 클러스터 이름 두 가지 정보가 필수입니다.
    Q3. 재설치 시 CloudWatch Logs 그룹이 이미 존재한다는 오류가 떠요.
    이 경우 다음 순서로 조치하세요
    :
    콘솔에서 EKS 삭제
    CloudWatch Logs 그룹 수동 삭제
    로그 그룹 재사용 선언 후 재설치

  1. 마치며
    테라폼은 이제 클라우드 엔지니어에게 선택이 아닌 필수 도구입니다. 더 많은 프로바이더 사용 예시는 Terraform Registry에서 직접 확인하고 적용해 보시기 바랍니다.

#Terraform #IaC #AWS #EKS #CloudNative #Kubernetes #멀티클라우드

profile
develop myself

0개의 댓글