피드로 돌아가기
Refactoring Terraform: From One File to Modules
Dev.toDev.to
Infrastructure

단일 main.tf의 모듈화를 통한 인프라 오케스트레이션 최적화

Refactoring Terraform: From One File to Modules

Lalit Bagga2026년 6월 8일6intermediate

Context

전체 리소스를 하나의 평면 파일에 정의한 단일 구조의 main.tf 사용으로 인한 유지보수 및 협업 효율 저하. 리소스 간 의존성 파악이 어렵고 구성 요소가 혼재되어 확장성이 결여된 아키텍처 상태.

Technical Solution

  • Networking, Security, Compute, Database로 관심사를 분리한 폴더 기반 Module 구조 설계
  • Module 간 직접 참조를 금지하고 Output과 Variable을 통한 느슨한 결합의 데이터 전달 체계 구축
  • Root main.tf를 개별 리소스 정의 공간이 아닌 각 모듈을 연결하는 Orchestrator로 역할 전환
  • 리소스 간 의존 관계(Networking → Security → Compute/Database)를 정의하여 Terraform의 자동 생성 순서 최적화
  • State 파일 내 리소스 주소 변경으로 인한 인프라 재생성 위험을 terraform state mv 명령어로 해결

1. 리소스 간 직접 참조 대신 Module Output → Root Variable → Module Input 흐름을 적용했는가

2. Root main.tf에 리소스 블록이 남아있어 모듈화 기회를 놓치고 있지는 않은가

3. 모듈 리팩토링 시 terraform state mv를 통해 기존 인프라의 파괴 없이 주소 이전 계획을 세웠는가

4. 의존성 최하단에 위치한 Networking 모듈부터 단계적으로 마이그레이션을 진행했는가

원문 읽기