arrow_back

高スループット VPN の構築

ログイン 参加
700 以上のラボとコースにアクセス

高スループット VPN の構築

ラボ 1時間 universal_currency_alt クレジット: 7 show_chart 上級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP062

Google Cloud セルフペース ラボのロゴ

概要

このハンズオンラボでは、安全で高スループットの VPN を作成して速度をテストする方法を説明します。

Google Cloud と他のクラウド / オンプレミス システムとの間の安全な通信の確保は、一般的かつ極めて重要なニーズです。幸い Google Cloud では、この目標を達成する安全なインターネット プロトコル セキュリティ(IPsec)方式のバーチャル プライベート ネットワーク(VPN)を簡単に作成できます。必要なスループットが 1 つのトンネルで得られない場合、Google Cloud は、トラフィックを複数のトンネルにスムーズに分散して帯域幅を追加します。

目標

このラボでは、次のことを行います。

  • VPN を作成する

    • Google Cloud ネットワークをシミュレートする cloud という名前の Virtual Private Cloud(VPC)と、外部ネットワークをシミュレートする on-prem という名前の VPC(オンプレミス)を作成します。
    • cloud VPC の VPN ゲートウェイ、転送ルール、アドレスを作成します。
    • 新しい VPN 用のトンネルを形成し、それを通過するようにトラフィックをルーティングします。
    • on-prem VPC 用に VPN 作成プロセスを繰り返し、2 つ目の VPN を作成します。
  • VPN をテストする

    • Compute Engine を使用して、スループット負荷テスト用の仮想マシン(VM)を作成します。
    • iperf を使用して単一の VPN のスループット速度をテストします。

前提条件

学習効果を最大限に高めるためには、次のことを行う必要があります。

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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 の概要ガイドをご覧ください。

タスク 1. クラウド VPC を作成する

このセクションでは、次の作業を行います。

  • クラウド本番環境ネットワークをシミュレートする VPC を作成する。
  • 一般的なタイプのトラフィックが VPC を通過できるようにする。
  • ホストをデプロイするためのサブネットを作成する。
  1. Cloud Shell で、次のコマンドを実行することにより、Google Cloud プロジェクトに関連付けられた cloud という名前のカスタム VPC を作成します。
gcloud compute networks create cloud --subnet-mode custom

この VPC では、デフォルト以外の IP アドレス指定を使用できますが、デフォルトのファイアウォール ルールは含まれていません。

  1. 負荷テストの際は安全なシェルを使用して VM と通信する必要があるため、次のコマンドを実行して SSHicmp を有効にしておきます。
gcloud compute firewall-rules create cloud-fw --network cloud --allow tcp:22,tcp:5001,udp:5001,icmp
  1. 次のコマンドを実行して、この VPC 内にサブネットを作成し、リージョンと IP 範囲を指定します。
gcloud compute networks subnets create cloud-east --network cloud \ --range 10.0.1.0/24 --region {{{project_0.default_region_2 | REGION2}}}

このソリューションでは、10.0.1.0/24 リージョンを使用します。

タスク 2. オンプレミス VPC を作成する

このセクションでは、on-prem VPC、つまり、cloud に接続するネットワークのシミュレーションを作成します。実際にはすでにリソースは存在しますが、トンネルを作成して構成を検証する目的で、次の手順を実行します。

  1. Cloud Shell で次のコマンドを実行することにより、on-prem という名前の新しいカスタム サブネット VPC を作成してプロジェクトに関連付けます。
gcloud compute networks create on-prem --subnet-mode custom
  1. 負荷テストの際は安全なシェルを使用して VM と通信する必要があるため、次のコマンドを実行して on-prem VPC 内のホスト用に SSHicmp を有効にしておきます。
gcloud compute firewall-rules create on-prem-fw --network on-prem --allow tcp:22,tcp:5001,udp:5001,icmp
  1. 次のコマンドを使用して、リージョンに対応するサブネット接頭辞を指定します。
gcloud compute networks subnets create on-prem-central \ --network on-prem --range 192.168.1.0/24 --region {{{project_0.default_region |REGION}}} 注: この例では、「192.168.1.0/24」を リージョンに割り当てます。 サブネットワークとファイアウォール ルールを備えた 2 つのカスタム VPC を作成します。

タスク 3. VPN ゲートウェイの作成

環境ごとに、安全な外部通信のための VPN ゲートウェイが必要です。次の手順で cloud VPC と on-prem VPC の初期ゲートウェイを作成します。

  1. Cloud Shell で、on-prem VPC と リージョンに on-prem-gw1 という名前の VPN ゲートウェイを作成します。
gcloud compute target-vpn-gateways create on-prem-gw1 --network on-prem --region {{{project_0.default_region |REGION}}}
  1. 次に、cloud VPC と リージョンに cloud-gw1 という名前の VPN ゲートウェイを作成します。
gcloud compute target-vpn-gateways create cloud-gw1 --network cloud --region {{{project_0.default_region_2 | REGION2}}}

タスク 4. ローカル ネットワークと Google Cloud ネットワーク間のルートベースの VPN トンネルを作成する

VPC 外部のシステムから通信できるよう、それぞれの VPN ゲートウェイには静的な外部 IP アドレスが必要です。これから、cloud VPC と on-prem VPC で IP アドレスとルートを作成します。

  1. Cloud Shell で、cloud-gw1 VPN ゲートウェイの IP を割り当てます。
gcloud compute addresses create cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
  1. on-prem-gw1 VPN ゲートウェイの IP を割り当てます。
gcloud compute addresses create on-prem-gw1 --region {{{project_0.default_region |REGION}}}
  1. ここで、後のコマンドで参照しなくてすむようにゲートウェイのアドレスを保存します。

cloud-gw1 ゲートウェイ用:

cloud_gw1_ip=$(gcloud compute addresses describe cloud-gw1 \ --region {{{project_0.default_region_2 | REGION2}}} --format='value(address)')

on-prem-gw1 ゲートウェイ用:

on_prem_gw_ip=$(gcloud compute addresses describe on-prem-gw1 \ --region {{{project_0.default_region |REGION}}} --format='value(address)')
  1. 次に、cloud VPC で IPsec の転送ルールを作成します。両方向で転送ルールを作成する必要があります。

cloud-gw1 からカプセル化セキュリティ ペイロード(ESP)プロトコルを転送します。

gcloud compute forwarding-rules create cloud-1-fr-esp --ip-protocol ESP \ --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}

cloud-gw1 から UDP:500 トラフィックを転送します。

gcloud compute forwarding-rules create cloud-1-fr-udp500 --ip-protocol UDP \ --ports 500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}

cloud-gw1 から UDP:4500 トラフィックを転送します。

gcloud compute forwarding-rules create cloud-fr-1-udp4500 --ip-protocol UDP \ --ports 4500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
  1. 同じ方法で、on-prem VPC で IPsec トンネルのファイアウォール転送ルールを作成します。このステップにより、IPsec トンネルがファイアウォールの外に出られるようになります。

on-prem-gw1 から ESP プロトコルを転送します。

gcloud compute forwarding-rules create on-prem-fr-esp --ip-protocol ESP \ --address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}

on-prem-gw1 から IPsec トンネルの確立に使用される UDP:500 トラフィックを転送します。

gcloud compute forwarding-rules create on-prem-fr-udp500 --ip-protocol UDP --ports 500 \ --address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}

on-prem-gw1 から暗号化されたトラフィックを伝送する UDP:4500 トラフィックを転送します。

gcloud compute forwarding-rules create on-prem-fr-udp4500 --ip-protocol UDP --ports 4500 \ --address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}} 2 つの VPN ゲートウェイと必要な転送ルールを作成します。

通常は、次のステップでトンネルの on-prem-tunnel1cloud-tunnel1 を作成、検証する際に使用するシークレットを生成する必要があります。シークレットを作成して安全に保存する方法の詳細については、Secret Manager のコンセプトの概要ガイドをご覧ください。ここでは、文字列 "sharedsecret" を使用します。

ローカル ネットワーク用のトンネル on-prem-tunnel1 と、クラウドベースのネットワーク用のトンネル cloud-tunnel1 を作成します。それぞれのネットワークに VPN ゲートウェイが必要であり、シークレットが一致する必要があります。次の 2 つのコマンドで、[MY_SECRET](本番環境のシナリオでは生成したシークレットで置き換える)を "sharedsecret" で置き換えてください。

  1. on-prem から cloud への VPN トンネルを作成します。
gcloud compute vpn-tunnels create on-prem-tunnel1 --peer-address $cloud_gw1_ip \ --target-vpn-gateway on-prem-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \ --remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region |REGION}}}
  1. cloud から on-prem への VPN トンネルを作成します。
gcloud compute vpn-tunnels create cloud-tunnel1 --peer-address $on_prem_gw_ip \ --target-vpn-gateway cloud-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \ --remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region_2 | REGION2}}}

これで、ゲートウェイが作成されてトンネルが構築されたため、サブネットから 2 つのトンネルを通過するルートを追加する必要があります。

  1. on-prem VPC から cloud 10.0.1.0/24 範囲へのトラフィックをトンネルにルーティングします。
gcloud compute routes create on-prem-route1 --destination-range 10.0.1.0/24 \ --network on-prem --next-hop-vpn-tunnel on-prem-tunnel1 \ --next-hop-vpn-tunnel-region {{{project_0.default_region |REGION}}}
  1. cloud VPC から on-prem 192.168.1.0/24 範囲へのトラフィックをトンネルにルーティングします。
gcloud compute routes create cloud-route1 --destination-range 192.168.1.0/24 \ --network cloud --next-hop-vpn-tunnel cloud-tunnel1 --next-hop-vpn-tunnel-region {{{project_0.default_region_2 | REGION2}}} 2 つの VPN トンネルを作成します。

タスク 5. VPN 上のスループットをテストする

この時点で、on-prem VPC と cloud VPC との間に安全なパスが確立されました。スループットをテストするには、iperf を使用します。これは、ネットワーク負荷テスト用のオープンソース ツールです。テストを行うには、トラフィックの送信環境と受信環境のそれぞれに VM が必要です。次に VM を作成します。

単一の VPN の負荷テスト

ここでは、cloud VPC 用に cloud-loadtest という名前の仮想マシンを作成します。OS には Debian Linux イメージを使用します。

注: 既存のプロジェクトがある場合は、このステップを省略して既存のリソースを使用できます。VM の帯域幅は vCPU 数 x 2 Gbps なので、少なくとも 4 個の vCPU が必要です。
  1. 以下のコマンドを実行します。
gcloud compute instances create "cloud-loadtest" --zone {{{project_0.default_zone_2 |ZONE2}}} \ --machine-type "e2-standard-4" --subnet "cloud-east" \ --image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \ --boot-disk-type "pd-standard" --boot-disk-device-name "cloud-loadtest"
  1. on-prem VPC 用に on-prem-loadtest という名前の仮想マシンを作成します。この例では cloud VPC の OS と同じ Debian イメージを使用しています。既存のリソースがある場合はこのステップを省略します。

以下のコマンドを実行します。

gcloud compute instances create "on-prem-loadtest" --zone {{{project_0.default_zone |ZONE}}} \ --machine-type "e2-standard-4" --subnet "on-prem-central" \ --image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \ --boot-disk-type "pd-standard" --boot-disk-device-name "on-prem-loadtest"
  1. コンソールかコマンドラインを使用して各 VM への SSH を開始し、次のコマンドラインを使用して iperf のコピーをインストールします。
sudo apt-get install iperf
  1. on-prem-loadtest VM で、次のコマンドを実行します。
iperf -s -i 5

5 秒ごとにステータスを報告する iperf サーバーが VM 上に作成されます。

  1. cloud-loadtest VM で、次のコマンドを実行します。
iperf -c 192.168.1.2 -P 20 -x C

20 のストリームがある iperf クライアントが 1 つ作成されます。テストの 10 秒後に値が報告されます。

2 つの VM を作成し、SSH 経由で iperf をインストールします。

問題が発生した場合のトラブルシューティング

注: これはラボの手順の一部ではありません。
  1. ローカル ネットワーク用のトンネルを作成する際に [MY_SECRET] を "sharedsecret" に置き換えるのを忘れた場合。

作成した VPN トンネルを次のコマンドで削除できます。

gcloud compute vpn-tunnels delete [tunnel-name] --region [region]
  • [tunnel-name] は、トンネルの名前に置き換えます。
  • [region] は、トンネルの作成時に指定したリージョンに置き換えます。
  1. 「単一の VPN の負荷テスト」の手順で問題が発生する場合は次のようにします。
  • 両方の VM に iperf がインストールされていることを確認します。

  • 接続拒否エラーが発生する場合は次のことを確認します。

    • 作成したネットワーク用のファイアウォール ルール(tcp:5001)
    • サーバーが on-prem-loadtest で正常に実行されている
    • cloud-loadtest 経由でサーバーに接続しようとしている
  1. コンソールで作成した転送ルールを確認する場合:
  • [ナビゲーション メニュー] で [ネットワーキング] セクションに移動します。
  • [ネットワーク接続] > [VPN] の順にクリックします。
  • [Cloud VPN ゲートウェイ] をクリックして [Cloud VPN ゲートウェイの詳細] ページを表示します。

お疲れさまでした

このラボでは、クラウド VPC とオンプレミス VPC という 2 つのシミュレートされたネットワーク間に、高スループット VPN を構築しました。カスタム VPC の作成、VPN ゲートウェイの構成、安全な IPsec トンネルの確立、トンネル経由のトラフィックのルーティングの方法を学びました。最後に、iperf を使用して VPN のスループットをテストし、そのパフォーマンスを検証しました。

次のステップ

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 3 月 30 日

ラボの最終テスト日: 2025 年 2 月 25 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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