コンテンツにスキップ

19-3 差分を見てから建てる(plan・apply)

Plan: Free費用: 0円Wrangler 4.126.0公式ドキュメント取得日 2026-08-27
先に差分を見て、納得してから建てるという二段構えです。

改装を頼むとき、いきなり壁を壊されては困ります。まず「何を足し、何を変え、何を壊すか」を紙で見せてもらい、納得してから始めてもらいます。

いま読んでいるこのサイト(Cloudflare Lab)の設定でも同じです。設計図を書き換えた結果、実際にどこがどう変わるのかを先に読めれば、うっかり消してしまう事故を防げます。

この節では、差分を見る、建てる、控えを持つ、履歴を残すという四つを順に見ます。

Learning goals

この節でできるようになること

  • 差分を見る命令と、その読み方を説明できる
  • 建てる命令が何を尋ねてくるかを言える
  • 控え(state)が何と何を結び付けているかを説明できる
  • 設計図を履歴として残すときに保存しない物を言える

大工が最初に出してくるのが工程の一覧です。足す物には足す印、壊す物には壊す印が付いています。

Cloudflare では、この一覧を出す命令が terraform plan です。公式の手引きでは、作られる部品には + create の印が付き、その部品の項目が一つずつ並びます。

Terminal window
terraform plan

一覧の最後には本数が出ます。公式の例では Plan: 1 to add, 0 to change, 0 to destroy. と表示され、足すのが 1 つ、変えるのと壊すのが 0 だと分かります。

足す・変える・壊すの本数が先に分かります。

紙には足す・変える・壊すの三つの数が並びます。壊す数が 0 でないときは、必ず中身を読んでから進みます。

つまり、terraform plan は工事前の見積書で、これ自体は何も変えません。

見積書に納得したら、口頭で「お願いします」と伝えます。伝えて初めて工事が始まります。

Cloudflare では、建てる命令が terraform apply です。公式の手引きによれば、この命令は同じ一覧をもう一度見せたうえで、実行してよいかを尋ねてきます。求められたら yes と打ちます。

Terminal window
terraform apply

終わると、公式の例では Apply complete! Resources: 1 added, 0 changed, 0 destroyed. と結果が出ます。公式は続けて、dig で電話帳の行を確かめ、terraform show で返ってきた内容を全部見る手順を案内しています。

同じ差分一覧を見せられ、承諾してから実際に変わります。

同じ紙をもう一度見せられ、承諾して初めて実物が変わります。二度確かめる形になっています。

つまり、terraform apply は見積書を再提示して承諾を取り、そのうえで建てる命令です。

大工は「どの図面のどの部品が、現場のどれに当たるか」を控えに書いています。控えが無ければ、図面と現場を突き合わせられません。

公式は、Terraform が二種類のファイルで管理範囲を把握していると説明しています。一つは設計図そのもの(.tf で終わるファイル)、もう一つが state file と呼ばれる控えです。控えは、設計図の中の呼び名を、Cloudflare 上にある実物と対応づけます。

既定では、控えは手元の terraform.tfstate というファイルです。作った物の番号はここに保存され、差分を見るときと建てるときに引き直されます。

控えが設計図と実物を結び付け、差分を出す基準になります。

設計図の左の呼び名と、実物の右の番号が、控えの上で線で結ばれています。この線が差分を出す基準です。

つまり、控えは設計図と実物をつなぐ対応表で、差分はこの表を基準に計算されます。

設計図が手元にしかなければ、消したら終わりです。図面を保管庫に入れておけば、いつ誰が何を変えたかが残り、前の版に戻せます。

公式の次の手引きでは、まず合鍵を設計図から外します。版 5 系の係は、CLOUDFLARE_API_TOKEN という環境変数から合鍵を自動で読むので、ファイルには書かずに済みます。番号などの値は terraform.tfvars に分けて置きます。

そのうえで、保管庫に入れない物を先に決めます。公式が挙げているのは次の四つです。

.terraform/
*.tfstate*
.terraform.lock.hcl
terraform.tfvars

公式は、こうして保管すると変更の追跡・第三者の確認・巻き戻しができるようになり、合鍵などの秘密は設計図と切り離されたままだと説明しています。

ここで紹介した流れが、いま読んでいる Cloudflare Lab でどう使われるかを見ます。

Cloudflare Lab では、設計図を書き換えるたびにまず差分を出し、壊す数が 0 であることを確かめてから建てる予定です。控えと合鍵は保管庫に入れず、設計図だけを残します。実測(最初の差分の本数、建てるのにかかった時間)は実装後に追記します。

  • terraform plan は足す・変える・壊すの本数を先に見せる見積書です。
  • terraform apply は同じ一覧を再提示し、承諾を取ってから建てます。
  • 控え(state)が設計図と実物を対応づけ、保管庫には設計図だけを残します。

この節で出てきた言葉を、つながりの順に並べると次のようになります。

図のラベル: 設計図を書き換える / 差分を見る terraform plan / 承諾して建てる terraform apply / 対応表に記録 terraform.tfstate / 合鍵は環境変数へ CLOUDFLARE_API_TOKEN / 設計図だけ保管する 追跡・確認・巻き戻し

次の節では、手で作ってしまった物を設計図に取り込みます。

この節のチェック

問 1terraform plan を実行すると何が起きますか?

問 2terraform apply を実行したとき、公式の手引きで求められる入力はどれですか?

問 3控え(state file)は何と何を対応づけますか?

問 4既定で控えに使われるファイルはどれですか?

問 5公式が保管庫に入れない物として挙げているファイルはどれですか?

最終更新日: