Terraform 상태(State) 수동 업데이트 개요
Terraform 상태(State) 수동 업데이트 개요
이 문서는 Terraform에서 상태(state)를 수동으로 업데이트하는 방법에 대한 개요를 설명해요. 상태 파일은 인프라 관리를 위한 핵심 데이터이기 때문에, 수동으로 다룰 때는 각별히 주의해야 해요.
출처: 문서
본문
소개 (Introduction)
Terraform은 구성(configuration)의 리소스에 대응하는 실제 객체에 대한 정보를 상태 데이터(state data)로 저장해요. 이렇게 상태를 저장해 두면 리소스 선언이 변경되었을 때 Terraform이 기존 객체를 수정할 수 있어요.
Terraform은 terraform plan과 terraform apply 명령을 실행할 때 상태를 자동으로 업데이트해요. 하지만 구성이나 실제로 관리되는 인프라에 변경이 생겼을 때 상태 데이터를 수동으로 조정해야 할 수도 있어요.
작업 흐름 (Workflow)
일반적인 terraform plan이나 terraform apply 작업 밖에서 상태 데이터를 수정하면, Terraform이 관리 중인 리소스를 추적하지 못하게 될 수 있어요. 이로 인해 비용이 증가하거나, 생산성이 떨어지거나, 보안이 취약해질 수 있어요. 상태를 수동으로 수정하기로 결정했다면 반드시 상태 데이터의 백업을 유지해야 해요.
Terraform CLI를 사용하면 다음과 같은 상태 상호작용을 수행할 수 있어요.
- 상태 조회 (Inspect state)
- 리소스 재생성 (Re-create resources)
- 리소스 이동 (Move resources)
- 기존 리소스 가져오기 (Import existing resources)
- 백업에서 상태 복구 (Recover state from backup)
이 작업들은 모두 상태 파일을 직접 편집하는 대신 공식 CLI 명령을 통해 안전하게 수행하는 방식이에요. 가능하면 직접 상태 데이터를 편집하기보다 이 명령들을 활용하는 걸 권장해요.
더 알아보기 (Learn more)
- terraform state list / state show 명령
- terraform state move 명령
- terraform state taint 명령
- terraform state inspect 문서