よっしー
こんにちは。よっしーです(^^)
今日は、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 を使用して仮想マシン インスタンスを作成するためのものです。各部分を詳しく説明しましょう。
- リソースタイプ:
google_compute_instance
は GCP の Compute Engine インスタンスを作成するためのリソースタイプです。 - リソース名:
"terraform"
はこのリソースの Terraform 内での識別子です。 - プロジェクト:
project = "プロジェクト"
は、このインスタンスが作成される GCP プロジェクトを指定しています。 - インスタンス名:
name = "terraform"
は、GCP 上で作成されるインスタンスの実際の名前です。 - マシンタイプ:
machine_type = "e2-medium"
は、インスタンスのハードウェア構成を指定しています。e2-medium は汎用的な中規模インスタンスです。 - ゾーン:
zone = "us-west1-c"
は、インスタンスが作成される GCP のゾーンを指定しています。 - ブートディスク:
boot_disk
ブロックでは、インスタンスのブートディスクの設定を行います。image = "debian-cloud/debian-11"
は、Debian 11 のイメージを使用することを指定しています。 - ネットワークインターフェース:
network_interface
ブロックでネットワーク設定を行います。network = "default"
はデフォルトのネットワークを使用することを指定しています。access_config {}
は空のブロックですが、これによりインスタンスに外部 IP アドレスが割り当てられます。
このコードを実行すると、指定されたプロジェクト内に Debian 11 を実行する e2-medium インスタンスが作成され、デフォルトネットワークに接続され、外部 IP アドレスが割り当てられます。
おわりに
今日は、 TerraformでGCPのリソース作成について解説しました。
よっしー
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント