ユースケース: ネットワーク パフォーマンスの監査

負荷分散された複数のアプリケーションを含むネットワークをサポートしている、ネットワーク管理者になった場合を考えます。このようなアプリケーションをサポートするネットワーク構成を監査して、構成がネットワークの予測される状態と一致することを確認するように求められました。この監査を行うことで、アプリケーションのレイテンシが可能な限り低く抑えられているかを確認できます。

次のユースケースでは、ネットワーク トポロジが既存の構成の確認にどのように役立つかを示します。たとえば、すべてのクライアント リクエストが、クライアントに最も近い Google Cloud リージョンにあるアプリケーション インスタンスによって処理されていることを確認できます。また、トラフィックがグローバルにデータを複製するデータベースから来ているために、リージョン間トラフィックが低く抑えられていることも確認できます。

トポロジの概要

このデプロイメントは 3 つの Google Cloud リージョン(us-central1europe-west1asia-east1)にまたがっています。すべての外部クライアント リクエストは、3 つの各リージョンに複数のバックエンドを持つ単一の外部アプリケーション ロードバランサによって処理されます。3 つのビジネス リージョン(Americas、EMEA、APAC)のいずれかからのクライアント リクエストは、最も近い Google Cloud リージョンのアプリケーション インスタンスによって処理されます。

次のグラフは、デプロイメントの最上位階層を示しています。

リソースおよびトラフィック パス

この例では、プロジェクトに以下の Google Cloud リソースが含まれています。

  • 1 個の HTTPS ロードバランサ

  • 4 個のバックエンド サービス(browseshopping_cartcheckoutfeeds

  • 12 個のインスタンス グループ(ロードバランサのバックエンド)

    3 つのリージョンのそれぞれのバックエンド サービスごとに 1 個のインスタンス グループがあります。

  • 3 個のデータベース インスタンス(各リージョンに 1 つずつ)。

特定の国からのトラフィックは、次のロケーションに到達すると想定されます。

  • Americas ビジネス リージョンの国からのトラフィックは、us-central1 リージョンのバックエンドに送られます。たとえば、カナダの外部クライアントからのトラフィックは、ロードバランサを経由して us-central1 リージョンの checkout バックエンドに送られます。
  • EMEA ビジネス リージョンの国からのトラフィックは、europe-west1 リージョンのバックエンドに送られます。たとえば、ポーランドの外部クライアントからのトラフィックは、ロードバランサを経由して europe-west1 リージョンの checkout バックエンドに送られます。
  • APAC ビジネス リージョンの国からのトラフィックは、asia-east1 リージョンのバックエンドに送られます。たとえば、日本の外部クライアントからのトラフィックは、ロードバランサを経由して asia-east1 リージョンの checkout バックエンドに送られます。
  • データベース インスタンスへのトラフィックは、同じリージョンのバックエンドから送信されます。たとえば、asia-east1 のバックエンドは、asia-east1 のデータベース インスタンスにのみデータを送信します。
  • リージョン間トラフィックはデータベース レプリケーションに制限されます。たとえば、us-central1europe-west1 の間のトラフィックは、それらのリージョンのデータベース インスタンス間のみを移動します。

予期しないトラフィック フロー

このシナリオでは、EMEA ビジネス リージョンからのトラフィックが、2 つの異なる Google Cloud リージョン(us-central1europe-west1)に送信されていることがわかります。ネットワーク トポロジを使用すると、バックエンドの 1 つが過剰に使用されていることがわかります。

  1. ロードバランサを通過する外部トラフィックが最終的に正しい Google Cloud リージョンに送信されることを確認するとします。グラフをフィルタリングして、外部ロードバランサ shopping-site-lb のトラフィックのみを表示します。

    フィルタを適用すると、次の例に示すように、ネットワーク トポロジがロードバランサに関連する接続のみを表示します。

  2. それぞれのビジネス リージョンにポインタを合わせて、それぞれのリージョンへの通信を強調表示します。

    ポインタを AmericasAPAC の上に置くと、最も近い Google Cloud リージョン(それぞれ us-central1asia- east1)に向かうトラフィックが表示されます。一方、ポインタを EMEA に合わせると、us-central1europe-west1 へのトラフィックが表示されます。理想的には、レイテンシを減らすために EMEA からのすべてのトラフィックを europe-west1 に送信する必要があります。

  3. 次に、[EMEA] をクリックして、EMEA と Google Cloud リージョン間のスループットを調べます。ネットワーク トポロジが、各接続の帯域幅の値をオーバーレイします。1 秒あたり約 0.58 バイトが us-central1 に、29.9 キロバイト/秒が europe-west1 に送信されます。ほとんどのトラフィックは予想どおりに転送されていますが、一部のトラフィックは us-central1 に流れています。

    1この図は参考用です。この図のデータはユースケースを反映していません。

  4. さらに調べるために、us-central1 を展開してトラフィックの行き先を表示します。このリージョンには単一のサブネットを持つネットワークが 1 つしかないため、ネットワーク トポロジは階層におけるこのレベルを表示せず、インスタンス グループまでスキップします。

    トラフィックは、ロードバランサのバックエンド サービスに関連付けられているインスタンス グループに送信されていることがわかります。europe-west1 へ送信されるトラフィックは比較的少量であるため、europe-west1 のリソースが過剰に使用されてトラフィックが us-central1 にオーバーフローする可能性があります。

    1この図は参考用です。この図のデータはユースケースを反映していません。

  5. 同じロードバランサのバックエンド サービスに関連付けられているインスタンスに到達するまで europe-west1 リージョンを展開して、結果を確認します。 ネットワーク トポロジが、インスタンスの詳細ペインに時系列グラフを表示します。

    グラフから、インスタンスの CPU 使用率が 81% であることがわかります。この例のしきい値は 80% であり、インスタンスのオーバーサブスクリプションが発生していることがわかります。この問題を解決するには、インスタンス グループをスケールアップして、トラフィックが理想的なフローに戻るようにします。

    1この図は参考用です。この図のデータはユースケースを反映していません。

リージョン間のトラフィック

次のセクションでは、リージョン間の内部トラフィックがデータベース インスタンスのトラフィックのみに制限されていることを確認します。

  1. 内部トラフィックに焦点を当てるには、[トポロジ構成] リストで [インスタンス] と [Cloud NAT ゲートウェイ] のチェックボックスのみをオンにします。アプリケーション内のトラフィックのみを表示するため、外部クライアントや外部ロードバランサのトラフィックを表示する必要はありません。

  2. asia-east1 リージョンを展開すると、5 つのインスタンス グループが表示されます。これらのグループはすべて同じネットワーク、サブネットなどに存在するため、ネットワーク、サブネット、またはゾーンごとに集計されません。

    1 つのインスタンス グループ(db-group-asia)のみにリージョン間トラフィックのパスが含まれていることに注目してください。他のすべてのインスタンス グループは、リージョン内で通信しています。

    基本エンティティに到達するまで、db-group-asia グループを展開します。このシナリオのベース エンティティは、データベース サーバーとして機能する仮想マシン(VM)インスタンス(db-instance-asia)です。このインスタンスは他のリージョンと通信してデータを複製しています。これは予想どおりであり、これ以上調べる必要はありません。

    1この図は参考用です。この図のデータはユースケースを反映していません。

次のステップ