본문으로 건너뛰기
hannctl
PDF

case-studies aws-terraform README.md

AWS 멀티 리전 Terraform GitHub ↗

개인 프로젝트 · 2026.11 공개 PF-01 · AWS · IaC 역할: 설계 · 구현
  • Terraform
  • AWS
  • EKS
  • CloudWatch
  • AWS Chatbot
16
리전별 provider 별칭
24
공개한 Terraform 모듈
3
검증한 예제

리전별 locals 맵 하나를 고치면 16개 AWS 리전에 같은 인프라가 만들어지는 Terraform 모듈 모음입니다.

규모: 16개 리전 · 모듈 24종 · 예제 3개

개요

  • 문제

    같은 형태의 리소스를 여러 리전에 만들어야 했습니다. 리전이 늘수록 복사한 코드가 늘고 리전마다 설정이 달라질 위험이 커졌습니다.

  • 접근

    리전별 locals 맵에 원하는 상태를 선언하고 module과 for_each로 일괄 생성합니다. provider는 리전마다 별칭을 두고 같은 role을 assume합니다. for_each가 provider를 동적으로 고를 수 없어 리전별 module 블록은 반복합니다.

  • 결과

    변경은 맵 항목 하나로 끝나고, 키가 고정이라 순서를 바꿔도 리소스가 다시 생성되지 않습니다. 모듈 24종에 암호화, IMDSv2, 비공개 S3 같은 기본값을 넣었고 EKS와 알림 예제까지 3종을 공개했습니다.

  • 배운 점

    반복을 줄이는 것만큼 리소스를 가리키는 키를 고정하는 것이 중요했습니다. count는 목록의 위치로 리소스를 구분해 항목을 끼워 넣거나 순서를 바꾸면 뒤쪽 리소스가 다시 만들어질 수 있지만, for_each는 맵의 키로 구분하므로 순서와 상관없이 같은 리소스를 가리킵니다. provider를 for_each로 고를 수 없다는 Terraform의 제약은 억지로 감추지 않고 리전별 module 블록을 반복해 드러냈고, 그 편이 읽고 고치기 쉬웠습니다. 이후로는 같은 구조를 여러 곳에 만들 때 데이터(맵)와 코드(모듈)를 먼저 나누고, 변경이 맵 항목 하나로 끝나는지를 설계의 기준으로 삼습니다.

DESIGN.md — 설계 및 구현 →
notes.md — 관련 노트 →

© 2026 Kim JunHyun · Built with Astro · 이 사이트의 인프라도 코드로 관리합니다

↑↓ 이동 · Enter 열기 · Esc 닫기

테마 고르기

사원증을 누르면 그 테마로, 보던 내용과 같은 곳으로 이동합니다. 끌면 흔들리기만 합니다.

처음 화면으로 →