Terraform 도입, DevOps팀의 좌충우돌 삽질기

by DD
4년 전
조회수 2

Terraform 도입 후, Stage/QA 환경 관리 복잡성을 해결하려 함

Module CodeEnvironment Code 구조를 설계하고, tfstate 파일 관리의 중요성을 깨달음

순환 참조 에러 해결을 위해 리소스 간 의존성 이해 및 작업 순서도 정리

Terraform 구조 설계: Module vs Environment Code

Terraform은 Module CodeEnvironment Code로 구성되며, 각 환경별 설정을 분리한다. 구체적으로 Module Code는 재사용 가능한 리소스 정의를 담당하고, Environment Code는 환경별 변수 설정을 통해 인프라를 프로비저닝한다. 따라서 코드 재사용성환경 유연성을 동시에 확보할 수 있다.

tfstate 파일 관리의 중요성

tfstate 파일은 Terraform의 핵심으로, 실제 인프라 상태를 관리한다. 따라서 S3와 같은 안전한 저장소에 보관하고, Locking 기능을 통해 동시 접근을 제어해야 한다. 반면, tfstate 파일 손상은 인프라 붕괴로 이어질 수 있으므로, 백업 및 복구 전략을 마련해야 한다.

Terraform 순환 참조 문제 해결

Terraform에서 순환 참조 에러는 리소스 간 의존성 문제로 발생한다. 구체적으로 Terraform plan 단계에서 의존성 관계를 정확히 파악하고, data source를 활용하여 값을 가져와야 한다. 따라서 의존성 그래프를 시각화하여 문제 해결에 도움을 받을 수 있다.

DevOps팀의 Terraform 모험