Terraform Refactoring リファクタリング

moved blocks は1.1以降で利用可能

Note: Explicit refactoring declarations with moved blocks is available in Terraform v1.1 and later. For earlier Terraform versions or for refactoring actions too complex to express as moved blocks, you can use the terraform state mv CLI command as a separate step.

https://www.terraform.io/language/modules/develop/refactoring

moved blocks

実際にmoved blocksを使ってrefacotringを行う際には以下のような手順になるでしょう

Terraformコードのrefactoringを行う
変更したobjectについてはmoved blocksでstateの移行を記述する
Terraform Planを実行して変更後のコードに差分がないことを確認する
もしPlanで変更に起因する差分が会った場合は2と3を繰り返す
Terraform Applyして実際にstateへ変更を反映する

Refactoring Terraform with moved blocks | Money Forward Money Forward Engineers' Blog 2021

moduleでもok

moved {
  from = module.a
  to   = module.b
}