始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a group of webservers
/ 25
Create a L4 Network Load Balancer that points to the webservers
/ 35
Create a L7 HTTP(S) Load Balancer
/ 40
このハンズオンラボでは、ネットワーク ロードバランサと HTTP ロードバランサの違いのほか、Google Compute Engine 仮想マシンで実行されるアプリケーションでの設定方法について学びます。
Google Cloud Platform で負荷を分散するには、いくつかの方法があります。このラボでは、次のロードバランサの設定について詳しく説明します。
根底にあるコンセプトを理解できるよう、コマンドは手動で入力することをおすすめしますが、多くのラボでは必要なコマンドが含まれたコードブロックが用意されています。ラボでは、コードブロックのコマンドをコピーして該当する場所に貼り付けることもできます。
ネットワーク ロードバランサを設定する。
HTTP(S) ロードバランサを設定する。
ネットワーク ロードバランサと HTTP ロードバランサの違いを演習で学ぶ。
Linux の標準的なテキスト エディタ(vim、emacs、nano など)の使用経験があると役に立ちます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
Qwiklabs にシークレット ウィンドウでログインします。
ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。
準備ができたら、[ラボを開始] をクリックします。
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
[Google Console を開く] をクリックします。
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。
利用規約に同意し、再設定用のリソースページをスキップします。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
Cloud Shell でデフォルト ゾーンを設定します。
gcloud config set compute/zone us-central1-a
デフォルト リージョンを設定します。
gcloud config set compute/region us-central1
ゾーンとリージョンの選択の詳細については、リージョンとゾーンに関するドキュメントをご覧ください。
マシンクラスタの挙動をシミュレートするため、インスタンス テンプレートとマネージド インスタンス グループを使用して、静的コンテンツを提供するシンプルな Nginx ウェブサーバー クラスタを作成します。インスタンス テンプレートでは、クラスタ内の各仮想マシンの状態(ディスク、CPU、メモリなど)が定義されます。マネージド インスタンス グループでは、インスタンス テンプレートを使用して多数の仮想マシンのインスタンスが作成されます。
Nginx ウェブサーバー クラスタを作成するために、以下を用意します。
引き続き Cloud Shell で、すべての仮想マシン インスタンスで使用される起動スクリプトを作成します。このスクリプトの起動時に Nginx サーバーが構成されます。
cat << EOF > startup.sh
#! /bin/bash
apt-get update
apt-get install -y nginx
service nginx start
sed -i -- 's/nginx/Google Cloud Platform - '"\$HOSTNAME"'/' /var/www/html/index.nginx-debian.html
EOF
起動スクリプトを使用するインスタンス テンプレートを作成します。
gcloud compute instance-templates create nginx-template \
--metadata-from-file startup-script=startup.sh
(出力)
Created [...].
NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP
nginx-template n1-standard-1 2015-11-09T08:44:59.007-08:00
ターゲット プールを作成します。ターゲット プールは、グループ内のすべてのインスタンスに 1 か所からアクセスできるようにするもので、この後のステップで負荷分散のために必要になります。
gcloud compute target-pools create nginx-pool
(出力)
Created [...].
NAME REGION SESSION_AFFINITY BACKUP HEALTH_CHECKS
nginx-pool us-central1
インスタンス テンプレートを使用してマネージド インスタンス グループを作成します。
gcloud compute instance-groups managed create nginx-group \
--base-instance-name nginx \
--size 2 \
--template nginx-template \
--target-pool nginx-pool
(出力)
Created [...].
NAME LOCATION SCOPE BASE_INSTANCE_NAME SIZE TARGET_SIZE INSTANCE_TEMPLATE AUTOSCALED
nginx-group us-central1-a zone nginx 0 2 nginx-template no
これで、名前が nginx- で始まる 2 つの仮想マシン インスタンスが作成されます。これには数分かかります。
コンピューティング エンジン インスタンスの一覧を表示し、すべてのインスタンスが作成されたことを確認します。
gcloud compute instances list
(出力)
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
nginx-7wvi us-central1-a n1-standard-1 10.240.X.X X.X.X.X RUNNING
nginx-9mwd us-central1-a n1-standard-1 10.240.X.X X.X.X.X RUNNING
次にファイアウォールを構成し、EXTERNAL_IP アドレス経由でマシンのポート 80 に接続できるようにします。
gcloud compute firewall-rules create www-firewall --allow tcp:80
前述のコマンドの実行結果として示される外部 IP アドレスを使用すると、http://EXTERNAL_IP/ で各インスタンスに接続することができます。
ラボの進行状況を確認します。下の [進行状況を確認] をクリックして、ウェブサーバーのグループを作成したことを確認します。
ネットワーク ロードバランサを利用すると、受信 IP プロトコル データ(アドレス、ポート、プロトコル タイプなど)に基づいて、システムの負荷を分散することができます。HTTP(S) 負荷分散にはないオプションもいくつか利用できます。たとえば、SMTP トラフィックなど、TCP/UDP ベースの付加的なプロトコルの負荷を分散することができます。自身のアプリケーションで TCP 接続関連の仕組みが使用されている場合、HTTP(S) 負荷分散とは異なり、ネットワーク負荷分散でアプリケーション パケットをチェックすることができます。
使用するインスタンス グループを対象とした L4 ネットワーク ロードバランサを作成します。
gcloud compute forwarding-rules create nginx-lb \
--region us-central1 \
--ports=80 \
--target-pool nginx-pool
(出力)
Created [https://www.googleapis.com/compute/v1/projects/...].
プロジェクト内のすべての Google Compute Engine 転送ルールを一覧表示します。
gcloud compute forwarding-rules list
(出力)
NAME REGION IP_ADDRESS IP_PROTOCOL TARGET
nginx-lb us-central1 X.X.X.X TCP us-central1/targetPools/nginx-pool
次に、ブラウザでロードバランサ http://IP_ADDRESS/ にアクセスします(IP_ADDRESS は、前述のコマンドの実行結果に示されたアドレスです)。
ラボの進行状況を確認します。下の [進行状況を確認] をクリックして、グループ化したウェブサーバーにアクセスする L4 ネットワーク ロードバランサが作成されたことを確認します。
HTTP(S) ロードバランサでは、インスタンスに対する HTTP(S) リクエストの負荷をグローバルに分散できます。あるセットのインスタンスに一部の URL をルーティングし、別のインスタンスには別の URL をルーティングする URL ルールを構成することができます。グループに十分な容量があり、リクエストに適している場合、リクエストは常にユーザーに最も近いインスタンス グループに転送されます。最も近いグループに十分な容量がない場合、リクエストは十分な容量がある最も近いグループに送信されます。
最初に、ヘルスチェックを作成します。ヘルスチェックでは、インスタンスが HTTP トラフィックまたは HTTPS トラフィックにレスポンスするかどうかが確認されます。
gcloud compute http-health-checks create http-basic-check
(出力)
Created [https://www.googleapis.com/compute/v1/projects/...].
NAME HOST PORT REQUEST_PATH
http-basic-check 80 /
HTTP サービスを定義し、ポート名をインスタンス グループの該当するポートにマッピングします。これで、名前を指定したポートに負荷分散サービスがトラフィックを転送できるようになります。
gcloud compute instance-groups managed \
set-named-ports nginx-group \
--named-ports http:80
(出力)
Updated [https://www.googleapis.com/compute/v1/projects/...].
バックエンド サービスを作成します。
gcloud compute backend-services create nginx-backend \
--protocol HTTP --http-health-checks http-basic-check --global
(出力)
Created [https://www.googleapis.com/compute/v1/projects/...].
NAME BACKENDS PROTOCOL
nginx-backend HTTP
バックエンド サービスにインスタンス グループを追加します。
gcloud compute backend-services add-backend nginx-backend \
--instance-group nginx-group \
--instance-group-zone us-central1-a \
--global
(出力)
Updated [https://www.googleapis.com/compute/v1/projects/...].
あらゆるインスタンスへの受信リクエストをすべて振り向けるデフォルトの URL マップを作成します。
gcloud compute url-maps create web-map \
--default-service nginx-backend
(出力)
Created [https://www.googleapis.com/compute/v1/projects/...].
NAME DEFAULT_SERVICE
Web-map nginx-backend
自身の URL マップにリクエストを振り向けるターゲット HTTP プロキシを作成します。
gcloud compute target-http-proxies create http-lb-proxy \
--url-map web-map
(出力)
Created [https://www.googleapis.com/compute/v1/projects/...].
NAME URL_MAP
http-lb-proxy web-map
受信リクエストを処理してルーティングするグローバル転送ルールを作成します。転送ルールにより、IP アドレス、IP プロトコル、ポートの指定に応じて、特定のターゲット HTTP プロキシまたは HTTPS プロキシにトラフィックが送信されるようになります。なお、グローバル転送ルールでは複数のポートはサポートされていません。
gcloud compute forwarding-rules create http-content-rule \
--global \
--target-http-proxy http-lb-proxy \
--ports 80
(出力)
Created [https://www.googleapis.com/compute/v1/projects/...].
グローバル転送ルールの作成後、設定が反映されるまで数分かかることがあります。
gcloud compute forwarding-rules list
(出力)
NAME REGION IP_ADDRESS IP_PROTOCOL TARGET
http-content-rule X.X.X.X TCP http-lb-proxy
nginx-lb us-central1 X.X.X.X TCP us-central1/....
転送ルールの http-content-rule の IP_ADDRESS をメモしておきます。
ブラウザから http://IP_ADDRESS/ に接続できるようになります。これには 3~5 分ほどかかる場合があります。接続できない場合は、少し待ってからブラウザを再読み込みしてください。
ラボの進行状況を確認します。下の [進行状況を確認] をクリックして、L7 HTTP(S) ロードバランサが作成されたことを確認します。
クイズに挑戦して Google Cloud Platform に関する知識をチェックしましょう(正しいものをすべて選択してください)。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください