TerraformでCloud Storageのバケットを作成してみた
こんにちは。データアナリティクス事業本部の根本です。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のファイル内容です。
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のサンプルやリファレンスが豊富にありとっても面白いのでぜひ目を通して見てください。 この記事が誰かのお役に立てば嬉しいです。それではまた。