피드로 돌아가기
Dev.toInfrastructure
원문 읽기
분산된 Terraform 모듈 의존성 가시화 통한 Breaking Change 리스크 제로화
How to Find Every Consumer of Your Terraform Module
AI 요약
Context
다양한 소스 경로(Git, Registry, Local Path)를 통해 소비되는 Shared Terraform Module의 버전 관리 부재로 인한 배포 리스크 발생. 특정 플랫폼(HCP, Spacelift 등)에 종속된 도구들은 전사 레포지토리의 통합 뷰를 제공하지 못하는 가시성 파편화 문제 직면.
Technical Solution
- 전사 레포지토리 전수 스캔을 통한 특정 플랫폼 종속성 제거 및 데이터 수집 기반 구축
- Git URL, Registry, Local Path 등 5가지 서로 다른 모듈 소스 타입을 단일 식별자로 정규화하는 파싱 로직 설계
- Git Tag 및 Registry Version 속성을 추출하여 소비자별 버전 핀닝 상태를 정밀하게 추적하는 매핑 구조 도입
- 직접 의존성뿐만 아니라 전이적 의존성(Transitive Dependencies)을 해석하여 변경 사항의 Blast Radius를 산출하는 그래프 모델링
- 정적 분석 기반의 지속적 스캔 체계를 구축하여 Tribal Knowledge가 아닌 데이터 기반의 의존성 쿼리 환경 구현
실천 포인트
- 모듈 변경 전 전사 레포지토리의 .tf 파일 내 source 정의 패턴 전수 조사 - 단순 Grep 방식의 한계를 인지하고 Registry 소스와 Git 소스의 동일 모듈 여부를 판단하는 정규화 로직 검토 - Breaking Change 도입 전 직접/간접 소비자 리스트와 핀닝 버전을 명시한 영향도 분석 보고서 작성 - 특정 오케스트레이션 도구의 가시성에 의존하지 않는 독립적인 의존성 그래프 구축 방안 고려