19-3 差分を見てから建てる(plan・apply)
改装を頼むとき、いきなり壁を壊されては困ります。まず「何を足し、何を変え、何を壊すか」を紙で見せてもらい、納得してから始めてもらいます。
いま読んでいるこのサイト(Cloudflare Lab)の設定でも同じです。設計図を書き換えた結果、実際にどこがどう変わるのかを先に読めれば、うっかり消してしまう事故を防げます。
この節では、差分を見る、建てる、控えを持つ、履歴を残すという四つを順に見ます。
Learning goals
この節でできるようになること
- 差分を見る命令と、その読み方を説明できる
- 建てる命令が何を尋ねてくるかを言える
- 控え(state)が何と何を結び付けているかを説明できる
- 設計図を履歴として残すときに保存しない物を言える
1. 工事前に差分を見る
Section titled “1. 工事前に差分を見る”大工が最初に出してくるのが工程の一覧です。足す物には足す印、壊す物には壊す印が付いています。
Cloudflare では、この一覧を出す命令が terraform plan です。公式の手引きでは、作られる部品には + create の印が付き、その部品の項目が一つずつ並びます。
terraform plan一覧の最後には本数が出ます。公式の例では Plan: 1 to add, 0 to change, 0 to destroy. と表示され、足すのが 1 つ、変えるのと壊すのが 0 だと分かります。
紙には足す・変える・壊すの三つの数が並びます。壊す数が 0 でないときは、必ず中身を読んでから進みます。
つまり、terraform plan は工事前の見積書で、これ自体は何も変えません。
2. 承諾してから建てる
Section titled “2. 承諾してから建てる”見積書に納得したら、口頭で「お願いします」と伝えます。伝えて初めて工事が始まります。
Cloudflare では、建てる命令が terraform apply です。公式の手引きによれば、この命令は同じ一覧をもう一度見せたうえで、実行してよいかを尋ねてきます。求められたら yes と打ちます。
terraform apply終わると、公式の例では Apply complete! Resources: 1 added, 0 changed, 0 destroyed. と結果が出ます。公式は続けて、dig で電話帳の行を確かめ、terraform show で返ってきた内容を全部見る手順を案内しています。
同じ紙をもう一度見せられ、承諾して初めて実物が変わります。二度確かめる形になっています。
つまり、terraform apply は見積書を再提示して承諾を取り、そのうえで建てる命令です。
3. 控えを持つ
Section titled “3. 控えを持つ”大工は「どの図面のどの部品が、現場のどれに当たるか」を控えに書いています。控えが無ければ、図面と現場を突き合わせられません。
公式は、Terraform が二種類のファイルで管理範囲を把握していると説明しています。一つは設計図そのもの(.tf で終わるファイル)、もう一つが state file と呼ばれる控えです。控えは、設計図の中の呼び名を、Cloudflare 上にある実物と対応づけます。
既定では、控えは手元の terraform.tfstate というファイルです。作った物の番号はここに保存され、差分を見るときと建てるときに引き直されます。
設計図の左の呼び名と、実物の右の番号が、控えの上で線で結ばれています。この線が差分を出す基準です。
つまり、控えは設計図と実物をつなぐ対応表で、差分はこの表を基準に計算されます。
4. 履歴として残す
Section titled “4. 履歴として残す”設計図が手元にしかなければ、消したら終わりです。図面を保管庫に入れておけば、いつ誰が何を変えたかが残り、前の版に戻せます。
公式の次の手引きでは、まず合鍵を設計図から外します。版 5 系の係は、CLOUDFLARE_API_TOKEN という環境変数から合鍵を自動で読むので、ファイルには書かずに済みます。番号などの値は terraform.tfvars に分けて置きます。
そのうえで、保管庫に入れない物を先に決めます。公式が挙げているのは次の四つです。
.terraform/*.tfstate*.terraform.lock.hclterraform.tfvars公式は、こうして保管すると変更の追跡・第三者の確認・巻き戻しができるようになり、合鍵などの秘密は設計図と切り離されたままだと説明しています。
Cloudflare Lab での使われ方
Section titled “Cloudflare Lab での使われ方”ここで紹介した流れが、いま読んでいる Cloudflare Lab でどう使われるかを見ます。
Cloudflare Lab では、設計図を書き換えるたびにまず差分を出し、壊す数が 0 であることを確かめてから建てる予定です。控えと合鍵は保管庫に入れず、設計図だけを残します。実測(最初の差分の本数、建てるのにかかった時間)は実装後に追記します。
つまずきやすいところ
Section titled “つまずきやすいところ”この節のまとめ
Section titled “この節のまとめ”terraform planは足す・変える・壊すの本数を先に見せる見積書です。terraform applyは同じ一覧を再提示し、承諾を取ってから建てます。- 控え(state)が設計図と実物を対応づけ、保管庫には設計図だけを残します。
この節で出てきた言葉を、つながりの順に並べると次のようになります。
図のラベル: 設計図を書き換える / 差分を見る terraform plan / 承諾して建てる terraform apply / 対応表に記録 terraform.tfstate / 合鍵は環境変数へ CLOUDFLARE_API_TOKEN / 設計図だけ保管する 追跡・確認・巻き戻し
次の節では、手で作ってしまった物を設計図に取り込みます。
この節のチェック
© 2026 osdse