피드로 돌아가기
Stop Wrestling With Terraform State Imports at Scale
Dev.toDev.to
Infrastructure

Terraform 1.5+ Import Block 도입을 통한 IaC 마이그레이션 자동화 및 리스크 제거

Stop Wrestling With Terraform State Imports at Scale

pickuma2026년 5월 21일8intermediate

Context

수동 생성된 레거시 클라우드 리소스와 IaC 상태 간의 불일치로 인한 Drift 발생 및 리소스 파괴 위험 존재. 기존 terraform import CLI의 순차적 실행 구조와 즉각적인 State 변경 특성으로 인해 대규모 리소스 도입 시 운영 안정성 확보가 어려운 한계 노출.

Technical Solution

  • CLI 기반의 즉각적 State 변경 방식을 HCL 선언형 import 블록으로 전환하여 Plan/Apply 워크플로우 통합
  • terraform plan -generate-config-out 기능을 통한 리소스 속성 자동 추출 및 기초 HCL 코드 생성으로 수동 작성 공수 제거
  • Import 프로세스를 PR 기반의 코드 리뷰 체계에 편입시켜 State 변경 전 검증 단계 확보
  • OpenTofu의 for_each 지원 기능을 활용한 동일 타입 다수 리소스의 일괄 임포트 구조 설계
  • 생성된 HCL의 Computed 속성 제거 및 모듈 구조로의 Refactoring을 통한 코드 정제 과정 수행

1. Terraform

1.5+ 버전의 `import` 블록을 사용하여 State 변경 전 Diff 확인

2. `-generate-config-out`으로 생성된 코드를 시작점으로 삼되, 불필요한 속성 및 Computed 값 수동 정제

3. OpenTofu 도입 시 `for_each`를 통한 반복 리소스 임포트 최적화 검토

4. 임포트 완료 후 다음 Plan에서 Zero Diff 상태임을 확인하고 `import` 블록 제거

원문 읽기