ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

Terraform を使用してネットワークとファイアウォールを作成する

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

概要

このラボでは、データベース移行プロジェクト用の安全なネットワーク インフラストラクチャを作成します。パブリック VPC とプライベート VPC の両方を作成し、それぞれの VPC に適切なファイアウォール ルールを設定します。各ネットワークに仮想マシンを追加し、相互の通信をテストします。このすべてを Terraform を使用して行い、移行プロジェクトで使用できる、より現実的なワークフローを示します。

目標

このラボでは、Terraform を使用して次のタスクを実行する方法について学びます。

  • ネットワークの作成を自動化する。
  • ファイアウォール ルールを作成する。
  • 仮想マシンを作成する。
  • プライベート ネットワークを作成する。

設定と要件

このタスクでは、ラボの初期化手順を行います。

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. シークレット ウィンドウを使用して Google Skills にログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。 一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud コンソールにログインする際に使用します。

  5. [Google コンソールを開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。 他の認証情報を使用すると、エラーや料金が発生します。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

タスク 1. Terraform を使用してネットワークの作成を自動化する

  1. ナビゲーション メニューナビゲーション メニュー アイコン)で、[ホーム] をクリックします。

  2. [プロジェクト情報] セクションで、プロジェクト ID を見つけてコピーし、テキスト ファイルに貼り付けます。書き留めておきます。

[プロジェクト情報] セクションでハイライト表示されているプロジェクト ID

  1. コンソールの右上にある [Cloud Shell をアクティブにする] アイコン(Cloud Shell をアクティブにするアイコン)をクリックします。Cloud Shell ターミナルがウィンドウの下部のペインに表示されます。

  2. terraform-networks という名前のディレクトリを作成し、そのディレクトリに移動します。

mkdir terraform-networks cd terraform-networks
  1. このラボに必要な Terraform ファイルを作成します。
touch provider.tf touch terraform.tfvars touch test-server-linux.tf touch variables.tf touch vpc-network-public.tf touch vpc-firewall-rules-public.tf touch public-test-server-linux.tf touch random-id-generator.tf
  1. ls と入力して、ファイルが terraform-networks フォルダに作成されたことを確認します。

  2. Cloud Shell で [エディタを開く] をクリックし、terraform-networks フォルダを選択して provider.tf ファイルを開きます。

  3. 次のコードを入力して、Google Cloud Terraform プロバイダを構成します。

terraform { required_version = ">= 0.12" } provider "google" { project = var.project_id region = var.gcp_region_1 zone = var.gcp_zone_1 }

上記のコードの変数に注目してください。次に、これらの変数と他の変数を作成します。

  1. variables.tf ファイルを開き、次のコードを入力します。
# GCP プロジェクト ID variable "project_id" { type = string description = "GCP Project ID" } # サブネット 1 で使用するリージョン variable "gcp_region_1" { type = string description = "GCP リージョン" } # VM で使用するゾーン variable "gcp_zone_1" { type = string description = "GCP Zone" } # パブリック ネットワークのサブネットを定義する variable "subnet_cidr_public" { type = string description = "Subnet CIDR for Public Network" }

前のファイルで変数を定義し、別のファイルで変数を設定しました。

  1. terraform.tfvars ファイルを開き、次のコードを追加します。
# GCP 設定 project_id = "{{{project_0.project_id|Project ID}}}" gcp_region_1 = "{{{ project_0.default_region | "REGION" }}}" gcp_zone_1 = "{{{ project_0.default_zone | "ZONE" }}}" # GCP ネットワーク変数 subnet_cidr_public = "10.1.1.0/24"
  1. vpc-network-public.tf ファイルを開き、次の内容を追加します。
resource "google_compute_network" "public-vpc" { name = "public-vpc" auto_create_subnetworks = "false" routing_mode = "GLOBAL" } resource "google_compute_subnetwork" "public-subnet_1" { name = "public-subnet-1" ip_cidr_range = var.subnet_cidr_public network = google_compute_network.public-vpc.name region = var.gcp_region_1 } 注: 上記の Terraform コードでは、1 つのサブネットを持つ VPC が作成されます。サブネットでは、ip_cidr_rangeregion の 2 つの変数に注目してください。また、サブネットの前に作成された VPC を network プロパティがどのように参照しているかにも注目してください。
  1. ここまでの手順が正しく行われたことを確認するには、Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で [VPC ネットワーク] をクリックします。default という名前のネットワークが 1 つあるはずです。

  2. Cloud Shell で、[ターミナルを開く] をクリックします。正しいフォルダが選択されていることを確認します。

cd ~/terraform-networks
  1. Terraform を初期化するには、次のコマンドを入力します。
terraform init

「Terraform has been successfully initialized!」というメッセージが表示されます。

  1. Terraform プランをビルドするには、次のコマンドを入力します。
terraform plan

エラーがないことを確認し、作成されるリソースを確認します。

このプランでは、ネットワークとサブネットワークの 2 つのリソースが作成されることがわかります。

  1. リソースを作成するには、次のコマンドを実行します。
terraform apply -auto-approve

-auto-approve パラメータを指定すると、プロンプトが表示されずにスクリプトが実行されます。

  1. スクリプトが完了するまで待ち、コンソールで VPC ネットワークのツールバーにある [更新] をクリックします。新しいネットワークとサブネットが表示されます。

ネットワークの構成はまだ完了していません。

  1. 次のコマンドで、作成したものを削除します。
terraform destroy -auto-approve
  1. [更新] をクリックして、ネットワークが削除されたことを確認します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Terraform を使用してネットワークの作成を自動化する

確認

ここまでで、Terraform を使用してネットワークとサブネットを作成しました。次に、ファイアウォール ルールをいくつか作成します。

タスク 2. Terraform を使用してファイアウォール ルールを作成する

  1. Cloud Shell で [エディタを開く] をクリックします。terraform-networks フォルダにある vpc-firewall-rules-public.tf ファイルを開きます。

  2. このネットワーク内のマシンへの SSH を許可するファイアウォール ルールを追加するには、次のコードを追加します。

# SSH を許可 resource "google_compute_firewall" "public-allow-ssh" { name = "${google_compute_network.public-vpc.name}-allow-ssh" network = google_compute_network.public-vpc.name allow { protocol = "tcp" ports = ["22"] } source_ranges = [ "0.0.0.0/0" ] target_tags = ["allow-ssh"] } 注: このルールでは、すべての場所からの SSH が許可されますが、「allow-ssh」タグが付いたマシンのみが対象となります。
  1. Windows マシンには SSH ではなく RDP が必要です。SSH ルールの下に次の RDP ルールを追加します。
# RDP を許可 resource "google_compute_firewall" "public-allow-rdp" { name = "${google_compute_network.public-vpc.name}-allow-rdp" network = google_compute_network.public-vpc.name allow { protocol = "tcp" ports = ["3389"] } source_ranges = [ "0.0.0.0/0" ] target_tags = ["allow-rdp"] }

テストには Ping が役立ちます。

  1. 次のルールを前のルールの下に追加して有効にします。
# あらゆる場所からの ping を許可 resource "google_compute_firewall" "public-allow-ping" { name = "${google_compute_network.public-vpc.name}-allow-ping" network = google_compute_network.public-vpc.name allow { protocol = "icmp" } source_ranges = [ "0.0.0.0/0" ] }
  1. 前回と同様、ターミナルを切り替えて次のコマンドを実行し、エラーがないか確認して、作成される内容を確認します。
terraform plan
  1. 次の Terraform コマンドを実行し、コンソールを使用してネットワーク、サブネット、ファイアウォール ルールがすべて作成されていることを確認します。
terraform apply -auto-approve

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Terraform を使用してファイアウォール ルールを作成する

確認

ここまでで、ネットワークとファイアウォール ルールを作成しました。次に、テストサーバーをネットワークに追加し、ファイアウォール ルールが機能するかどうかを確認します。

タスク 3. Terraform を使用して仮想マシンを作成する

  1. Cloud Shell コードエディタを開き、random-id-generator.tf ファイルを開いて、次のコードを追加します。
# ランダムな ID を作成する Terraform プラグイン resource "random_id" "instance_id" { byte_length = 4 }

この Terraform プラグインは、プログラムで追加された VM の一意の名前を生成するために使用されます。

  1. パブリック ネットワークに仮想マシンを作成するには、test-server-linux.tf ファイルを開き、次のコードを追加します。
# パブリック VPC にテストサーバーを作成する resource "google_compute_instance" "test-server-linux" { name = "public-test-server-linux-${random_id.instance_id.hex}" machine_type = "f1-micro" zone = var.gcp_zone_1 tags = ["allow-ssh"] boot_disk { initialize_params { image = "debian-cloud/debian-11" } } metadata_startup_script = "sudo apt-get update;" network_interface { network = google_compute_network.public-vpc.name subnetwork = google_compute_subnetwork.public-subnet_1.name access_config { } } } output "test-server-linux" { value = google_compute_instance.test-server-linux.name } output "test-server-linux-external-ip" { value = google_compute_instance.test-server-linux.network_interface.0.access_config.0.nat_ip } output "test-server-linux-internal-ip" { value = google_compute_instance.test-server-linux.network_interface.0.network_ip } 注: 出力変数は、作成されたマシンの名前と内部 IP アドレス、外部 IP アドレスを返します。さらに、このマシンには、「allow-ssh」タグが付けられているため接続することができます。

最後に、network_interface セクションのコードを見てください。このコードは、先ほど作成したパブリック ネットワークにこのマシンが配置されるように構成します。
  1. 先ほどと同じように Terraform の plan コマンドと apply コマンドを実行して、このマシンを作成します。エラーが表示された場合は、他の 2 つのコマンドを実行する前に terraform init を再度実行する必要がある場合があります。

コマンドが完了すると、VM 名、内部 IP アドレス、外部 IP アドレスが表示されます。

  1. Cloud Shell ターミナルから、そのマシンの外部 IP アドレスに ping できることを確認します。

  2. コンソールで Compute Engine サービスに移動し、作成した VM を確認します。

  3. [SSH] をクリックしてファイアウォール ルールが機能することを確認し、SSH セッションを終了します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Terraform を使用して仮想マシンを作成する

タスク 4. Terraform を使用してプライベート ネットワークを作成する

  1. パブリック ネットワークの構成をガイドとして使用し、2 つ目のプライベート ネットワークを作成します。variables.tf ファイルに、プライベート サブネットの IP CIDR 範囲の変数を追加し、その値を terraform.tfvars ファイルで設定します。

  2. vpc-network-public.tf ファイルを複製し、名前と変数を適宜変更します。

  3. パブリック ファイアウォール ルールをガイドとして使用して、プライベート ネットワークのファイアウォール ルールを追加します。source_ranges セクションでは、すべてのソースからのトラフィックを許可するのではなく、パブリック サブネットの IP CIDR 範囲からのトラフィックのみを許可します。

  4. パブリック ネットワークを参考に、プライベート ネットワークにテストサーバーを作成します。

注: このラボはご自身で完了してください。行き詰まった場合は、GitHub の GoogleCloudPlatform/training-data-analyst でソリューション全体を参照できます。
  1. すべて作成したら、公開テストサーバーに SSH で接続してみます。プライベート ネットワーク内のサーバーにはまだアクセスできません。これは次のラボで修正します。

これで完了です。データベース移行プロジェクト用の安全なネットワーク インフラストラクチャを作成しました。パブリック VPC とプライベート VPC の両方を作成し、それぞれの VPC に適切なファイアウォール ルールを設定しました。各ネットワークに仮想マシンを追加し、相互の通信をテストしました。これらすべてを Terraform を使用して行いました。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Skills から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。