arrow_back

Cloud Armor を使用した HTTP ロードバランサ

ログイン 参加
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

Cloud Armor を使用した HTTP ロードバランサ

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

GSP215

Google Cloud セルフペース ラボ

概要

Google Cloud HTTP(S) ロード バランシングは、世界中の Google のポイント オブ プレゼンス(POP)で Google ネットワークのエッジに実装されています。HTTP(S) ロードバランサを送信先とするユーザー トラフィックは、ユーザーに最も近い POP に入った後、Google のグローバル ネットワークでロードバランスされて、十分な容量がある最も近いバックエンドに送られます。

Cloud Armor の IP の許可リスト / 拒否リストを使用すると、ユーザーや悪意のあるトラフィックにできるだけ近い Google Cloud のエッジで、HTTP(S) ロードバランサへのアクセスを制限または許可できます。これにより、悪意のあるユーザーまたはトラフィックがリソースを消費したり、Virtual Private Cloud(VPC)ネットワークに侵入したりすることを防止できます。

次の図に示されるように、このラボではグローバルなバックエンドを使って HTTP ロードバランサを構成します。さらに、そのロードバランサに対するストレステストを実施し、Cloud Armor を使ってストレステストの IP アドレスを拒否リストに登録します。

ロード バランシングを示すネットワーク図

目標

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

  • HTTP とヘルスチェックのファイアウォール ルールを作成する
  • インスタンス テンプレートを 2 つ構成する
  • マネージド インスタンス グループを 2 つ作成する
  • HTTP ロードバランサを IPv4 と IPv6 で構成する
  • HTTP ロードバランサのストレステストを実施する
  • IP アドレスを拒否リストに登録して HTTP ロードバランサへのアクセスを制限する

設定と要件

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

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、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 のプロダクトやサービスのリストを含むメニューを表示するには、左上のナビゲーション メニューをクリックします。ナビゲーション メニュー アイコン

タスク 1. HTTP とヘルスチェックのファイアウォール ルールを構成する

バックエンドへの HTTP トラフィックと Google Cloud ヘルス チェッカーからの TCP トラフィックを許可するファイアウォール ルールを構成します。

HTTP ファイアウォール ルールを作成する

バックエンドへの HTTP トラフィックを許可するファイアウォール ルールを作成します。

  1. Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン) > [VPC ネットワーク] > [ファイアウォール] に移動します。

  2. すでに ICMP内部RDPSSH のファイアウォール ルールが存在します。

    各 Google Cloud プロジェクトには、default ネットワークとこれらのファイアウォール ルールが始めから用意されています。

  3. [ファイアウォール ルールを作成] をクリックします。

  4. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 default-allow-http
    ネットワーク default
    ターゲット 指定されたターゲットタグ
    ターゲットタグ http-server
    ソースフィルタ IPv4 範囲
    送信元 IPv4 範囲 0.0.0.0/0
    プロトコルとポート プロトコルとポートを指定し、[TCP] のチェックボックスをオンにして「80」と入力

すべてのネットワークを指定するために、[送信元 IPv4 範囲] には /0 を含めます。

  1. [作成] をクリックします。

ヘルスチェックのファイアウォール ルールを作成する

ヘルスチェックでは、ロードバランサのどのインスタンスが新しい接続を受け取れるかを確認します。HTTP ロード バランシングでは、ロードバランスされたインスタンスへのヘルスチェックのプローブが、130.211.0.0/2235.191.0.0/16 の範囲のアドレスから送信されます。ファイアウォール ルールで、この接続を許可する必要があります。

  1. [ファイアウォール ポリシー] ページで、[ファイアウォール ルールを作成] をクリックします。

  2. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 default-allow-health-check
    ネットワーク default
    ターゲット 指定されたターゲットタグ
    ターゲットタグ http-server
    ソースフィルタ IPv4 範囲
    送信元 IPv4 範囲 130.211.0.0/2235.191.0.0/16
    プロトコルとポート プロトコルとポートを指定し、[TCP] のチェックボックスをオンにする
    注: 2 つの送信元 IPv4 範囲は 1 つずつ入力し、区切りには Space キーを使用します。
  3. [作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 HTTP とヘルスチェックのファイアウォール ルールを構成する

タスク 2. インスタンス テンプレートを構成し、インスタンス グループを作成する

マネージド インスタンス グループは、インスタンス テンプレートを使用して同一インスタンスのグループを作成します。これらを使用して、HTTP ロードバランサのバックエンドを作成します。

インスタンス テンプレートを構成する

インスタンス テンプレートは、VM インスタンスとマネージド インスタンス グループの作成に使用する API リソースです。 このテンプレートでは、マシンタイプ、ブートディスク イメージ、サブネット、ラベル、その他のインスタンス プロパティを定義します。

のインスタンス テンプレートを 1 つずつ作成します。

  1. Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン) > [Compute Engine] > [インスタンス テンプレート] に移動して、[インスタンス テンプレートを作成] をクリックします。

  2. [名前] に「-template」と入力します。

  3. [ロケーション] で [グローバル] を選択します。

  4. [シリーズ] で [E2] を選択します。

  5. [マシンタイプ] で [e2-micro] を選択します。

  6. [詳細オプション] をクリックします。

  7. [ネットワーキング] をクリックします。以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    ネットワーク タグ http-server
  8. [ネットワーク インターフェース] で [default] をクリックします。以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    ネットワーク default
    サブネットワーク default

    [完了] をクリックします。

ネットワーク タグの http-server によって、HTTPヘルスチェックのファイアウォール ルールがこれらのインスタンスに確実に適用されます。

  1. [管理] タブをクリックします。

  2. [メタデータ] で [+ 項目を追加] をクリックし、次の値を指定します。

    キー
    startup-script-url gs://cloud-training/gcpnet/httplb/startup.sh

startup-script-url は、インスタンスの開始時に実行されるスクリプトを指定します。このスクリプトが Apache をインストールして、クライアント IP や、VM インスタンスの名前、リージョン、ゾーンを含めるようスタートページを変更します。こちらのスクリプトを参照してください。

  1. [作成] をクリックします。
  2. インスタンス テンプレートの作成が完了するまで待ちます。

次に、-template をコピーして、subnet-b のインスタンス テンプレートを新たに 1 つ作成します。

  1. [-template] をクリックし、上部の [+同様のものを作成] オプションをクリックします。
  2. [名前] に「-template」と入力します。
  3. [ロケーション] で [グローバル] が選択されていることを確認します。
  4. [詳細オプション] をクリックします。
  5. [ネットワーキング] をクリックします。
  6. [ネットワーク タグ]に「http-server」と入力します。
  7. [ネットワーク インターフェース] の [サブネットワーク] でデフォルト(を選択します。
  8. [完了] をクリックします。
  9. [作成] をクリックします。

マネージド インスタンス グループを作成する

マネージド インスタンス グループを に 1 つ、 に 1 つ作成します。

  1. 引き続き [Compute Engine] で、左側のメニューの [インスタンス グループ] をクリックします。

  2. [インスタンス グループの作成] をクリックします。

  3. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 -mig(必要に応じて、名前から余分なスペースを削除してください)
    インスタンス テンプレート -template
    ロケーション マルチゾーン
    リージョン
    インスタンスの最小数 1
    インスタンスの最大数 2
    Autoscaling signals > プルダウンをクリック > シグナルタイプ CPU 使用率
    CPU 使用率の目標値 80、[完了] をクリック
    初期化期間 45

マネージド インスタンス グループには、負荷の増減に基づいて、マネージド インスタンス グループのインスタンスを自動的に追加または削除できる自動スケーリング機能が備わっています。自動スケーリングにより、アプリケーションはトラフィックの増加を適切に処理することができ、必要なリソース量が少ないときには費用を抑えることができます。自動スケーリングのポリシーを定義しておけば、測定した負荷に基づいてオートスケーラーで自動スケーリングが実行されます。

  1. [作成] をクリックします。

同じ手順を繰り返して、2 つ目のインスタンス グループ -mig に作成します。

  1. [インスタンス グループを作成] をクリックします。

  2. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 -mig
    インスタンス テンプレート -template
    ロケーション マルチゾーン
    リージョン
    インスタンスの最小数 1
    インスタンスの最大数 2
    Autoscaling signals > プルダウンをクリック > シグナルタイプ CPU 使用率
    CPU 使用率の目標値 80、[完了] をクリック
    初期化期間 45
  3. [作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 インスタンス テンプレートとインスタンス グループを構成する

バックエンドを確認する

両方のリージョンで VM インスタンスが作成されていることを確認し、それらの HTTP サイトにアクセスします。

  1. 引き続き [Compute Engine] で、左側のメニューの [VM インスタンス] をクリックします。

  2. 名前が「-mig」で始まるインスタンスと「-mig」で始まるインスタンスが存在します。

    これらのインスタンスはマネージド インスタンス グループに含まれています。

  3. -mig のインスタンスの [外部 IP] をクリックします。

    [クライアント IP](自分の IP アドレス)、[ホスト名](-mig で始まるもの)、[サーバーのロケーション]( のゾーン)が表示されるはずです。

  4. -mig のインスタンスの [外部 IP] をクリックします。

    [クライアント IP](自分の IP アドレス)、[ホスト名](-mig で始まるもの)、[サーバーのロケーション]( のゾーン)が表示されるはずです。

注: [ホスト名] と [サーバーのロケーション] から、HTTP ロードバランサのトラフィックの送信先がわかります。

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

以下のネットワーク図に示されるように、HTTP ロードバランサを構成して、2 つのバックエンド(-mig-mig)間でトラフィックを分散します。

ロード バランシングを示すネットワーク図

構成を開始する

  1. Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン)> [ネットワーク サービス] > [ロード バランシング] をクリックします。

  2. [ロードバランサを作成] をクリックします。

  3. [アプリケーション ロードバランサ HTTP(S)] で [次へ] をクリックします。

  4. [インターネット接続または内部] で [インターネット接続(外部)] を選択し、[次へ] をクリックします。

  5. [グローバルまたはシングル リージョンのデプロイ] で [グローバル ワークロードに最適] を選択し、[次へ] をクリックします。

  6. [ロードバランサを作成] で [構成] をクリックします。

  7. 新しい HTTP(S) ロードバランサの名前として「http-lb」と入力します。

フロントエンドを構成する

ホストとパスのルールによって、トラフィックの転送方法が決定されます。たとえば、動画のトラフィックと静的トラフィックをそれぞれ異なるバックエンドに転送できます。ただし、このラボではホストとパスのルールは構成しません。

  1. [フロントエンドの構成] をクリックします。

  2. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    プロトコル HTTP
    IP バージョン IPv4
    IP アドレス エフェメラル
    ポート 80
  3. [完了] をクリックします。

  4. [フロントエンドの IP とポートを追加] をクリックします。

  5. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    プロトコル HTTP
    IP バージョン IPv6
    IP アドレス 自動割り当て
    ポート 80
  6. [完了] をクリックします。

HTTP(S) ロード バランシングは、IPv4 アドレスと IPv6 アドレスのクライアント トラフィックに対応しています。クライアントの IPv6 リクエストはグローバル ロード バランシング層で終端され、IPv4 経由でバックエンドにプロキシされます。

バックエンドを構成する

バックエンド サービスによって、受信トラフィックが、接続されている 1 つ以上のバックエンドに振り向けられます。各バックエンドは、1 つのインスタンス グループと、追加の提供容量メタデータで構成されます。

  1. [バックエンドの構成] をクリックします。

  2. [バックエンド サービスとバックエンド バケット] で、[バックエンド サービスを作成] をクリックします。

  3. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(指定されたオプションを選択)
    名前 http-backend
    インスタンス グループ -mig
    ポート番号 80
    分散モード レート
    最大 RPS 50
    容量 100

この構成は、ロードバランサが -mig の各インスタンスの 1 秒あたりのリクエスト数(RPS)を 50 以下に維持しようとすることを意味します。

  1. [完了] をクリックします。

  2. [バックエンドを追加] をクリックします。

  3. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(指定されたオプションを選択)
    インスタンス グループ -mig
    ポート番号 80
    分散モード 使用率
    バックエンドの最大使用率 80
    容量 100

この構成は、ロードバランサが -mig の各インスタンスの CPU 使用率を 80% 以下に維持しようとすることを意味します。

  1. [完了] をクリックします。

  2. [ヘルスチェック] で [ヘルスチェックを作成] を選択します。

  3. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(指定されたオプションを選択)
    名前 http-health-check
    プロトコル TCP
    ポート 80

ヘルスチェックでは、どのインスタンスが新しい接続を受け取れるかを確認します。この HTTP ヘルスチェックは、5 秒ごとにインスタンスをポーリングし、レスポンスを最大 5 秒間待機して、2 回連続して成功した場合は成功、2 回連続して失敗した場合は失敗として処理します。

  1. [保存] をクリックします。
  2. [ロギングを有効にする] チェックボックスをオンにします。
  3. [サンプルレート] を「1」に設定します。
  4. [作成] をクリックすると、バックエンド サービスが作成されます。
  5. [OK] をクリックします。

HTTP ロードバランサを確認して作成する

  1. [確認と完了] をクリックします。
  2. [バックエンド] サービスと [フロントエンド] サービスを確認します。
  3. [作成] をクリックします。
  4. ロードバランサの作成が完了するまで待ちます。
  5. ロードバランサの名前(http-lb)をクリックします。
  6. 次のタスクのために、ロードバランサの IPv4 アドレスと IPv6 アドレスをメモしておきます。これ以降は、これらのアドレスをそれぞれ [LB_IP_v4][LB_IP_v6] と呼びます。
注: 16 進数形式のアドレスが IPv6 アドレスです。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 HTTP ロードバランサを構成する

タスク 4. HTTP ロードバランサをテストする

バックエンドのための HTTP ロードバランサを作成できたので、トラフィックがバックエンド サービスに転送されるかどうかを確認します。

HTTP ロードバランサにアクセスする

HTTP ロードバランサへの IPv4 アクセスをテストするには、ブラウザで新しいタブを開いて http://[LB_IP_v4] に移動します。[LB_IP_v4] はロードバランサの IPv4 アドレスに置き換えてください。

注: HTTP ロードバランサへのアクセスには最大で 5 分ほどかかることがあります。その間に 404 エラーまたは 502 エラーが表示される場合があります。いずれかのバックエンドのページが表示されるまで繰り返し試してください。 注: への近さに応じて、トラフィックが -mig インスタンスまたは -mig インスタンスに転送されます。

ローカル IPv6 アドレスがある場合は、http://[LB_IP_v6] に移動して HTTP ロードバランサの IPv6 アドレスも試してください。[LB_IP_v6] はロードバランサの IPv6 アドレスに置き換えてください。

HTTP ロードバランサのストレステストを実施する

新しい VM を作成し、HTTP ロードバランサに対する負荷を siege でシミュレートして、負荷が高くなるとトラフィックが両方のバックエンドに分散されることを確認します。

  1. コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン)> [Compute Engine] > [VM インスタンス] に移動します。

  2. [インスタンスを作成] をクリックします。

  3. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 siege-vm
    リージョン
    ゾーン
    シリーズ E2

よりも のほうに近いため、負荷が高すぎる場合を除いてトラフィックは -mig のみに転送されるはずです。

  1. [作成] をクリックします。
  2. siege-vm インスタンスの作成が完了するまで待ちます。
  3. siege-vm で [SSH] をクリックし、ターミナルを起動して接続します。
  4. 次のコマンドを実行して siege をインストールします。
sudo apt-get -y install siege
  1. 次のコマンドを実行して、HTTP ロードバランサの IPv4 アドレスを環境変数に保存します。[LB_IP_v4] はロードバランサの IPv4 アドレスに置き換えてください。
export LB_IP=[LB_IP_v4]
  1. 次のコマンドを実行して負荷をシミュレートします。
siege -c 150 -t120s http://$LB_IP
  1. Google Cloud コンソールの ナビゲーション メニューナビゲーション メニュー アイコン)で、[ネットワーク サービス] > [ロード バランシング] をクリックします。
  2. [バックエンド] をクリックします。
  3. [http-backend] をクリックします。
  4. [http-lb] に移動します。
  5. [モニタリング] タブをクリックします。
  6. 北アメリカと 2 つのバックエンドの間のフロントエンドの場所(合計受信トラフィック)を 2~3 分間モニタリングします。

最初はトラフィックが -mig のみに転送されていますが、RPS が増加すると にも転送されるようになります。

これで、デフォルトではトラフィックが最も近いバックエンドに転送され、負荷が非常に高くなるとバックエンド間で分散されることがわかりました。

  1. siege-vmSSH ターミナルに戻ります。
  2. siege が実行中の場合は Ctrl+C キーを押して停止します。

出力は次のようになります。

New configuration template added to /home/student-02-dd02c94b8808/.siege Run siege -C to view the current settings in that file { "transactions": 24729, "availability": 100.00, "elapsed_time": 119.07, "data_transferred": 3.77, "response_time": 0.66, "transaction_rate": 207.68, "throughput": 0.03, "concurrency": 137.64, "successful_transactions": 24729, "failed_transactions": 0, "longest_transaction": 10.45, "shortest_transaction": 0.03 }

タスク 5. siege-vm を拒否リストに登録する

Cloud Armor を使用して siege-vm を拒否リストに登録し、この VM インスタンスが HTTP ロードバランサにアクセスできないようにします。

セキュリティ ポリシーを作成する

Cloud Armor セキュリティ ポリシーを作成し、siege-vm に対する拒否リストルールを設定します。

  1. コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン)> [Compute Engine] > [VM インスタンス] に移動します。
  2. siege-vm外部 IP をメモします。以降はこれを [SIEGE_IP] と呼びます。
注: HTTP ロードバランサにアクセスしようとしているクライアントの外部 IP アドレスを特定するには、いくつかの方法があります。たとえば、BigQuery の VPC フローログに記録されたトラフィックを調べると、大量の受信リクエストを特定できます。
  1. Cloud コンソールで、ナビゲーション メニュー > [ネットワーク セキュリティ] > [Cloud Armor ポリシー] に移動します。

  2. [ポリシーの作成] をクリックします。

  3. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 denylist-siege
    デフォルトのルール アクション 許可
  4. [次のステップ] をクリックします。

  5. [ルールの追加] をクリックします。

  6. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    条件 > 一致 SIEGE_IP を入力
    アクション 拒否
    レスポンス コード 403(アクセス拒否)
    優先度 1000
  7. [完了] をクリックします。

  8. [次のステップ] をクリックします。

  9. [ターゲットを追加] をクリックします。

  10. [タイプ] で [バックエンド サービス(外部アプリケーション ロードバランサ)] を選択します。

  11. [ターゲット] で [http-backend] を選択します。

  12. [ポリシーの作成] をクリックします。

注: デフォルトのルールを [拒否] に設定したうえで、承認されたユーザー(IP アドレス)からのトラフィックのみを許可リストに登録する(許可する)こともできます。
  1. ポリシーの作成が完了するまで待ってから次のステップに進みます。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 siege-vm を拒否リストに登録する

セキュリティ ポリシーを確認する

siege-vm が HTTP ロードバランサにアクセスできなくなったことを確認します。

  1. siege-vmSSH ターミナルに戻ります。
  2. ロードバランサにアクセスするには次のコマンドを実行します。
curl http://$LB_IP

出力は次のようになります。

<!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden 注: セキュリティ ポリシーが有効になるまでに数分かかる場合があります。バックエンドにアクセスできた場合は、403 Forbidden エラーが表示されるまで繰り返し試してください。
  1. ブラウザで新しいタブを開いて http://[LB_IP_v4] に移動します。[LB_IP_v4] はロードバランサの IPv4 アドレスに置き換えてください。
注: デフォルトのルールでトラフィックが許可されているため、ブラウザからは HTTP ロードバランサにアクセスできます。siege-vm からアクセスできないのは、先ほど拒否ルールを実装したからです。
  1. siege-vm の SSH ターミナルに戻り、次のコマンドを実行して負荷をシミュレートします。
siege -c 150 -t120s http://$LB_IP

このコマンドでは何も出力されません。

セキュリティ ポリシーのログを調べて、このトラフィックもブロックされているかどうかを確認します。

  1. コンソールで、ナビゲーション メニュー > [ネットワーク セキュリティ] > [Cloud Armor ポリシー] に移動します。
  2. [denylist-siege] をクリックします。
  3. [ログ] をクリックします。
  4. [ポリシーログを表示] をクリックします。
  5. [ロギング] ページで [クエリのプレビュー] のテキストすべてを削除します。[アプリケーション ロードバランサ] > [http-lb-forwarding-rule] > [http-lb] でリソースを選択し、[適用] をクリックします。
  6. [クエリを実行] をクリックします。
  7. [クエリ結果] でログエントリを展開します。
  8. [httpRequest] を展開します。

リクエストの送信元が siege-vm の IP アドレスになっているはずです。そうでない場合は、別のログエントリを展開します。

  1. [jsonPayload] を展開します。
  2. [enforcedSecurityPolicy] を展開します。
  3. [configuredAction] が DENY、[name] が denylist-siege になっています。

[クエリ結果] ページ

Cloud Armor セキュリティ ポリシーによって作成されるログを調べると、トラフィックが拒否または許可された日時や、トラフィックの送信元を特定できます。

お疲れさまでした

のバックエンドを使用して HTTP ロードバランサを構成しました。次に、VM を使用してロードバランサのストレステストを実施し、Cloud Armor でこの VM の IP アドレスを拒否リストに登録しました。 最後に、セキュリティ ポリシーのログを調べて、トラフィックがブロックされた理由を特定しました。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2024 年 4 月 18 日

ラボの最終テスト日: 2024 年 4 月 18 日

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

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

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

ありがとうございます。

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