arrow_back

ネットワーク ロードバランサを設定する

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

ネットワーク ロードバランサを設定する

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

GSP007

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

概要

このハンズオンラボでは、Compute Engine 仮想マシン(VM)上で実行されるパススルー ネットワーク ロードバランサ(NLB)を設定する方法を学びます。レイヤ 4(L4)NLB は、IP アドレスやポート番号などのネットワーク レベルの情報に基づいてトラフィックを処理し、トラフィックの内容は検査しません。

Google Cloud でロードバランスするには、いくつかの方法があります。 このラボでは、次のロードバランサの設定について詳しく説明します。

根底にあるコンセプトを理解できるよう、コマンドは手動で入力することをおすすめしますが、多くのラボでは必要なコマンドが含まれたコードブロックが用意されています。このラボでも、コードブロックのコマンドをコピーして、該当する場所に貼り付けることもできます。

目標

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

  • リソースのデフォルトのリージョンとゾーンを構成する。
  • 複数のウェブサーバー インスタンスを作成する。
  • ロード バランシング サービスを構成する。
  • トラフィックを分散するように転送ルールを構成する。

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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. すべてのリソースにデフォルトのリージョンとゾーンを設定する

  1. デフォルト リージョンを設定します。

    gcloud config set compute/region {{{project_0.default_region | Region}}}
  2. Cloud Shell でデフォルト ゾーンを設定します。

    gcloud config set compute/zone {{{project_0.default_zone | Zone}}}

    ゾーンとリージョンの選択の詳細については、Compute Engine のリージョンとゾーンのドキュメントをご覧ください。

タスク 2. 複数のウェブサーバー インスタンスを作成する

このロード バランシングのシナリオでは、Compute Engine VM インスタンスを 3 つ作成し、これらのインスタンスに Apache をインストールします。また、HTTP トラフィックがこれらのインスタンスに到達できるようにファイアウォール ルールを追加します。

以下のコードでは、ゾーンが に設定されます。tags フィールドを設定すると、これらのインスタンスをファイアウォール ルールなどで同時に参照できます。これらのコマンドにより、Apache も各インスタンスにインストールされ、インスタンスごとに固有のホームページが提供されます。

  1. 次のコードを使用して、デフォルト ゾーンに仮想マシン www1 を作成します。

    gcloud compute instances create www1 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www1

    " | tee /var/www/html/index.html'
  2. 次のコードを使用して、デフォルト ゾーンに仮想マシン www2 を作成します。

    gcloud compute instances create www2 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www2

    " | tee /var/www/html/index.html'
  3. デフォルト ゾーンに仮想マシン www3 を作成します。

    gcloud compute instances create www3 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www3

    " | tee /var/www/html/index.html'
  4. これらの VM インスタンスへの外部トラフィックを許可するファイアウォール ルールを作成します。

    gcloud compute firewall-rules create www-firewall-network-lb \ --target-tags network-lb-tag --allow tcp:80

次に、インスタンスの外部 IP アドレスを取得してインスタンスが実行されていることを確認する必要があります。

  1. 次のコマンドを実行してインスタンスを一覧表示します。インスタンスの IP アドレスは EXTERNAL_IP 列に表示されます。

    gcloud compute instances list
  2. curl を使用して、各インスタンスが実行中であることを確認します。[IP_ADDRESS] は、各 VM の外部 IP アドレスに置き換えてください。

    curl http://[IP_ADDRESS]

    [進行状況を確認] をクリックして、ウェブサーバーのグループが作成されたことを確認します。 複数のウェブサーバー インスタンスを作成する

タスク 3. ロード バランシング サービスを構成する

ロード バランシング サービスを構成すると、構成した静的外部 IP アドレス宛てのパケットを仮想マシン インスタンスが受信するようになります。 Compute Engine イメージを使用して作成されたインスタンスは、この IP アドレスに対処するように自動的に構成されます。

注: ネットワーク ロード バランシングの設定方法の詳細については、バックエンド サービスベースの外部パススルー ネットワーク ロードバランサの概要ガイドをご覧ください。
  1. ロードバランサに使用する静的外部 IP アドレスを作成します。

    gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.default_region | Region}}}

    出力:

    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
  2. レガシー HTTP ヘルスチェック リソースを追加します。

    gcloud compute http-health-checks create basic-check

    [進行状況を確認] をクリックして、ウェブサーバーを参照する L4 ネットワーク ロードバランサが作成されたことを確認します。 ロード バランシング サービスを構成する

タスク 4. ターゲット プールと転送ルールを作成する

ターゲット プールは、外部パススルー NLB から受信トラフィックを受け取るバックエンド インスタンスのグループです。ターゲット プールのすべてのバックエンド インスタンスは、同じ Google Cloud リージョンに存在する必要があります。

  1. 次のコマンドを実行して、ターゲット プールを作成し、ヘルスチェックを使用します。ターゲット プールが機能するには、ヘルスチェックが必要です。

    gcloud compute target-pools create www-pool \ --region {{{project_0.default_region | Region}}} --http-health-check basic-check
  2. 先ほど作成したインスタンスをプールに追加します。

    gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3

次に、転送ルールを作成します。転送ルールは、ネットワーク トラフィックをロードバランサのバックエンド サービスにルーティングする方法を指定します。

  1. 転送ルールを追加します。

    gcloud compute forwarding-rules create www-rule \ --region {{{project_0.default_region | Region}}} \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool

    [進行状況を確認] をクリックして、ターゲット プールと転送ルールが作成されたことを確認します。 ターゲット プールと転送ルールを作成する

タスク 5. インスタンスにトラフィックを送信する

ロード バランシング サービスの構成が完了したので、転送ルールへのトラフィックの送信を開始して、トラフィックが複数のインスタンスに分散される様子を観察できます。

  1. 次のコマンドを入力して、ロードバランサが使用する www-rule 転送ルールの外部 IP アドレスを表示します。

    gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}}
  2. 外部 IP アドレスにアクセスします。

    IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress)
  3. 外部 IP アドレスを表示します。

    echo $IPADDRESS
  4. curl コマンドを使用して外部 IP アドレスにアクセスします。IP_ADDRESS は、前のコマンドで作成した外部 IP アドレスに置き換えてください。

    while true; do curl -m1 $IPADDRESS; done

    curl コマンドからのレスポンスは、3 つのインスタンスからランダムに返されます。 最初のレスポンスが返されなかった場合は、構成が完全に読み込まれてインスタンスが正常であるとマークされるまで 30 秒ほど待ってから、もう一度やり直してください。

  5. Ctrl+C キーを使用してコマンドの実行を停止します。

お疲れさまでした

このラボでは、ネットワーク ロードバランサを作成しました。また、転送ルールにトラフィックを送信し、トラフィックが複数のインスタンスに分散される様子を観察しました。

次のステップと詳細情報

詳細については、次のガイドをご覧ください。

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

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

マニュアルの最終更新日: 2025 年 7 月 17 日

ラボの最終テスト日: 2025 年 7 月 17 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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