GSP1317
概要
Network Connectivity Center(NCC)を使用すると、VPC スポークを介して VPC 間の接続を大規模に確立できます。VPC が VPC スポークとして定義されている場合、複数の VPC ネットワークを NCC ハブを介して接続できます。
NCC は、Google Cloud でのネットワーク接続管理のためのハブアンドスポーク コントロール プレーン モデルです。ハブリソースは、スポークを相互接続するための一元化された接続管理モデルを提供します。
このラボでは、gcloud コマンドを使用して NCC ハブを構成し、コンソールで変更を確認する方法を学びます。NCC ハブは、各 VPC スポーク間のルーティング構成の構築を担当するコントロール プレーンとして機能します。また、Cloud SQL への Private Service Connect も設定します。

学習内容
このラボでは、次のタスクの実行方法について学びます。
- NCC によるフルメッシュ VPC 接続。
- Private Service Connect を設定する。
- スポークを介してトラフィックを送信し、Cloud SQL への接続を確認する。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
- ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。
左側の [ラボの詳細] ペインには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
-
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}}
[ラボの詳細] ペインでもユーザー名を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}}
[ラボの詳細] ペインでもパスワードを確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。
注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
-
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
-
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン
をクリックします。
-
ウィンドウで次の操作を行います。
- Cloud Shell 情報ウィンドウで操作を進めます。
- Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。
接続した時点で認証が完了しており、プロジェクトに各自の Project_ID、 が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
- [承認] をクリックします。
出力:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project
出力:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
始める前に
このラボでは、2 つのプロジェクトを何度も切り替える必要があります。正しいプロジェクトが選択されていることを確認してください。2 つの Cloud Shell ウィンドウを使用すると便利です。各プロジェクトに 1 つずつ使用します。
Network Connectivity API を有効にする
Network Connectivity Center を使用してタスクを行う前に、次のコマンドを実行して Network Connectivity API を有効にします。
gcloud services enable networkconnectivity.googleapis.com
既存の Google Cloud リソースを確認する
このラボでは、ネットワーキング リソースはあらかじめ構築されています。ここで 1 分ほど時間を取って、利用可能な VPC ネットワークと VM を確認してください。Google Cloud コンソールまたはコマンドラインを使用して確認できます。
次のことがわかります。
- 2 VPCs
- Private Service Connect が有効になっている Cloud SQL Postgres インスタンス
データ転送接続を構成する
データ転送の接続をセットアップするには、NCC を使用してハブとスポークを構築し、Google Cloud を介してあるサイトから別のサイトにデータを転送できるようにします。
タスク 1. ハブの作成
- 次のコマンドを実行して NCC ハブを作成します。
gcloud network-connectivity hubs create ncc-hub
- 新しく作成された NCC ハブについて説明します。
gcloud network-connectivity hubs describe ncc-hub
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
NCC ハブを作成します。
タスク 2. VPC を NCC スポークとして構成する
管理者は、VPC スポークから NCC ハブのルートテーブルへのサブネット ルートのエクスポートを除外できます。要約プレフィックスに基づいてエクスポート除外ルールを作成し、VPC1 のサブネットが NCC ハブのルートテーブルにエクスポートされないようにします。
- この
gcloud コマンドを使用して、VPC1 に属するすべてのサブネットを一覧表示します。
gcloud config set accessibility/screen_reader false
gcloud compute networks subnets list --network=vpc1-ncc
- VPC1 を NCC スポークとして構成し、
export-exclude-ranges キーワードを使用して、/25 サブネットのペアがハブのルーティング テーブルにインポートされないように除外します。これにより、その特定の範囲から /24 の要約ルートがフィルタリングされます。
gcloud network-connectivity spokes linked-vpc-network create vpc1-spoke1 \
--hub=ncc-hub \
--vpc-network=vpc1-ncc \
--exclude-export-ranges=10.1.2.0/24 \
--global
- NCC ハブのデフォルトのルーティング テーブルの内容を一覧表示します。
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default --filter="NEXT_HOP:vpc1-ncc"
- VPC2 を NCC スポークとして構成する:
gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global
- NCC ハブのデフォルトのルーティング テーブルの内容を一覧表示し、出力を確認します。
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
VPC を NCC スポークとして構成します。
タスク 3. IPv4 データパスの接続を確認する
-
Compute Engine > VM インスタンスに移動し、vm1-vpc1-ncc に SSH 接続します。次のコマンドを実行して TCP ダンプを開始し、vm2-vpc2-ncc からの ICMP パケットをトレースします。この VM は VPC2 に存在します。
vm1-vpc1-ncc
sudo tcpdump -i any icmp -v -e -n
-
vm2-vpc2-ncc への SSH セッションを確立し、vm1-vpc1-ncc の IP アドレスを
ping します。
vm2-vpc2-ncc
ping 10.1.1.2
タスク 4. Private Service Connect を設定する
Private Service Connect(PSC)は、独自の内部 IP アドレスを使用して Virtual Private Cloud(VPC)ネットワーク間でプライベートかつ安全な通信を可能にする機能です。
内部 IP アドレスを予約する
- 環境変数 REGION で参照されている Google Cloud リージョンで VPC サブネットの CIDR の範囲を見つけ、この CIDR の範囲内で Private Service Connect エンドポイントに使用できる IP アドレスを選択します。
gcloud compute networks subnets describe vpc2-ncc-subnet1 \
--region={{{project_0.default_region | REGION}}} \
--project={{{project_0.project_id|PROJECT_ID}}} \
--format="value(ipCidrRange)"
- 上記の派生 VPC サブネット CIDR の範囲で、Private Service Connect エンドポイントの内部 IP アドレスを予約します。
[ADDRESS] は、前へ のコマンドの出力 IP アドレスの CIDR の範囲 内の IP アドレスに置き換えます。
gcloud compute addresses create cloudsql-psc \
--project={{{project_0.project_id|PROJECT_ID}}} \
--region={{{project_0.default_region | REGION}}} \
--subnet=vpc2-ncc-subnet1 \
--addresses=[ADDRESS]
注: エラー「Could not fetch resource: IP 'X.X.X.X' is already being used by another resource」が発生した場合は、同じ CIDR 範囲内の別の IP アドレスを使用してみてください。また、Compute Engine > VM インスタンス に移動し、vm2-vpc2-ncc と cloudsql-client の VM インスタンスの内部 IP とは異なる IP アドレスを使用します。
- 内部 IP アドレスが予約され、IP アドレスのステータスが RESERVED になっていることを確認します。[ADDRESS/RANGE] をメモします。これは後で必要になります。
gcloud compute addresses list \
--project={{{project_0.project_id|PROJECT_ID}}} \
--filter="name=cloudsql-psc"
サービス アタッチメントの URI を取得する
Private Service Connect が有効になっている Cloud SQL インスタンスを作成したら、サービス アタッチメント URI を取得し、取得した URI を使用して、上記の予約済み内部 IP アドレスで Private Service Connect エンドポイントを作成します。
gcloud sql instances describe {{{project_0.startup_script.postgres-instance}}} \
--project={{{project_0.project_id|PROJECT_ID}}} \
--format="value(pscServiceAttachmentLink)"
Private Service Connect を作成する
- Private Service Connect エンドポイントを作成し、Cloud SQL サービス アタッチメント URL を指すようにします。
[Service_Attachment_URI] は、前のコマンドの出力から取得したサービス アタッチメント URI に置き換えます。
gcloud compute forwarding-rules create cloudsql-psc-ep \
--address=cloudsql-psc \
--project={{{project_0.project_id|PROJECT_ID}}} \
--region={{{project_0.default_region | REGION}}} \
--network=vpc2-ncc \
--target-service-attachment=[Service_Attachment_URI] \
--allow-psc-global-access
- エンドポイントがサービス アタッチメントに接続できることを確認します。
gcloud compute forwarding-rules describe cloudsql-psc-ep \
--project={{{project_0.project_id|PROJECT_ID}}} \
--region={{{project_0.default_region | REGION}}} \
--format="value(pscConnectionStatus)"
DNS マネージド ゾーンを構成する
Cloud SQL インスタンスの推奨 DNS 名を追加するには、対応する VPC ネットワークにプライベート DNS ゾーンを作成するのが最適です。
gcloud dns managed-zones create cloudsql-dns \
--project={{{project_0.project_id|PROJECT_ID}}} \
--description="DNS zone for the Cloud SQL instances" \
--dns-name={{{project_0.default_region | REGION}}}.sql.goog. \
--networks=vpc2-ncc \
--visibility=private
Private Service Connect の DNS レコードを追加する
- Cloud SQL インスタンスの推奨 DNS レコードを取得します。
gcloud sql instances describe {{{project_0.startup_script.postgres-instance}}} \
--project={{{project_0.project_id|PROJECT_ID}}} \
--format="value(dnsName)"
出力で DNS レコードを見つけます。これは次のステップで必要になります。
- 提案された DNS レコードを DNS マネージド ゾーンに追加する
[DNS_RECORD] は推奨される DNS レコードに、[ADDRESS/RANGE] は上記の前のコマンドの出力に置き換えます。
gcloud dns record-sets create [DNS_RECORD] \
--project={{{project_0.project_id|PROJECT_ID}}} \
--type=A \
--rrdatas=[ADDRESS/RANGE] \
--zone=cloudsql-dns
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Private Service Connect を設定します。
タスク 5. Private Service Connect 経由で Cloud SQL に接続する
-
cloudsql-client VM インスタンスに接続します。
gcloud compute ssh --zone {{{project_0.default_zone | ZONE}}} "cloudsql-client" \
--tunnel-through-iap --project {{{project_0.project_id|PROJECT_ID}}}
- インスタンスに接続します。
[DNS_RECORD] は置き換え、パスワードには changeme を使用します。
psql "sslmode=disable dbname=postgres user=postgres host=[DNS_RECORD]"
- データベースを作成します。
CREATE DATABASE company;
- すべてのデータベースを一覧表示します。
\l
- 従業員データベースに接続する:
\c company
- 会社のデータベースにテーブルを作成する:
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
first VARCHAR(255) NOT NULL,
last VARCHAR(255) NOT NULL,
salary DECIMAL (10, 2)
);
- company データベースの employees テーブルにデータを挿入する:
INSERT INTO employees (first, last, salary) VALUES
('Max', 'Mustermann', 5000.00),
('Anna', 'Schmidt', 7000.00),
('Peter', 'Mayer', 6000.00);
- 従業員テーブルをクエリする:
SELECT * FROM employees;
- Postgres データベースと VM を終了して、Cloud Shell に戻ります。
\q
exit
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Private Service Connect 経由で Cloud SQL に接続します。
タスク 6. リソースの削除
本番環境では、料金が発生しないように、使用していないリソースを削除する必要があります。このラボでは、スポークとハブを削除する簡単な手順を学びます。
スポークとハブを削除する
- NCC スポークを削除する:
gcloud network-connectivity spokes delete vpc1-spoke1 --global --quiet
gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet
- NCC ハブを削除する:
gcloud network-connectivity hubs delete ncc-hub --quiet
- DNS レコードを削除する
gcloud dns record-sets delete [DNS_RECORD] \
--project={{{project_0.project_id|PROJECT_ID}}} \
--type=A \
--zone=cloudsql-dns
- DNS マネージド ゾーンの削除:
gcloud dns managed-zones delete cloudsql-dns \
--project={{{project_0.project_id|PROJECT_ID}}} \
--quiet
お疲れさまでした
Network Connectivity Center を使用して既存の Google Cloud リソースのハブとスポークを構築する方法を学び、NIC を使用して NCC を介してデータを転送できることを確認しました。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2025 年 6 月 12 日
ラボの最終テスト日: 2025 年 6 月 12 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。