![](https://cdn.qwiklabs.com/assets/labs/start_lab-f45aca49782d4033c3ff688160387ac98c66941d.png)
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you restart it, you'll have to start from the beginning.
- On the top left of your screen, click Start lab to begin
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 のポイント オブ プレゼンス(POP)で Google ネットワークのエッジに実装されています。アプリケーション ロードバランサを送信先とするユーザー トラフィックは、ユーザーに最も近い POP に入った後、Google のグローバル ネットワークでロードバランスされて、十分な容量がある最も近いバックエンドに送られます。
Cloud Armor の IP の許可リスト / 拒否リストを使用すると、ユーザーや悪意のあるトラフィックにできるだけ近い Google Cloud のエッジで、アプリケーション ロードバランサへのアクセスを制限または許可できます。これにより、悪意のあるユーザーまたはトラフィックがリソースを消費したり、Virtual Private Cloud(VPC)ネットワークに侵入したりすることを防止できます。
以下の図に示されるように、このラボではグローバルなバックエンドを使ってアプリケーション ロードバランサを構成します。さらに、そのロードバランサに対するストレステストを実施し、Cloud Armor を使ってストレステストの IP アドレスを拒否リストに登録します。
このラボでは、次のタスクの実行方法について学びます。
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] パネルでも [ユーザー名] を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] パネルでも [パスワード] を確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
バックエンドへの HTTP トラフィックと Google Cloud ヘルス チェッカーからの TCP トラフィックを許可するファイアウォール ルールを構成します。
バックエンドへの HTTP トラフィックを許可するファイアウォール ルールを作成します。
Cloud コンソールで、ナビゲーション メニュー() > [VPC ネットワーク] > [ファイアウォール] に移動します。
すでに ICMP、内部、RDP、SSH のファイアウォール ルールが存在します。
各 Google Cloud プロジェクトには、default ネットワークとこれらのファイアウォール ルールが始めから用意されています。
[ファイアウォール ルールを作成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | default-allow-http |
ネットワーク | default |
ターゲット | 指定されたターゲットタグ |
ターゲットタグ | http-server |
ソースフィルタ | IPv4 範囲 |
送信元 IPv4 範囲 | 0.0.0.0/0 |
プロトコルとポート | プロトコルとポートを指定し、[TCP] のチェックボックスをオンにして「80」と入力 |
すべてのネットワークを指定するために、[送信元 IPv4 範囲] には /0 を含めます。
ヘルスチェックでは、ロードバランサのどのインスタンスが新しい接続を受け取れるかを確認します。アプリケーション ロード バランシングでは、ロード バランシング インスタンスへのヘルスチェックのプローブが、範囲 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] のチェックボックスをオンにする |
[作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。
マネージド インスタンス グループは、インスタンス テンプレートを使用して同一インスタンスのグループを作成します。これらを使用して、アプリケーション ロードバランサのバックエンドを作成します。
インスタンス テンプレートは、VM インスタンスとマネージド インスタンス グループの作成に使用する API リソースです。 このテンプレートでは、マシンタイプ、ブートディスク イメージ、サブネット、ラベル、その他のインスタンス プロパティを定義します。
Cloud コンソールで、ナビゲーション メニュー() > [Compute Engine] > [インスタンス テンプレート] に移動して、[インスタンス テンプレートを作成] をクリックします。
[名前] に「
[ロケーション] で [グローバル] を選択します。
[シリーズ] で [E2] を選択します。
[マシンタイプ] で [e2-micro] を選択します。
[詳細オプション] をクリックします。
[ネットワーキング] をクリックします。以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
ネットワーク タグ | http-server |
[ネットワーク インターフェース] で [default] をクリックします。以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
ネットワーク | default |
サブネットワーク | default |
[完了] をクリックします。
ネットワーク タグの http-server によって、HTTP とヘルスチェックのファイアウォール ルールがこれらのインスタンスに確実に適用されます。
[管理] タブをクリックします。
[メタデータ] で [+ 項目を追加] をクリックし、次の値を指定します。
キー | 値 |
---|---|
startup-script-url | gs://cloud-training/gcpnet/httplb/startup.sh |
startup-script-url
は、インスタンスの開始時に実行されるスクリプトを指定します。このスクリプトが Apache をインストールして、クライアント IP や、VM インスタンスの名前、リージョン、ゾーンを含めるようスタートページを変更します。こちらのスクリプトを参照してください。
次に、
マネージド インスタンス グループを
引き続き [Compute Engine] で、左側のメニューの [インスタンス グループ] をクリックします。
[インスタンス グループの作成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 |
|
インスタンス テンプレート |
|
ロケーション | マルチゾーン |
リージョン | |
インスタンスの最小数 | 1 |
インスタンスの最大数 | 2 |
Autoscaling signals > プルダウンをクリック > シグナルタイプ | CPU 使用率 |
CPU 使用率の目標値 | 80、[完了] をクリック |
初期化期間 | 45 |
マネージド インスタンス グループには、負荷の増減に基づいて、マネージド インスタンス グループのインスタンスを自動的に追加または削除できる自動スケーリング機能が備わっています。自動スケーリングにより、アプリケーションはトラフィックの増加を適切に処理することができ、必要なリソース量が少ないときには費用を抑えることができます。自動スケーリングのポリシーを定義しておけば、測定した負荷に基づいてオートスケーラーで自動スケーリングが実行されます。
同じ手順を繰り返して、2 つ目のインスタンス グループ
[インスタンス グループを作成] をクリックします。
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 |
|
インスタンス テンプレート |
|
ロケーション | マルチゾーン |
リージョン | |
インスタンスの最小数 | 1 |
インスタンスの最大数 | 2 |
Autoscaling signals > プルダウンをクリック > シグナルタイプ | CPU 使用率 |
CPU 使用率の目標値 | 80、[完了] をクリック |
初期化期間 | 45 |
[作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。
両方のリージョンで VM インスタンスが作成されていることを確認し、それらの HTTP サイトにアクセスします。
引き続き [Compute Engine] で、左側のメニューの [VM インスタンス] をクリックします。
名前が「
これらのインスタンスはマネージド インスタンス グループに含まれています。
[クライアント IP](自分の IP アドレス)、[ホスト名](
[クライアント IP](自分の IP アドレス)、[ホスト名](
以下のネットワーク図に示されるように、アプリケーション ロードバランサを構成して、2 つのバックエンド(
Cloud コンソールで、ナビゲーション メニュー()> [すべてのプロダクトを表示] > [ネットワーキング] > [ネットワーク サービス] > [ロード バランシング] をクリックします。
[ロードバランサの作成] をクリックします。
[アプリケーション ロードバランサ HTTP(S)] で [次へ] をクリックします。
[インターネット接続または内部] で [インターネット接続(外部)] を選択し、[次へ] をクリックします。
[グローバルまたはシングル リージョンのデプロイ] で [グローバル ワークロードに最適] を選択し、[次へ] をクリックします。
[ロードバランサの作成] で [構成] をクリックします。
[ロードバランサの名前] を 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 テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 10 月 24 日
ラボの最終テスト日: 2024 年 4 月 18 日
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。