
DevOps팀의 Terraform 모험
두줄요약
Stage·QA 환경의 반복적인 인프라 작업을 줄이기 위해 Terraform을 도입한 과정을 공유했습니다. tfstate 관리와 리소스 의존성, 협업 검증의 중요성을 시행착오로 정리했습니다.
문제 상황
- 서비스 증가에 따른 Stage·QA·성능 테스트 인프라와 CI/CD 구성의 반복 작업·관리 복잡도 증가
- 수동 작업의 실수 가능성 및 환경별 인프라 형상관리 필요성
구조와 흐름
- AWS 계정과 환경별 코드를
env에, 재사용 가능한 서비스별 모듈을modules에 분리한 large 방식 - Module Code의 리소스 정의와 Environment Code의 설정값·변수 주입 구조
- S3 기반 환경별
tfstate저장 및 코드-실제 리소스 동기화 관리
주의할 점
tfstate를 단순 저장 파일이 아닌 리소스 매핑·메타데이터·캐시·동기화 기준으로 인식할 필요- 리소스 의존성 미이해에 따른 순환 참조와
forces replacement위험 - 수동 변경 이후 코드·상태 불일치, 대체 옵션 적용에 따른 장애 가능성
적용해볼 점
locals,merge,format, dynamic block과lookup활용을 통한 반복 변수·구성 블록 축소- 코드화 대상과 수동 관리 대상을 구분하고, PR 단계의
terraform plan검증 환경 마련 - 팀 교육, 페어 프로그래밍, 환경 생성 순서 문서화를 통한 협업 역량 보완



