TL;DR

  • OpenTofu v1.12.0lifecycle.prevent_destroy를 동적으로 설정할 수 있게 해 프로덕션 인스턴스에는 삭제 방지를 적용하고 개발·스테이징 인스턴스는 자유롭게 해체할 수 있게 함.
  • 이전에는 prevent_destroy가 정적 값이어야 해 같은 루트 모듈의 환경별로 삭제 방지를 다르게 설정하기 어려웠음.
  • 이제 변수값에 따라 삭제 방지를 설정할 수 있으며, 프로덕션에서는 활성화하고 개발 및 임시 인스턴스에서는 기본적으로 비활성화할 수 있음.
  • 새로운 destroy = false 수명 주기 옵션은 실제 인프라를 삭제하지 않고 리소스를 상태에서 제거하는 기능임.
  • 두 기능 모두 데이터베이스를 코드형 인프라(IaC)로 관리할 때 리소스 삭제에 대한 우려를 줄이는 안전 장치임.

동적 `prevent_destroy` 기능

  • 5월에 출시된 OpenTofu v1.12.0의 주요 기능으로 동적 lifecycle.prevent_destroy를 소개함.
  • 이전에는 prevent_destroy에 정적 값만 지정할 수 있어 같은 루트 모듈을 사용하는 프로덕션 인스턴스에는 삭제 방지를 적용하고 개발·스테이징 인스턴스에는 적용하지 않으려면 추가 작업이 필요했음.
  • 이제 prevent_destroy 값을 변수로 설정할 수 있어 다중 인스턴스 루트 모듈에서 인스턴스별로 삭제 방지 여부를 다르게 지정할 수 있음.
  • 프로덕션 루트 모듈 인스턴스는 prevent_destroy_enabledtrue로 설정하고, 개발 및 임시 인스턴스는 기본값을 false로 두어 별도 개입 없이 해체할 수 있음.

데이터베이스 관리와 안전성

  • 이 기능은 안전한 인프라 관리 절차를 더 쉽게 적용할 수 있게 하는 사용자 경험(UX) 개선임.
  • 대량의 데이터베이스를 관리하는 대형 고객이 IaC를 통한 데이터베이스 관리에서 리소스 삭제를 우려하는 사례를 봐 왔으며, 해당 기능이 우려를 덜고 도입을 촉진하는 데 조금이나마 도움이 될 것으로 봄.
  • 함께 살펴볼 기능으로 새로운 destroy = false 수명 주기 옵션이 있으며, 실제 인프라를 삭제하지 않고 리소스를 상태에서 제거함.
  • 이 옵션도 운영 이후 단계(day-2 operations)에서 활용할 수 있는 안전 장치임.

릴리스에 대한 평가

  • OpenTofu 팀이 계속 기능을 출시하고 있어 반가움.
  • 게시 시점은 2026년 9월 22일이며, 본문에는 OpenTofu v1.12.0이 5월에 출시됐다고 명시됨.