본문 바로가기
삵

taint 대신 -replace로 리소스 교체하기

조회 0 · 댓글 0
고고구마엔사이다작성자2026년 10월 21일

EC2 인스턴스 OS 설정이 꼬였거나 원격 객체가 Terraform 통제 밖에서 망가졌을 때, 설정은 그대로 두고 리소스만 다시 만들고 싶을 때가 있습니다. 예전에는 terraform taint로 상태에 표시를 찍어 다음 apply에서 교체되게 했는데, 공식 문서에서 taint는 deprecated 상태이고 -replace 옵션을 쓰라고 안내합니다. taint는 중간 상태 스냅샷을 만들어야 하는데 -replace는 그 과정 없이 plan 단계에서 바로 교체 액션으로 처리됩니다.

plan으로 먼저 교체 대상을 확인하고 apply에 같은 주소를 넘기면 됩니다. 여러 개를 한 번에 교체하려면 옵션을 여러 번 적습니다.

terraform plan -replace="aws_instance.example"
terraform apply -replace="aws_instance.example"

원래 update나 no-op으로 처리됐을 리소스를 replace로 바꿔주는 동작입니다. 주의: 교체는 기존 객체를 파괴하고 다시 만드는 것이라, apply 전 plan 출력에서 destroy/create 대상이 맞는지 꼭 확인하고 실행하기 바랍니다. -destroy 옵션과는 같이 쓸 수 없습니다.

🔗 https://developer.hashicorp.com/terraform/cli/state/taint

🔗 https://developer.hashicorp.com/terraform/cli/commands/plan

로그인 후 답글을 남길 수 있습니다.