Terraform 상태(State) 수동 업데이트 개요

Terraform 상태(State) 수동 업데이트 개요

이 문서는 Terraform에서 상태(state)를 수동으로 업데이트하는 방법에 대한 개요를 설명해요. 상태 파일은 인프라 관리를 위한 핵심 데이터이기 때문에, 수동으로 다룰 때는 각별히 주의해야 해요.

출처: 문서

본문

소개 (Introduction)

Terraform은 구성(configuration)의 리소스에 대응하는 실제 객체에 대한 정보를 상태 데이터(state data)로 저장해요. 이렇게 상태를 저장해 두면 리소스 선언이 변경되었을 때 Terraform이 기존 객체를 수정할 수 있어요.

Terraform은 terraform planterraform 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 문서