피드로 돌아가기
☁️ Importing existing S3 buckets into Terraform state made easy with terraform import existing s3 bucket
Dev.toDev.to
Infrastructure

S3 Bucket의 무중단 IaC 전환을 위한 Terraform State 동기화 전략

☁️ Importing existing S3 buckets into Terraform state made easy with terraform import existing s3 bucket

Python-T Point2026년 5월 25일7intermediate

Context

콘솔이나 CLI로 생성된 레거시 S3 Bucket을 Terraform 관리 체계로 통합하려는 필요성 발생. 단순 Import 시 실제 리소스 설정과 HCL 코드 간의 불일치로 인한 State Drift 및 예기치 못한 리소스 변경 위험 존재.

Technical Solution

  • AWS CLI를 통한 LocationConstraint, Versioning, Encryption 등 실제 리소스 메타데이터의 정밀 분석
  • 분석된 실제 값을 기반으로 HCL Resource Block을 선제적으로 정의하여 State와 Config 간의 정렬 상태 확보
  • terraform import 명령어를 통한 원격 리소스 ID와 로컬 State 파일의 매핑 및 메타데이터 기록
  • terraform plan 수행을 통한 실제 환경과 코드 정의 간의 차이점 식별 및 보정 작업 수행
  • Bucket Policy 및 IAM Role 등 종속 리소스를 별도 리소스로 분리 정의하여 정책 삭제 리스크 방지
  • Provider Alias 설정을 통한 Multi-Region 환경에서의 Bucket Location mismatch 해결

- Import 전 AWS CLI로 실제 설정값을 완전히 추출했는지 확인 - `aws_s3_bucket` 정의 후 반드시 `aws_s3_bucket_policy` 등 연관 리소스를 함께 정의했는지 검토 - Import 직후 `terraform plan`을 실행하여 변경 사항(Diff)이 0인지 검증 - Provider의 Region 설정이 S3 Bucket의 실제 LocationConstraint와 일치하는지 확인

원문 읽기