概要
このラボでは、ローカル バックエンドを作成し、次に Cloud Storage バケットを作成して状態をリモート バックエンドに移行します。
目標
このラボでは、次のタスクを行う方法を学びます。
- ローカル バックエンドを作成する。
- Cloud Storage バックエンドを作成する。
- Terraform の状態を更新する。
タスク 1. Cloud コンソールにログイン
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。
左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
-
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}}
[ラボの詳細] パネルでもユーザー名を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}}
[ラボの詳細] パネルでもパスワードを確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。
注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
-
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
注: Google Cloud のプロダクトやサービスのリストを含むメニューを表示するには、左上のナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。
タスク 2. Terraform がインストールされていることを確認
-
Google Cloud のメニューで、[Cloud Shell をアクティブにする] をクリックします。
-
プロンプトが表示されたら、[続行] をクリックします。
-
次のコマンドを実行して Terraform がインストールされていることを確認します。
terraform --version
タスク 3. ローカル バックエンドの追加
このセクションでは、Cloud Storage バケットに移動されるローカル バックエンドを構成します。
- 新しく開いた Cloud Shell のウィンドウで、
main.tf 構成ファイルを作成します。
touch main.tf
- 次のコマンドを実行して、プロジェクト ID を取得します。
gcloud config list --format 'value(core.project)'
- Cloud Shell ツールバーで [エディタを開く] をクリックします。Cloud Shell とコードエディタを切り替えるには、必要に応じて [エディタを開く] または [ターミナルを開く] をクリックします。
- Cloud Storage バケットのリソースコードを
main.tf 構成ファイルにコピーします。
provider "google" {
project = "{{{project_0.project_id|Project ID}}}"
region = "{{{project_0.default_region|Region}}}"
}
resource "google_storage_bucket" "test-bucket-for-state" {
name = "{{{project_0.project_id|Project ID}}}"
location = "US" # ヨーロッパ地域の場合は「EU」に置き換えます
uniform_bucket_level_access = true
}
- ローカル バックエンドを
main.tf ファイルに追加します。
terraform {
backend "local" {
path = "terraform/state/terraform.tfstate"
}
}
これにより、terraform/state ディレクトリの terraform.tfstate ファイルが参照されます。
main.tf の最後のコードは次のようになります。
provider "google" {
project = "{{{project_0.project_id|Project ID}}}"
region = "{{{project_0.default_region|Region}}}"
}
resource "google_storage_bucket" "test-bucket-for-state" {
name = "{{{project_0.project_id|Project ID}}}"
location = "US" # ヨーロッパ地域の場合は「EU」に置き換えます
uniform_bucket_level_access = true
}
terraform {
backend "local" {
path = "terraform/state/terraform.tfstate"
}
}
Terraform では、構成したバックエンドを使用前に初期化する必要があります。
- Cloud Shell ツールバーで [ターミナルを開く] をクリックし、次のコマンドを使用して Terraform を初期化します。
terraform init
- 変更を適用します。確認プロンプトで「yes」と入力します。
terraform apply
Cloud Shell エディタで terraform/state ディレクトリに terraform.tfstate という状態ファイルが表示されるはずです。
- 状態ファイルを確認します。
terraform show
google_storage_bucket.test-bucket-for-state リソースが表示されます。
[進行状況を確認] をクリックして、ローカル バックエンドが作成されたことを確認します。
ローカル バックエンドの追加
タスク 4. Cloud Storage バックエンドの追加
- エディタで
main.tf ファイルに戻ります。ここで、現在のローカル バックエンドを gcs バックエンドに置き換えます。
- 既存のローカル バックエンドの構成を変更するには、
main.tf ファイルのローカル バックエンドのコードを次の構成に置き換えます。
terraform {
backend "gcs" {
bucket = "{{{project_0.project_id|Project ID}}}"
prefix = "terraform/state"
}
}
main.tf の最後のコードは次のようになります。
provider "google" {
project = "{{{project_0.project_id|Project ID}}}"
region = "{{{project_0.default_region|Region}}}"
}
resource "google_storage_bucket" "test-bucket-for-state" {
name = "{{{project_0.project_id|Project ID}}}"
location = "US" # ヨーロッパ地域の場合は「EU」に置き換えます
uniform_bucket_level_access = true
}
terraform {
backend "gcs" {
bucket = "{{{project_0.project_id|Project ID}}}"
prefix = "terraform/state"
}
}
- バックエンドを再度初期化します。確認プロンプトで「yes」と入力します。
terraform init -migrate-state
- Google Cloud コンソールのナビゲーション メニューで、[Cloud Storage]、[バケット] の順にクリックします。
- バケットをクリックし、
terraform/state/default.tfstate ファイルに移動します。
状態ファイルは Cloud Storage バケット内にあります。

[進行状況を確認] をクリックして、リモート バックエンドが作成されたことを確認します。
Cloud Storage バックエンドの追加
タスク 5. 状態の更新
terraform refresh コマンドは、Terraform が状態ファイルを通じて認識している状態と実際のインフラストラクチャとを整合させるために使用します。これにより、最後に認識された状態からのずれを検出し、状態ファイルを更新できます。インフラストラクチャではなく、状態ファイルを修正するコマンドです。状態が変更されると、次の plan や apply の最中に変更が行われる場合があります。
- Cloud コンソールで Storage バケットに戻ります。名前の横のチェックボックスを選択し、上部にある [ラベル] ボタンをクリックします。[ラベル] タブを含む情報パネルが表示されます。
- [+ ラベルを追加] をクリックします。[キー 2] を [
key]、[値 2] を [value] に設定します。
- [保存] をクリックします。
- Cloud Shell に戻り、次のコマンドを使用して状態ファイルを更新します。
terraform refresh
[進行状況を確認] をクリックして、Terraform が更新されたことを確認します。
状態の更新
タスク 6. ワークスペースのクリーンアップ
- まず、バックエンドを
local に戻し、Storage バケットを削除できるようにします。gcs 構成をコピーし、次に置き換えます。
terraform {
backend "local" {
path = "terraform/state/terraform.tfstate"
}
}
-
local バックエンドを再初期化します。確認プロンプトで「yes」と入力します。
terraform init -migrate-state
-
main.tf ファイルで、force_destroy = true 引数を google_storage_bucket リソースに追加します。このブール値のオプションを使用することで、バケットを削除するときに含まれているすべてのオブジェクトが削除されます。
注: オブジェクトが含まれているバケットを削除しようとすると、Terraform による実行が失敗します。
リソースの構成は次のようになります。
resource "google_storage_bucket" "test-bucket-for-state" {
name = "{{{project_0.project_id|Project ID}}}"
location = "US" # ヨーロッパ地域の場合は「EU」に置き換えます
uniform_bucket_level_access = true
force_destroy = true
}
- 変更を適用します。確認プロンプトで「yes」と入力します。
terraform apply
- これでインフラストラクチャを正常に破棄できるようになりました。確認プロンプトで「yes」と入力します。
terraform destroy
[進行状況を確認] をクリックして、バックエンドが削除されたことを確認します。
ワークスペースのクリーンアップ
お疲れさまでした
このラボでは、Terraform を使用してバックエンドや状態を管理する方法を学びました。状態ファイルを管理するためのローカル バックエンドと Cloud Storage バックエンドを作成し、状態を更新しました。このラボでは、次のタスクを行う方法を学びました。
- ローカル バックエンドを作成する。
- Cloud Storage バックエンドを作成する。
- Terraform の状態を更新する。
ラボを終了する
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Skills から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
- 星 1 つ = 非常に不満
- 星 2 つ = 不満
- 星 3 つ = どちらともいえない
- 星 4 つ = 満足
- 星 5 つ = 非常に満足
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。