TerraformでCloud Storageのバケットを作成してみた

2024.05.03

こんにちは。データアナリティクス事業本部の根本です。TerraformでGoogle CloudのCloud Storageのバケットを作ってみました。

この記事の対象者

  • TerraformでCloud Storageのバケットを作成したいひと

前提条件

  • Google CloudでCloud Storage、Cloud Shellが使える環境があること

検証の全体像

  • TerraformをCloud Shellで動かして、Cloud Storageのバケットを作成する

やってみる!

まずは環境確認

Cloud ShellでTerraformは使用することができます。まずはCloud ShellをGoogle Cloudのコンソールから開いてください。
一応、Terraformが入っているかTerraformのバージョン確認コマンドで確認します。

terraform version

コマンドを実行して以下のようなバージョン情報の出力があれば問題ありません。

Terraform v1.5.7
on linux_amd64

Your version of Terraform is out of date! The latest version
is 1.8.2. You can update by downloading from https://www.terraform.io/downloads.html

(今回は検証なのでバージョンは特に気にしません)
それではTerraformを動かす準備をしていきます。
まずはTerraform用のフォルダを作成して、作成したフォルダへ移動します。

mkdir terraform_test && cd terraform_test

Terraformのファイルを作成

フォルダへ移動したら、VimでTerraformのファイルを作成します。以下がTerraformのファイル内容です。

main.tf

provider "google" {
  project = "プロジェクトID"
  region  = "asia-northeast1"
}

resource "google_storage_bucket" "my_bucket" {
  name     = "バケット名"
  location = "asia-northeast1"
  storage_class = "STANDARD"
}

ストレージタイプ:Standardで、東京リージョンにバケットを作成する内容となります。バケット名やプロジェクトIDはご自身の環境に合わせて設定してください。

Terraformを実行

Terraformのファイルを作成したので実行していきます。まずは以下のコマンドを発行します。

terraform init

terraform initコマンドを実行すると、Terraformがどのプロバイダ(AWSなのかAzureなのかGoogleなのかなど)を使うかプログラムをスキャンして確認してくれて必要なデータをダウンロードしてくれます。
ダウンロードされたデータはterraform initコマンドを実行したディレクトリ配下に.terraformフォルダが作成されていてそこに保存されています。
せっかくなので、確認してみます。

ls .terraform/providers/registry.terraform.io/hashicorp/
google

terraform initを実行したフォルダ(terraform_test)配下に、.terraformフォルダが作成されていてその最下層にgoogleフォルダが作成されています。

provider "google"

上記のようにプログラムでgoogleのプロバイダを指定していたのでTerraformがgoogleのプロバイダのコードが必要と判断してダウンロードしてくれました。
さて、terraform initコマンドが成功していたのでいよいよCloud Storageバケットの作成をしていきます。

terraform apply

terraform applyを実行します。

Do you want to perform these actions?

と確認されますので、yesと入力してEnterキーを押下します。

google_storage_bucket.my_bucket: Creating...
google_storage_bucket.my_bucket: Creation complete after 2s [id=バケット名]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

上記のような出力がされれば成功です。

確認

バケットが作成されているか、コマンドとCloud Storageコンソールで確認してみます。

gsutil ls

上記コマンドを実行して、指定したバケット名でバケットが作成されていれば成功です。
Cloud Storageコンソールでも確認してみます。

指定したストレージクラス、リージョンで作成されていました!検証は無事完了です。

おわりに

Cloud ShellでTerraformが最初から使えるのはとても嬉しいです。Google Cloudの リファレンス にはTerraformのサンプルやリファレンスが豊富にありとっても面白いのでぜひ目を通して見てください。 この記事が誰かのお役に立てば嬉しいです。それではまた。

参考

公式リファレンス 基本的なTerraformコマンド
google_storage_bucket