Terraform の個人的なまとめ
Published: 2023/3/26
Terraform は、リソースを宣言的に管理するツール。
module について
プログラミング言語でいうところの、関数に相当する。
パラメータを導入して共通化させたリソース宣言が module である。
実際のリソース宣言ファイルからは、 module
宣言を行って利用する。
バージョン
モジュールは、プログラミング言語におけるパッケージと同じように、外部に公開できる。
外部公開なので、バージョンを指定できるようになっている。
module
リソースで version
フィールドにてその値を指定する。
provider について
独自の resource 定義を行うプラグイン的な機構。 resource を create / update / delete する方法を提供(provide)する。
state について
terraform は apply の度に、リソース宣言を適用した結果の状態について、指定された場所に保存する。 (指定がない場合は、ローカルになる。) これを state と呼ぶ。
すでに state があるプロジェクトにおいて、再度 plan ないし apply していく際には、 terraform は裏でその state に保存されたリソースの状態と、実際の resource の状態を API を経由して確認し、もし差分があれば、それをメモリ内部で反映した上で、 plan ないし apply の処理を行っている。
この、メモリ内部での state の最新状態への更新処理を、 terraform 的には refresh と言う。
-refresh-only
plan ないし apply に -refresh-only
のオプションを付け加えると、 terraform は state ファイルの更新のみを行う。
具体的には、 terraform plan -refresh-only
にて state の差分の表示を行い、 terraform apply -refresh-only
にて state 状態の保存処理を行う。
Use Refresh-Only Mode to Sync Terraform State | Terraform | HashiCorp Developer
Use refresh-only plans and applies to update Terraform state to match real-world infrastructure. Understand the implicit refresh behavior in Terraform plan and apply operations.
developer.hashicorp.com

Tags: terraform
関連記事
Terraform のバージョニングまわり
2023/3/30