피드로 돌아가기
Dev.toInfrastructure
원문 읽기
S3 Bucket의 무중단 IaC 전환을 위한 Terraform State 동기화 전략
☁️ Importing existing S3 buckets into Terraform state made easy with terraform import existing s3 bucket
AI 요약
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와 일치하는지 확인