
Google CloudのCloud ShellでTerraformを実行してみる
Google CloudのCloud Shellでは、Terraformがプリインストールされていて、Google Cloudの認証情報もセットされています。
Terraformをさくっと試すのに便利です。
今回は、Cloud Shell上でTerraformを実行してVPCを作ってみます。
Cloud Shellを開く
Google Cloudコンソールから、右上のアイコンを選択してCloud Shellを開きます。
エディタを開く
を選択して、Webエディタを起動します。
エディタ上で、ターミナルを開きます。
Terminal
-> New Terminal
の順に選択します。
これで画面下部に、ターミナルが表示されるはずです。
以降に紹介するコマンドは、こちらのターミナルから実行します。
Terraformの確認
Cloud ShellにはデフォルトでTerraformが入っています。
terraform --version
Terraform v1.5.7
on linux_amd64
Your version of Terraform is out of date! The latest version
is 1.12.2. You can update by downloading from https://www.terraform.io/downloads.html
Terraformのバージョンは古めですが、今回は検証のため、このまま進めます。
Compute Engine APIの有効化
今回のコードを実行するには、Compute Engine APIが有効である必要があります。
以下のコマンドでCompute Engine APIの状態を確認します。
Listed 0 items.
と表示されたら、無効な状態です。Compute Engine APIが表示されたら、以降はスキップして大丈夫です。
gcloud services list --enabled --filter="name:compute.googleapis.com"
無効だった場合は以下のコマンドで有効化します。
gcloud services enable compute.googleapis.com
再度list --enabled
コマンドで確認すると、以下のようにcompute.googleapis.com
が確認できるはずです。
gcloud services list --enabled --filter="name:compute.googleapis.com"
NAME: compute.googleapis.com
TITLE: Compute Engine API
Terraformでリソース作成
mkdir terraform-test
cd terraform-test
touch main.tf
今回はテスト用にVPCを作成してみます。
以下の内容でコードを用意します。
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "~> 6.40.0"
}
}
}
provider "google" {}
resource "google_compute_network" "this" {
name = "terraform-test"
}
Terraformを実行してリソースを作成します。
terraform init
terraform plan
terraform apply
Applyが完了後、コンソール上からもリソースが作成されていることを確認できました。
検証が終わったら、以下のコマンドでリソースを削除しておきます。
terraform destroy
補足: Providerブロックは空でいいの?
今回は空でOKです。
Cloud Shellは環境変数でProject名がセットされており、Terraformはそれを使います。(環境変数GOOGLE_CLOUD_PROJECT
)
$ printenv | grep GOOGLE
GOOGLE_CLOUD_PROJECT=hoge-project
GOOGLE_CLOUD_QUOTA_PROJECT=hoge-project
BASHRC_GOOGLE_PATH=/google/devshell/bashrc.google
リージョンリソースを設定する場合は、region
を設定する必要があります。
今回は、作成リソースがVPC(グローバル)なので不要でした。
Provider Default Values Configuration | Google Provider Configuration Reference | Terraform Registry
おわりに
Cloud ShellはTerraformがプリインストールされていて、さくっとTerraform試すのに便利です。
VSCodeのようなWebエディタ(Code OSS)も簡単に使えて助かります。
Gemini Code Assistも使えるので、Terraformのコード作成が捗りそうです。
以上、AWS事業本部の佐藤(@chari7311)でした。
参考
Build infrastructure | Terraform | HashiCorp Developer
Google Cloud の Terraform 関連ドキュメント