Open1

Terraform の moved ブロックでコードをリファクタリングする

snakasnaka

moved ブロックについて

コードのリファクタリングで対象のリソース自身の構成自身は変更しないが、そのアドレスが変更になる場合があります。そうしたとき、通常は古いリソースの削除と新しいリソースの作成が発生する。

しかし、システムが稼働している状態でそのようなリソースの作り直しという作業はリスクが高く、通常はステート上での「リソースに対するアドレスの付け替え」で済ませることが多い。

v1.1 より前では terraform state mv コマンドで、アドレスの付け替えが行われていた。

v1.1 からコード上で moved ブロックによるリソースのアドレス移動が表現できるようになり、Terraform Cloud の Version Control Flow で管理しているリソースに対して変更を行いやすくなった。

https://developer.hashicorp.com/terraform/language/modules/develop/refactoring#removing-moved-blocks