TerraformのPlanとApplyを理解する
安全なInfrastructure as Codeの中心となるTerraformの基本ワークフロー、planで変更をプレビューし、applyで実行する仕組みを学びます。
「TerraformのPlanとApplyを理解する」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
基本ワークフロー
Terraformの日常的な流れはシンプルです。設定を記述し、planを実行して変更を確認し、それからapplyを実行して実際に反映します。planとapplyを使いこなすことが、安全なIaCの中心です。
planの動作
terraform planは、設定、現在の状態、実際のインフラストラクチャという3つを比較し、整合させるための操作を表示します。何も変更は行いません。
terraform plan記号の読み方
Planの出力では記号を使います。+は作成、-は破棄、~はその場での更新、-/+は破棄してから再作成する置換を表します。
Planの例
S3バケットを追加すると、この例のようなplanが生成されます。追加されるリソースは1つです。
Terraform will perform the following actions:
# aws_s3_bucket.logs will be created
+ resource "aws_s3_bucket" "logs" {
+ bucket = "my-logs"
+ id = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.apply後に判明
生成されたIDやIPアドレスなど、一部の値は事前に予測できません。Terraformはそれらをknown after applyとして示し、リソースが実際に作成された後に値を設定します。
Planの保存
Planをファイルに保存し、後でそのPlanを正確に適用できます。これにより、applyがレビューした内容だけを、追加の変更なしに実行することを保証できます。
terraform plan -out=tfplan
terraform apply tfplanapplyの動作
terraform applyはprovider APIを通じて計画された操作を実行し、その後stateファイルを更新します。保存したPlanがない場合は、Planを表示してから確認を求めます。
terraform apply確認プロンプト
デフォルトでは、applyは一時停止し、続行するためにyesと入力するよう求めます。自動化では-auto-approveを使用できますが、すでにレビュー済みのPlanに対してのみ使用してください。
依存関係の順序
Terraformは依存関係グラフを構築し、リソースを正しい順序で適用します。たとえば、参照するインスタンスより先にセキュリティグループを自動的に作成します。
冪等性
Terraformは冪等です。何も変更せずに再度applyすると、「No changes.」と表示されます。設定が信頼できる唯一の情報源となるため、applyを繰り返すたびに望ましい状態へ収束します。
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.ベストプラクティス
必ずapplyの前にplanを実行し、コードレビューと同じように内容を確認してください。特に破棄が含まれていないか注意します。CIでは保存したPlanを使用し、stateを手動で編集してはいけません。
確認テスト
plan/applyについての知識を確認しましょう。
まとめ
まとめ:plan/applyの流れはTerraformの中心です。planは設定、state、実際の環境を比較し、-outでPlanを保存し、applyは依存関係の順序で実行し、冪等性を備えています。
よくある質問
「TerraformのPlanとApplyを理解する」レッスンは無料ですか?
はい。「TerraformのPlanとApplyを理解する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「TerraformのPlanとApplyを理解する」で何を学びますか?
安全なInfrastructure as Codeの中心となるTerraformの基本ワークフロー、planで変更をプレビューし、applyで実行する仕組みを学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「TerraformのPlanとApplyを理解する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- IaCとTerraformの概要
- TerraformのインストールとCLIの基礎
- はじめてのTerraform設定
- TerraformのPlanとApplyを理解する