State管理の基礎
デプロイしたリソースの追跡に不可欠なTerraform Stateの概念と、ローカルStateファイルの管理方法を理解します。
「State管理の基礎」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
Terraform Stateとは
Terraformのstateは、インフラストラクチャの記憶のようなものです。Terraformが管理するリソースのスナップショットです。
これは、Terraformが実際の環境(クラウドプロバイダー)で構築・設定した内容を追跡する重要なデータベースだと考えてください。
Stateが重要な理由
Stateが重要なのは、Terraformが次のことを行えるようになるためです。
- リソースを対応付ける:実際のクラウドリソースが、設定内のどのリソースブロックに対応するかを把握します。
- メタデータを追跡する:設定に含まれていないリソースの属性(IDやIPアドレスなど)を保存します。
- 変更を計画する:目的の状態(設定)と現在の状態(stateファイル)を比較し、作成、更新、または破棄が必要なものを判断します。
ワークフローにおけるStateの役割
terraform applyを実行すると、Terraformはまず.tfファイルを確認し、どのような状態を望んでいるかを把握します。次に、stateファイルを参照して、現在存在しているものを確認します。
この2つを比較して、目的のインフラストラクチャ構成に到達するための「plan」を作成します。適用後は、新しい実際の状態をstateファイルに反映します。
`terraform.tfstate`について
デフォルトでは、Terraformは作業ディレクトリ内のterraform.tfstateというファイルにstateをローカル保存します。
このファイルは、設定と実際のリソースの対応関係を包括的に記録したJSONドキュメントです。
最初のリソース
シンプルなnull_resourceを使って、stateがどのように作成されるか確認しましょう。このリソースはクラウド上に何も作成しませんが、Terraformはそれでも追跡します。
次の内容をmain.tfとして保存してください。
resource "null_resource" "my_example" {
triggers = {
always_run = timestamp()
}
}Stateファイルを作成する
まずTerraformを初期化し、次に設定を適用してリソースとterraform.tfstateファイルを作成します。
ターミナルで次のコマンドを実行してください。
terraform init
terraform apply --auto-approveStateのリソースを一覧表示する
applyが完了すると、terraform.tfstateファイルが作成されます。Terraform CLIコマンドを使って、その内容を確認できます。
terraform state listを使用すると、stateで追跡されているすべてのリソースを確認できます。
terraform state listリソースの詳細を表示する
stateファイルから特定のリソースの詳細情報を取得するには、リソースアドレスを続けて指定したterraform state showを使用します。
ここではnull_resourceで試してみましょう。
terraform state show null_resource.my_exampleStateを手動で編集しないでください
terraform.tfstateファイルは重要で複雑なファイルです。決して手動で直接編集しないでください。
手動で編集するとstateが破損し、次のような問題につながる可能性があります。
- インフラストラクチャの状態が不整合になる。
- Terraformがリソースを追跡できなくなる。
- 予期しないリソースの破棄や作成が発生する。
stateを操作する場合は、必ずTerraform CLIコマンド(terraform state mvなど)を使用してください。
State Managementチェック
Terraformのstateについて、次の記述のうち正しいものはどれですか。
State Managementの復習
このレッスンでは、インフラストラクチャを追跡する重要な要素であるTerraformのstateについて学びました。
- stateによって、設定と実際のリソースが対応付けられることを学びました。
- ローカルのstateファイルの名前は
terraform.tfstateです。 terraform state listやterraform state showなどのコマンドを使って、stateを確認できます。- 破損を防ぐため、stateファイルを手動で編集してはいけません。
stateを理解することは、Terraformを効果的に使うための基本です。
よくある質問
「State管理の基礎」レッスンは無料ですか?
はい。「State管理の基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「State管理の基礎」で何を学びますか?
デプロイしたリソースの追跡に不可欠なTerraform Stateの概念と、ローカルStateファイルの管理方法を理解します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「State管理の基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ProviderとResource
- 変数と出力
- State管理の基礎
- モジュールとコードの再利用