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

NCC を使用して VPC 間接続を確立する

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

GSP1317

Google Cloud セルフペース ラボ

概要

Network Connectivity Center(NCC)を使用すると、VPC スポークを介して VPC 間の接続を大規模に確立できます。VPC が VPC スポークとして定義されている場合、複数の VPC ネットワークを NCC ハブを介して接続できます。

NCC は、Google Cloud でのネットワーク接続管理のためのハブアンドスポーク コントロール プレーン モデルです。ハブリソースは、スポークを相互接続するための一元化された接続管理モデルを提供します。

このラボでは、gcloud コマンドを使用して NCC ハブを構成し、コンソールで変更を確認する方法を学びます。NCC ハブは、各 VPC スポーク間のルーティング構成の構築を担当するコントロール プレーンとして機能します。また、Cloud SQL への Private Service Connect も設定します。

NCC を使用したクラウド間のネットワークの図

学習内容

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

  • NCC によるフルメッシュ VPC 接続。
  • Private Service Connect を設定する。
  • スポークを介してトラフィックを送信し、Cloud SQL への接続を確認する。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • 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 にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト 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. ハブの作成

  1. 次のコマンドを実行して NCC ハブを作成します。
gcloud network-connectivity hubs create ncc-hub
  1. 新しく作成された NCC ハブについて説明します。
gcloud network-connectivity hubs describe ncc-hub

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 NCC ハブを作成します。

タスク 2. VPC を NCC スポークとして構成する

管理者は、VPC スポークから NCC ハブのルートテーブルへのサブネット ルートのエクスポートを除外できます。要約プレフィックスに基づいてエクスポート除外ルールを作成し、VPC1 のサブネットが NCC ハブのルートテーブルにエクスポートされないようにします。

  1. この gcloud コマンドを使用して、VPC1 に属するすべてのサブネットを一覧表示します。
gcloud config set accessibility/screen_reader false gcloud compute networks subnets list --network=vpc1-ncc
  1. 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
  1. NCC ハブのデフォルトのルーティング テーブルの内容を一覧表示します。
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default --filter="NEXT_HOP:vpc1-ncc"
  1. 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
  1. NCC ハブのデフォルトのルーティング テーブルの内容を一覧表示し、出力を確認します。
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 VPC を NCC スポークとして構成します。

タスク 3. IPv4 データパスの接続を確認する

  1. 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
  1. 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 アドレスを予約する

  1. 環境変数 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)"
  1. 上記の派生 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-ncccloudsql-client の VM インスタンスの内部 IP とは異なる IP アドレスを使用します。
  1. 内部 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 を作成する

  1. 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
  1. エンドポイントがサービス アタッチメントに接続できることを確認します。
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 レコードを追加する

  1. Cloud SQL インスタンスの推奨 DNS レコードを取得します。
gcloud sql instances describe {{{project_0.startup_script.postgres-instance}}} \ --project={{{project_0.project_id|PROJECT_ID}}} \ --format="value(dnsName)"

出力で DNS レコードを見つけます。これは次のステップで必要になります。

  1. 提案された 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 に接続する

  1. cloudsql-client VM インスタンスに接続します。
gcloud compute ssh --zone {{{project_0.default_zone | ZONE}}} "cloudsql-client" \ --tunnel-through-iap --project {{{project_0.project_id|PROJECT_ID}}}
  1. インスタンスに接続します。[DNS_RECORD] は置き換え、パスワードには changeme を使用します。
psql "sslmode=disable dbname=postgres user=postgres host=[DNS_RECORD]"
  1. データベースを作成します。
CREATE DATABASE company;
  1. すべてのデータベースを一覧表示します。
\l
  1. 従業員データベースに接続する:
\c company
  1. 会社のデータベースにテーブルを作成する:
CREATE TABLE employees ( id SERIAL PRIMARY KEY, first VARCHAR(255) NOT NULL, last VARCHAR(255) NOT NULL, salary DECIMAL (10, 2) );
  1. company データベースの employees テーブルにデータを挿入する:
INSERT INTO employees (first, last, salary) VALUES ('Max', 'Mustermann', 5000.00), ('Anna', 'Schmidt', 7000.00), ('Peter', 'Mayer', 6000.00);
  1. 従業員テーブルをクエリする:
SELECT * FROM employees;
  1. Postgres データベースと VM を終了して、Cloud Shell に戻ります。
\q exit

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Private Service Connect 経由で Cloud SQL に接続します。

タスク 6. リソースの削除

本番環境では、料金が発生しないように、使用していないリソースを削除する必要があります。このラボでは、スポークとハブを削除する簡単な手順を学びます。

スポークとハブを削除する

  1. NCC スポークを削除する:
gcloud network-connectivity spokes delete vpc1-spoke1 --global --quiet gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet
  1. NCC ハブを削除する:
gcloud network-connectivity hubs delete ncc-hub --quiet
  1. DNS レコードを削除する
gcloud dns record-sets delete [DNS_RECORD] \ --project={{{project_0.project_id|PROJECT_ID}}} \ --type=A \ --zone=cloudsql-dns
  1. 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 の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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