Application Gateway でトラフィックをルーティングする

完了

Application Gateway では、クライアント アプリケーションが Web アプリに送信できる要求が管理されます。 Application Gateway により、トラフィックが要求の URL に基づいて Web サーバーのプールにルーティングされます。 これは "アプリケーション レイヤー ルーティング" と呼ばれます。 Web サーバーのプールとしては、Azure 仮想マシン、Azure 仮想マシン スケール セット、Azure App Service や、さらにはオンプレミス サーバーも使用できます。

Diagram showing how a request is routed by Application Gateway to a web server.

Application Gateway による要求のルーティング方法

クライアントでは、Web アプリへの要求を、ゲートウェイの IP アドレスまたは DNS 名に送信します。 ゲートウェイでは、バックエンド プール内の選択された Web サーバーに要求がルーティングされます。このとき、ゲートウェイに対して構成されているルールのセットを使って、要求の送り先が決定されます。

トラフィックの主なルーティング方法は、パスベースのルーティングと複数サイトのホスティングの 2 つです。 それぞれの機能を見てみましょう。

パスベースのルーティング

パスベースのルーティングでは、URL のパスを変えることで、バックエンド サーバーの異なるプールに要求を送信できます。 たとえば、/video/* というパスを使うとビデオ ストリーミングの処理に最適化されたサーバーが含まれるバックエンド プールに要求を転送することができ、/images/* を使うと画像の取得を処理するサーバーのプールに要求を転送できます。

Diagram showing how a request is routed by Application Gateway configured with path-based routing.

複数サイトのホスティング

複数サイトのホスティングを使うと、アプリケーション ゲートウェイの同じインスタンスに複数の Web アプリケーションを構成することができます。 マルチサイトの構成では、アプリケーション ゲートウェイの IP アドレスに複数の DNS 名 (CNAME) を登録できます。各サイトの名前を指定します。 アプリケーション ゲートウェイでは、個別のリスナーを使って各サイトの要求を待ちます。 各リスナーでは、異なるルールに要求が渡されて、異なるバックエンド プール内のサーバーに要求をルーティングできます。 たとえば、http://contoso.com に対するすべての要求をあるバックエンド プール内のサーバーに転送し、http://fabrikam.com に対する要求を別のバックエンド プールに転送するように、Application Gateway を構成できます。 次の図はこの構成を示したものです。

Diagram showing how a request is routed by Application Gateway configured with multiple site hosting.

マルチサイトの構成は、各テナントに Web アプリケーションをホストする独自の仮想マシンがある、または他のリソースのセットがあるマルチテナント アプリケーションをサポートするのに便利です。

その他のルーティング機能

パスベースのルーティングと複数サイトのホスティングに加えて、Application Gateway でルーティングするときはいくつかの追加機能があります。

  • リダイレクト: リダイレクトは、別のサイトに対して、または HTTP から HTTPS に対して使用できます。
  • HTTP ヘッダーの書き換え: クライアントとサーバーは、HTTP ヘッダーを使用して、要求または応答で追加の情報を渡すことができます。
  • カスタム エラー ページ: Application Gateway では、既定のエラー ページを表示する代わりにカスタム エラー ページを作成することができます。 カスタム エラー ページでは、独自のブランディングとレイアウトを使用することができます。

Application Gateway での負荷分散

Application Gateway では、ラウンドロビン メカニズムを使って、各バックエンド プール内のサーバーに送信された要求が自動的に負荷分散されます。 ただし、同じセッション内の 1 つのクライアントに対するすべての要求がバックエンド プール内の同じサーバーに確実にルーティングされるようにする必要がある場合は、セッションの持続性を構成できます。

負荷分散は、Application Gateway のルーティングが実装する OSI レイヤー 7 ルーティングで動作します。つまり、Application Gateway ルールが使うルーティング パラメーター (ホスト名とパス) に基づいて、要求の負荷分散が行われます。 それに対し、Azure Load Balancer などの他のロード バランサーは OSI レイヤー 4 のレベルで機能し、トラフィックは要求のターゲットの IP アドレスに基づいて分散されます。

OSI レイヤー 7 で動作することにより、Application Gateway で提供される他の機能を負荷分散で利用することができます。 次のような機能が含まれています。

  • HTTP、HTTPS、HTTP/2、WebSocket プロトコルのサポート。
  • Web アプリケーションの脆弱性から保護するための Web アプリケーション ファイアウォール。
  • 要求のエンド ツー エンドの暗号化。
  • Web トラフィックの負荷の変化に応じてキャパシティを動的に調整する自動スケーリング。

車両部門のルーティング

車両部門でのシナリオを再考すると、Application Gateway を使って両方の問題に対処できます。 負荷分散と正常性プローブの機能を使うと、ユーザーに影響を与えずに障害に対処することができます。 また、パスベースのルーティングを使うと、さまざまな Web サービスがホストされている複数のサイトにアクセスするための単一のエンドポイントをユーザーに提供することもできます。

これを行う方法を詳しく見ていきましょう。

自分の知識をチェックする

1.

Web サーバーに要求をルーティングするために Application Gateway で使われる条件はどれですか?

2.

Application Gateway で実装されている負荷分散戦略はどれですか?