목록 보기
DevOps팀의 Terraform 모험
데브옵스

DevOps팀의 Terraform 모험

마켓컬리
마켓컬리
2021년 8월 25일

두줄요약

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 검증 환경 마련
  • 팀 교육, 페어 프로그래밍, 환경 생성 순서 문서화를 통한 협업 역량 보완

다음 읽기

#Terraform 주제를 이어서 읽기

DevOps팀의 Terraform 모험

환경 증가와 반복 작업 문제를 해결하기 위해 Terraform 기반 IaC를 도입한 경험을 공유했습니다. tfstate, 리소스 의존성, 수동 변경 동기화와 협업 검증의 중요성을 설명합니다.

마켓컬리
마켓컬리
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...