2 min read
Terraform 모듈 거버넌스
IaC 모듈 표준, 버전 전략, 정책 검사 자동화로 인프라 변경 리스크를 줄이는 방법

도입
Terraform이 커질수록 코드보다 모듈 거버넌스가 품질을 좌우한다. 팀별로 모듈을 자유롭게 복제하면 동일 리소스가 미묘하게 달라지고 보안/비용 정책이 일관되지 않게 된다. 이 글은 모듈 버전 관리, 정책 검사, 릴리즈 흐름을 포함한 거버넌스 체계를 다룬다.

문제 정의
IaC 품질 저하는 배포 실패보다 늦게 드러나지만 수정 비용이 매우 크다.
- 공통 모듈 버전이 고정되지 않아 환경별 동작이 달라진다.
- 리소스 태깅 규칙이 없어 비용 책임 추적이 어렵다.
- 정책 위반 코드가 리뷰를 통과해 보안 이슈가 누적된다.
거버넌스의 핵심은 제한이 아니라 안전한 재사용이다. 표준 모듈을 강제하고 예외를 승인 프로세스로 관리해야 한다.
핵심 개념
| 관점 | 설계 기준 | 검증 포인트 |
|---|---|---|
| 모듈 표준 | 중앙 레지스트리 + semver | 호환성 깨짐 건수 |
| 정책 검사 | OPA/Tfsec 자동 게이트 | 정책 위반 PR 비율 |
| 태깅 | cost center 필수 | 미태깅 리소스 비율 |
| 릴리즈 | 변경 로그 + 롤백 문서 | 모듈 배포 실패율 |
모듈 수가 늘수록 문서보다 자동화가 효과적이다. CI에서 정책과 버전 규칙을 강제하면 사람 의존도를 줄일 수 있다.
코드 예시 1: 모듈 버전 고정
module "vpc" {
source = "app.terraform.io/8space/network/aws"
version = "2.4.1"
project = "blog-platform"
environment = var.environment
cidr_block = var.vpc_cidr
enable_flowlog = true
}
코드 예시 2: 정책 검사 파이프라인
name: terraform-guard
on: [pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: terraform fmt -check -recursive
- run: terraform init -backend=false
- run: terraform validate
- run: tfsec .
- run: conftest test ./plan.json
아키텍처 흐름
Mermaid diagram rendering...
트레이드오프
- 정책 게이트를 강화하면 배포 속도는 느려지지만 사고 확률을 낮출 수 있다.
- 중앙 모듈 관리로 일관성은 오르지만 팀별 실험 자유도가 줄어든다.
- 버전 고정을 엄격히 하면 안정적이지만 업그레이드 작업이 주기적으로 필요하다.
정리
Terraform 거버넌스는 표준과 예외를 동시에 관리하는 체계다. 모듈 버전, 정책 검사, 태깅 규칙을 자동화하면 인프라 품질을 지속적으로 유지할 수 있다.
이미지 출처
- Cover: source link
- License: Public domain / Author: NASA Earth Observatory
- Note: Wikimedia Commons 무료 라이선스 이미지를 다운로드 후 1600px 기준 JPG로 최적화했습니다.