GCP入門:Terraformの基礎

スポンサーリンク
GCP入門:Terraformの基礎 ノウハウ
GCP入門:Terraformの基礎
この記事は約4分で読めます。
よっしー
よっしー

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

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

スポンサーリンク

背景

下記のサイトを参考に実施したときの内容を自身のGCPプロジェクトに適用したときの内容を備忘として残しました。

実施内容

下記の手順で実施しました。


mkdir `作業ディレクトリ`

cd `作業ディレクトリ`

# terraformのバージョン指定
asdf local terraform 1.9.2

# terraformのバージョン確認
terraform --version

asdf local gcloud 482.0.0

asdf local python 3.12.4

# gcloudのバージョン確認
gcloud --version

# 操作アカウントの設定
gcloud config set account `アカウント`

# 操作アカウントの確認
gcloud config get-value account

# プロジェクト新規作成
gcloud projects create `プロジェクト`

# プロジェクトの情報確認
gcloud projects describe `プロジェクト`

# 請求先アカウントの確認
gcloud beta billing accounts list

# 請求先アカウントのリンク
gcloud beta billing projects link `プロジェクト` --billing-account=`請求先アカウント`

# tfファイル作成
touch instance.tf
# tfファイルの中身
% cat instance.tf 
resource "google_compute_instance" "terraform" {
  project      = "プロジェクト"
  name         = "terraform"
  machine_type = "e2-medium"
  zone         = "us-west1-c"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
    access_config {
    }
  }
}

# 初期化
terraform init

# 実行プランの作成
terraform plan

# 変更を適用
terraform apply

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

# リソースの破棄
terraform destroy

解説

instance.tf

このコードは、Google Cloud Platform (GCP) で Terraform を使用して仮想マシン インスタンスを作成するためのものです。各部分を詳しく説明しましょう。

  1. リソースタイプ:
    google_compute_instance は GCP の Compute Engine インスタンスを作成するためのリソースタイプです。
  2. リソース名:
    "terraform" はこのリソースの Terraform 内での識別子です。
  3. プロジェクト:
    project = "プロジェクト" は、このインスタンスが作成される GCP プロジェクトを指定しています。
  4. インスタンス名:
    name = "terraform" は、GCP 上で作成されるインスタンスの実際の名前です。
  5. マシンタイプ:
    machine_type = "e2-medium" は、インスタンスのハードウェア構成を指定しています。e2-medium は汎用的な中規模インスタンスです。
  6. ゾーン:
    zone = "us-west1-c" は、インスタンスが作成される GCP のゾーンを指定しています。
  7. ブートディスク:
    boot_disk ブロックでは、インスタンスのブートディスクの設定を行います。
    image = "debian-cloud/debian-11" は、Debian 11 のイメージを使用することを指定しています。
  8. ネットワークインターフェース:
    network_interface ブロックでネットワーク設定を行います。
    network = "default" はデフォルトのネットワークを使用することを指定しています。
    access_config {} は空のブロックですが、これによりインスタンスに外部 IP アドレスが割り当てられます。

このコードを実行すると、指定されたプロジェクト内に Debian 11 を実行する e2-medium インスタンスが作成され、デフォルトネットワークに接続され、外部 IP アドレスが割り当てられます。

おわりに

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

よっしー
よっしー

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

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

コメント

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