GCP入門: Terraform を使用した IaC -Vol.6-

スポンサーリンク
GCP入門: Terraform を使用した IaC -Vol.6- ノウハウ
GCP入門: Terraform を使用した IaC -Vol.6-
この記事は約5分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、TerraformでGCPのリソース作成について解説しています。

スポンサーリンク

背景

前回の記事の続きになります。

実施内容

main.tfに下記のリソースを追記します。

# アプリケーションで使用する Storage バケット用の新しいリソース
resource "google_storage_bucket" "example_bucket" {
  name     = "<UNIQUE-BUCKET-NAME>"
  location = "US"

  website {
    main_page_suffix = "index.html"
    not_found_page   = "404.html"
  }
}

# このバケットを使用する新しいインスタンスを作成する
resource "google_compute_instance" "another_instance" {
  # この VM インスタンスの作成は、Storage バケットの作成後にのみ行うよう
  # Terraform に指示する
  depends_on = [google_storage_bucket.example_bucket]

  name         = "terraform-instance-2"
  machine_type = "e2-micro"

  boot_disk {
    initialize_params {
      image = "cos-cloud/cos-stable"
    }
  }

  network_interface {
    network = google_compute_network.vpc_network.self_link
    access_config {
    }
  }
}

追記後、下記のコマンドを実施しました。


# 実行プランの作成
terraform plan

# 変更を適用
terraform apply

# 状態ファイルの確認
terraform show

解説

main.tf

このコードの解説をいたします。

# アプリケーションで使用する Storage バケット用の新しいリソース
resource "google_storage_bucket" "example_bucket" {
  name     = "<UNIQUE-BUCKET-NAME>"
  location = "US"
  website {
    main_page_suffix = "index.html"
    not_found_page   = "404.html"
  }
}

# このバケットを使用する新しいインスタンスを作成する
resource "google_compute_instance" "another_instance" {
  # この VM インスタンスの作成は、Storage バケットの作成後にのみ行うよう
  # Terraform に指示する
  depends_on = [google_storage_bucket.example_bucket]

  name         = "terraform-instance-2"
  machine_type = "e2-micro"

  boot_disk {
    initialize_params {
      image = "cos-cloud/cos-stable"
    }
  }

  network_interface {
    network = google_compute_network.vpc_network.self_link
    access_config {}
  }
}

このTerraformコードは、Google Cloud Platform(GCP)上に2つのリソースを作成します:

  1. Google Cloud Storage バケット:
  • google_storage_bucket リソースを使用して作成されます。
  • バケット名は <UNIQUE-BUCKET-NAME> で、実際の使用時には一意の名前に置き換える必要があります。
  • 米国(”US”)に配置されます。
  • ウェブサイトホスティング用に設定されており、メインページは “index.html”、404エラーページは “404.html” を使用します。
  1. Compute Engine インスタンス:
  • google_compute_instance リソースを使用して作成されます。
  • Storage バケットの作成後にのみ作成されるよう depends_on で指定されています。
  • インスタンス名は “terraform-instance-2” です。
  • マシンタイプは “e2-micro” です。
  • ブートディスクは Container-Optimized OS(COS)の安定版イメージを使用します。
  • ネットワークインターフェースは、別途定義された VPC ネットワーク(google_compute_network.vpc_network)に接続され、外部IPアドレスも割り当てられます(access_config {})。

このコードは、ウェブアプリケーションのホスティングや、Compute Engineインスタンスと連携するストレージソリューションの構築などに使用できます。

おわりに

今日は、 TerraformでGCPのリソース作成について解説しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました