始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Configure HTTP and health check firewall rules
/ 25
Configure instance templates and instance group
/ 25
Configure the HTTP Load Balancer
/ 25
Blacklist the siege-vm
/ 25
分散型エンタープライズ環境では、レイテンシとセキュリティはしばしば相反する優先事項となります。Google Cloud のグローバル外部アプリケーション ロードバランサは、ユーザー トラフィックを Google エッジ(ポイント オブ プレゼンス)で終端し、Google のプライベート光ファイバー バックボーンを介して、最も健全で最も近いバックエンドにルーティングすることで、この問題に対処します。
これらのバックエンドを保護するために、Google Cloud Armor はエッジでレイヤ 7 フィルタリングと IP 制御を提供します。拒否リストを実装することで、悪意のあるトラフィック(レイヤ 7 フラッドなど)を、Virtual Private Cloud(VPC)に到達する前、またはバックエンドのリソースを消費する前に遮断できます。
このラボでは、グローバルなバックエンドを使ってアプリケーション ロードバランサを構成します。さらに、そのロードバランサに対するストレステストを実施し、Cloud Armor を使ってストレステストの IP アドレスを拒否リストに登録します。
このラボでは、次のタスクの実行方法について学びます。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
ロードバランサはバックエンド インスタンスと通信できる必要があります。このラボでは、ウェブサーバーに Apache を使用しているため、ポート 80 を開く必要があります。
Cloud コンソールで、ナビゲーション メニュー()> [VPC ネットワーク] > [ファイアウォール] に移動します。
[ファイアウォール ルールを作成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| 名前 | default-allow-http |
| ネットワーク | default |
| ターゲット | 指定されたターゲットタグ |
| ターゲットタグ | http-server |
| ソースフィルタ | IPv4 範囲 |
| 送信元 IPv4 範囲 | 0.0.0.0/0 |
| プロトコルとポート | 指定したプロトコルとポート → [TCP] のチェックボックスをオンにして「80」と入力 |
ここでは http-server タグを指定します。この後、VM に http-server タグを適用することで、ネットワークがどのマシンでウェブ トラフィックを受信できるかを正確に把握できるようになります。
ヘルスチェックでは、ロードバランサのどのインスタンスが新しい接続を受け取れるかを判別します。アプリケーション ロード バランシングでは、ロード バランシング インスタンスへのヘルスチェックのプローブが、範囲 130.211.0.0/22 と 35.191.0.0/16 のアドレスから送信されます。ファイアウォール ルールで、この接続を許可する必要があります。
[ファイアウォール ポリシー] ページで、[ファイアウォール ルールを作成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| 名前 | default-allow-health-check |
| ネットワーク | default |
| ターゲット | 指定されたターゲットタグ |
| ターゲットタグ | http-server |
| ソースフィルタ | IPv4 範囲 |
| 送信元 IPv4 範囲 |
130.211.0.0/22、35.191.0.0/16
|
| プロトコルとポート | tcp |
[作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
ウェブサーバーの構築方法を定義する必要があります。これらのサーバーは異なるリージョンに配置されるため、ネットワーク インターフェースのスコープが正しく設定されていることを確認する必要があります。
このテンプレートでは、マシンタイプ、ブートディスク イメージ、サブネット、ラベル、その他のインスタンス プロパティを定義します。
Cloud コンソールで、ナビゲーション メニュー()> [Compute Engine] > [インスタンス テンプレート] に移動して、[インスタンス テンプレートを作成] をクリックします。
[名前] に「
[ロケーション] で [グローバル] を選択します。
[シリーズ] で [E2] を選択します。
[マシンタイプ] で [e2-micro] を選択します。
[詳細オプション] をクリックします。
[ネットワーキング] をクリックします。以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| ネットワーク タグ | http-server |
[ネットワーク インターフェース] で [default] をクリックします。以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| ネットワーク | default |
| サブネットワーク | default |
[完了] をクリックします。
ネットワーク タグの http-server によって、HTTP とヘルスチェックのファイアウォール ルールがこれらのインスタンスに確実に適用されます。
[管理] タブをクリックします。
[メタデータ] で [+ 項目を追加] をクリックし、次の値を指定します。
| キー | 値 |
|---|---|
| startup-script-url | gs://spls/gsp215/gcpnet/httplb/startup.sh |
startup-script-url では、インスタンスの開始時に実行されるスクリプトを指定します。このスクリプトが Apache をインストールして、クライアント IP や、VM インスタンスの名前、リージョン、ゾーンを含めるようスタートページを変更します。こちらのスクリプトを参照してください。
次に、最初のテンプレートを選択して [同様のものを作成] をクリックし、subnet-b 用の別のインスタンス テンプレートを作成します。
マネージド インスタンス グループを
引き続き [Compute Engine] で、左側のメニューの [インスタンス グループ] をクリックします。
[インスタンス グループを作成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| 名前 |
|
| ロケーション | マルチゾーン |
| リージョン | |
| インスタンス テンプレート |
|
| [自動スケーリング] > [自動スケーリングを構成] > [インスタンスの最小数] | 1 |
| インスタンスの最大数 | 2 |
| [自動スケーリング シグナル] > プルダウンをクリック > [シグナルタイプ] | CPU 使用率 |
| CPU 使用率の目標値 | 80、[完了] をクリック |
| 初期化期間 | 45 |
マネージド インスタンス グループには、負荷の増減に基づいて、マネージド インスタンス グループのインスタンスを自動的に追加または削除できる自動スケーリング機能が備わっています。自動スケーリングによってトラフィックの増加をアプリケーションで適切に処理できるようになり、リソースの必要性が低下した場合には費用を抑えることができます。自動スケーリングのポリシーを定義しておけば、測定された負荷に基づいて自動的にスケーリングが実行されます。
同じ手順を繰り返して、2 つ目のインスタンス グループ
[インスタンス グループを作成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| 名前 |
|
| ロケーション | マルチゾーン |
| リージョン | |
| インスタンス テンプレート |
|
| [自動スケーリング] > [自動スケーリングを構成] > [インスタンスの最小数] | 1 |
| インスタンスの最大数 | 2 |
| [自動スケーリング シグナル] > プルダウンをクリック > [シグナルタイプ] | CPU 使用率 |
| CPU 使用率の目標値 | 80、[完了] をクリック |
| 初期化期間 | 45 |
[作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
両方のリージョンで VM インスタンスが作成されていることを確認し、それらの HTTP サイトにアクセスします。
引き続き [Compute Engine] で、左側のメニューの [VM インスタンス] をクリックします。
名前が「
これらのインスタンスはマネージド インスタンス グループに含まれています。
[クライアント IP](自分の IP アドレス)、[ホスト名](
[クライアント IP](自分の IP アドレス)、[ホスト名](
以下のネットワーク図に示されるように、アプリケーション ロードバランサを構成して、2 つのバックエンド(
Cloud コンソールで、ナビゲーション メニュー()> [すべてのプロダクトを表示] > [ネットワーキング] > [ネットワーク サービス] > [ロード バランシング] をクリックします。
[+ ロードバランサを作成] をクリックします。
[アプリケーション ロードバランサ(HTTP / HTTPS)] で [次へ] をクリックします。
[インターネット接続または内部] で [インターネット接続(外部)] を選択し、[次へ] をクリックします。
[グローバルまたはシングル リージョンのデプロイ] で [グローバル ワークロードに最適] を選択し、[次へ] をクリックします。
[ロードバランサの世代] で [グローバル外部アプリケーション ロードバランサ] を選択し、[次へ] をクリックします。
[ロードバランサの作成] で [構成] をクリックします。
[ロードバランサの名前] を http-lb に設定します。
ホストとパスのルールは、トラフィックの振り分け方法を決定します。たとえば、動画のトラフィックと静的トラフィックをそれぞれ異なるバックエンドに振り分けることができます。ただし、このラボではホストとパスのルールは構成しません。
[フロントエンドの構成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| プロトコル | HTTP |
| IP バージョン | IPv4 |
| IP アドレス | エフェメラル |
| ポート | 80 |
[完了] をクリックします。
[フロントエンドの IP とポートを追加] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| プロトコル | HTTP |
| IP バージョン | IPv6 |
| IP アドレス | 自動割り当て |
| ポート | 80 |
[完了] をクリックします。
アプリケーション ロード バランシングは、IPv4 アドレスと IPv6 アドレスのクライアント トラフィックに対応しています。クライアントの IPv6 リクエストはグローバル ロード バランシング層で終端され、IPv4 経由でバックエンドにプロキシされます。
バックエンド サービスは、受信したトラフィックを、接続されている 1 つ以上のバックエンドに振り分けます。各バックエンドは、1 つのインスタンス グループと、処理できる容量に関する追加のメタデータで構成されます。
[バックエンドの構成] をクリックします。
[バックエンド サービスとバックエンド バケット] で、[バックエンド サービスを作成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(指定されたオプションを選択) |
|---|---|
| 名前 | http-backend |
| インスタンス グループ |
|
| ポート番号 | 80 |
| 分散モード | レート |
| 最大 RPS | 50 |
| 容量 | 100 |
この構成は、ロードバランサが
[完了] をクリックします。
[バックエンドを追加] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(指定されたオプションを選択) |
|---|---|
| インスタンス グループ |
|
| ポート番号 | 80 |
| 分散モード | 使用率 |
| バックエンドの最大使用率 | 80 |
| 容量 | 100 |
この構成は、ロードバランサが
[完了] をクリックします。
[ヘルスチェック] で [ヘルスチェックを作成] を選択します。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(指定されたオプションを選択) |
|---|---|
| 名前 | http-health-check |
| プロトコル | TCP |
| ポート | 80 |
ヘルスチェックでは、どのインスタンスが新しい接続を受け付けるかを確認します。この HTTP ヘルスチェックは、5 秒ごとにインスタンスをポーリングし、レスポンスを最大 5 秒間待機して、2 回連続して成功した場合は正常、2 回連続して失敗した場合は異常として処理します。
1」に設定します。[LB_IP_v4]、[LB_IP_v6] と呼びます。[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
バックエンドのためのアプリケーション ロードバランサを作成したので、トラフィックがバックエンド サービスに振り分けられていることを確認します。
アプリケーション ロードバランサへの IPv4 アクセスをテストするには、ブラウザで新しいタブを開いて http://[LB_IP_v4] に移動します。[LB_IP_v4] はロードバランサの IPv4 アドレスに置き換えてください。
ローカル IPv6 アドレスがある場合は、http://[LB_IP_v6] に移動してアプリケーション ロードバランサの IPv6 アドレスも試してください。[LB_IP_v6] はロードバランサの IPv6 アドレスに置き換えてください。
新しい VM を作成し、アプリケーション ロードバランサに対する負荷を siege でシミュレートして、負荷が高くなるとトラフィックが両方のバックエンドに分散されることを確認します。
コンソールで、ナビゲーション メニュー()> [Compute Engine] > [VM インスタンス] に移動します。
[インスタンスを作成] をクリックします。
[マシンの構成] を参照します。
以下の値を選択します。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| 名前 | siege-vm |
| リージョン | |
| ゾーン | |
| シリーズ | E2 |
[LB_IP_v4] はロードバランサの IPv4 アドレスに置き換えてください。Cloud コンソールで、ナビゲーション メニュー()> [すべてのプロダクトを表示] > [ネットワーキング] > [ネットワーク サービス] > [ロード バランシング] をクリックします。
[バックエンド] をクリックします。
[http-backend] をクリックします。
[http-lb] に移動します。
[モニタリング] タブをクリックします。
北アメリカと 2 つのバックエンドの間のフロントエンド ロケーション(受信トラフィック合計)を 2~3 分間モニタリングします。
最初はトラフィックが
これで、デフォルトではトラフィックが最も近いバックエンドに振り分けられ、負荷が非常に高くなるとバックエンド間で分散されることがわかりました。
出力は次のようになります。
Cloud Armor を使用して siege-vm を拒否リストに登録し、この VM インスタンスがアプリケーション ロードバランサにアクセスできないようにします。
Cloud Armor セキュリティ ポリシーを作成し、siege-vm に対する拒否リストルールを設定します。
[SIEGE_IP] と呼びます。Cloud コンソールで、ナビゲーション メニュー()> [すべてのプロダクトを表示] > [ネットワーキング] > [ネットワーク セキュリティ] > [Cloud Armor ポリシー] をクリックします。
[+ ポリシーを作成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| 名前 | denylist-siege |
| デフォルトのルール アクション | 許可 |
[次のステップ] をクリックします。
[ルールの追加] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
| プロパティ | 値(値を入力するか、指定されたオプションを選択) |
|---|---|
| 条件 > 一致 | SIEGE_IP を入力 |
| アクション | 拒否 |
| レスポンス コード | 403(アクセス拒否) |
| 優先度 | 1000 |
[ルールの変更を保存] をクリックします。
[次のステップ] をクリックします。
[ターゲットを追加] をクリックします。
[タイプ] で [バックエンド サービス(外部アプリケーション ロードバランサ)] を選択します。
[バックエンド サービス] で [http-backend] を選択し、プロンプトが表示されたら [置き換える] をクリックして確定します。
[ポリシーを作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
siege-vm がアプリケーション ロードバランサにアクセスできなくなったことを確認します。
出力は次のようになります。
http://[LB_IP_v4] に移動します。[LB_IP_v4] はロードバランサの IPv4 アドレスに置き換えてください。このコマンドでは何も出力されません。
セキュリティ ポリシーのログを調べて、このトラフィックもブロックされているかどうかを確認します。
リクエストの送信元が siege-vm の IP アドレスになっているはずです。そうでない場合は、別のログエントリを開きます。
DENY、[name] が denylist-siege になっています。Cloud Armor セキュリティ ポリシーによって作成されるログを調べると、トラフィックが拒否または許可された日時や、トラフィックの送信元を特定できます。
Cloud Armor の基本コンセプトについては、Cloud Armor のドキュメントをご覧ください。
Cloud Load Balancing の詳細については、Cloud Load Balancing のドキュメントをご覧ください。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2026 年 3 月 12 日
ラボの最終テスト日: 2026 年 2 月 25 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください