Terraform 도입 후, Stage/QA 환경 관리 복잡성을 해결하려 함
Module Code와 Environment Code 구조를 설계하고, tfstate 파일 관리의 중요성을 깨달음
순환 참조 에러 해결을 위해 리소스 간 의존성 이해 및 작업 순서도 정리
Terraform은 Module Code와 Environment Code로 구성되며, 각 환경별 설정을 분리한다. 구체적으로 Module Code는 재사용 가능한 리소스 정의를 담당하고, Environment Code는 환경별 변수 설정을 통해 인프라를 프로비저닝한다. 따라서 코드 재사용성과 환경 유연성을 동시에 확보할 수 있다.
tfstate 파일은 Terraform의 핵심으로, 실제 인프라 상태를 관리한다. 따라서 S3와 같은 안전한 저장소에 보관하고, Locking 기능을 통해 동시 접근을 제어해야 한다. 반면, tfstate 파일 손상은 로 이어질 수 있으므로, 백업 및 복구 전략을 마련해야 한다.
Terraform에서 순환 참조 에러는 리소스 간 의존성 문제로 발생한다. 구체적으로 Terraform plan 단계에서 의존성 관계를 정확히 파악하고, data source를 활용하여 값을 가져와야 한다. 따라서 의존성 그래프를 시각화하여 문제 해결에 도움을 받을 수 있다.