본문
EKS 필수 애드온 설치를 자동화하는 EKS Blueprints
현대적인 EKS 구축의 핵심은 '인프라(Terraform)'와 '애플리케이션(GitOps)'의 역할을 분리하는 것입니다. 하지만 클러스터 생성 직후 마주하게 되는 로드밸런서 컨트롤러, Karpenter, ArgoCD 같은 필수 애드온 설치와 복잡한 IAM 권한(IRSA) 설정은 운영자에게 큰 부담이 됩니다.
이러한 'Day-2' 운영의 복잡성을 해결하기 위해 AWS가 공식 제공하는 오픈소스가 바로 EKS Blueprints for Terraform입니다. 검증된 모범 사례를 바탕으로 필수 애드온을 코드 한 줄로 구축할 수 있게 도와주는 이 강력한 프레임워크를 소개합니다.
1. EKS Blueprints for Terraform이란?

한 줄로 요약하면 "AWS 모범 사례(Best Practices)가 녹아있는, 배터리 포함형 EKS 테라폼 모듈 집합"입니다.
과거에는 Terraform으로 EKS를 구축할 때 다음과 같은 고통스러운 과정을 거쳤습니다.
- terraform-aws-modules/eks 모듈을 사용해 EKS 뼈대를 만듭니다. (여기까진 쉬움)
- 고통의 시작 (Day-2 Operations): 실제 운영을 하려면 필수 애드온들을 설치해야 합니다.
- AWS Load Balancer Controller (로드밸런서 연결용)
- Karpenter 또는 Cluster Autoscaler (노드 자동 확장용)
- External DNS (Route53 연동용)
- Metrics Server, Prometheus/Grafana (모니터링용)
- ArgoCD (GitOps용)
- 이것들을 설치하려면 Terraform의 helm provider나 kubernetes provider를 써야 하는데, 이 과정에서 IAM 권한(IRSA) 설정이 매우 복잡하고, 테라폼 코드가 스파게티처럼 꼬이기 쉽습니다.
EKS Blueprints는 이 "고통의 2번, 3번 과정"을 표준화하고 자동화해주는 도구입니다.
2. 핵심 구조와 작동 원리
EKS Blueprints는 우리가 앞서 논의한 "역할 분리" 패턴을 아주 잘 따르고 있으며, 이를 두 개의 계층으로 명확히 나눕니다.
계층 1: 인프라스트럭처 계층 (The Core)
- 기존에 널리 쓰이던 커뮤니티 표준 모듈인 terraform-aws-modules/eks를 래핑(Wrapping)해서 사용합니다.
- VPC, EKS Control Plane, Managed Node Group, Fargate Profile 등을 생성합니다.
- AWS가 권장하는 보안 설정이 기본으로 적용되어 있습니다.
계층 2: 애드온 계층 (The Add-ons)
- EKS 클러스터가 생성된 직후, 클러스터 내부에서 동작해야 하는 운영 도구들을 설치합니다.
- Terraform 코드로 enable_karpenter = true, enable_argocd = true와 같이 스위치만 켜면 복잡한 Helm 차트 설치와 IAM 역할 연결(IRSA)을 자동으로 처리해 줍니다.
[작동 흐름도]

3. 왜 이것을 써야 할까요?
1) "Opinionated" (검증된 모범 사례 내장) AWS 솔루션 아키텍트들이 수많은 고객 사례를 바탕으로 "이렇게 구성하는 것이 가장 안정적이고 보안상 좋다"고 결론 내린 기본값들이 세팅되어 있습니다. 처음부터 고민할 필요 없이 프로덕션 수준의 클러스터를 얻을 수 있습니다.
2) 복잡한 IAM(IRSA) 설정 자동화 EKS 운영에서 가장 까다로운 부분이 "K8s 파드(Pod)가 AWS 리소스(S3, ELB 등)를 제어할 권한을 주는 것(IRSA)"입니다. Blueprints는 애드온을 활성화할 때 필요한 IAM 역할과 정책을 자동으로 생성하고 연결해 줍니다.
3) GitOps 부트스트래핑 최적화 Blueprints의 가장 큰 목적 중 하나는 "ArgoCD를 빠르게 설치하여, 나머지 애플리케이션 관리를 ArgoCD에게 넘기는 것"입니다. 테라폼으로 ArgoCD만 딱 설치해 주고 손을 떼는 구조를 만들기에 최적화되어 있습니다.
4) 모듈화 및 확장성 모든 것을 다 쓸 필요가 없습니다. 필요한 애드온만 골라서 활성화할 수 있으며, 기업 내부의 커스텀 애드온을 추가하기에도 용이한 구조입니다.
4. 요약: Terraform과 K8s 생명주기 관점에서의 위치
- Terraform (with Blueprints): EKS 클러스터 생성 + 필수 운영 애드온(Karpenter, LBC, ArgoCD) 설치까지만 담당합니다.
- 분기점: ArgoCD가 설치되는 순간, 바톤 터치가 일어납니다.
- Kubernetes (GitOps): 이후의 실제 서비스 애플리케이션 배포는 Blueprints가 설치해 준 ArgoCD가 담당합니다.
결론: 지금 시점에 AWS에서 Terraform으로 새로운 EKS 프로젝트를 시작한다면, 바닥부터 직접 짜는 것보다 EKS Blueprints for Terraform을 활용하여 기반을 다지고, 그 위에 ArgoCD를 통한 GitOps 파이프라인을 구축하는 것이 가장 현대적이고 권장되는 접근 방식입니다.
댓글