
DevOps팀의 Terraform 모험
두줄요약
환경 증가와 반복 작업 문제를 해결하기 위해 Terraform 기반 IaC를 도입한 경험을 공유했습니다. tfstate, 리소스 의존성, 수동 변경 동기화와 협업 검증의 중요성을 설명합니다.
문제 상황
- 서비스·Stage·QA 환경 증가에 따른 인프라 구성 복잡도와 반복 작업, 수동 실수 증가
- Terraform 경험과 협업 기반 부족 상태에서 IaC 도입 및 운영 환경 확대 계획
구조와 흐름
- 환경별 Environment Code와 AWS 서비스별 재사용 Module Code를 분리한 large 구조
- S3 원격 저장소 기반 환경별 tfstate 관리와 GitHub PR 중심 코드 관리
- locals·merge·format 함수로 태그 반복 축소, dynamic block과 list(object)로 EBS 매핑 구성
주의할 점
- tfstate를 실제 리소스·코드 매핑, 의존성 메타데이터, 캐시, 동기화의 핵심으로 이해할 필요
- 수동 변경과 코드 관리 대상의 명확한 분리, tfstate 불일치에 따른 교체·재생성 위험 관리
- 리소스 생성 순서와 순환 참조 방지, PR 단계 terraform plan 검증 필요
적용해볼 점
- IAM은 수동 관리, Security Group은 전역 단위 코드화 같은 팀 합의 기반 관리 경계 설정
- Terraform 교육·페어 프로그래밍·프로세스 정비와 Environment Code 분리·리팩토링 지속



