Azure Application Gateway を設計する

完了

Azure Application Gateway は、Web アプリケーションに対するトラフィックを管理できる Web トラフィック ロード バランサーです。 従来のロード バランサーはトランスポート レイヤー (OSI レイヤー 4 - TCP と UDP) で動作し、送信元 IP アドレスとポートに基づくトラフィックを送信先 IP アドレスとポートにルーティングします。

Azure Application Gateway traffic flow

Application Gateway では、URI パスやホスト ヘッダーなど、HTTP 要求の追加属性に基づいてルーティングを決定できます。 たとえば、着信 URL に基づいてトラフィックをルーティングできます。 そのため、/images が着信 URL にある場合、画像用に構成された特定のサーバー セット (プールと呼ばれます) にトラフィックをルーティングできます。 /video が URL にある場合、そのトラフィックはビデオ用に最適化された別のプールにルーティングされます。

この種類のルーティングは、アプリケーション レイヤー (OSI レイヤー 7) の負荷分散と呼ばれます。 Azure Application Gateway は URL ベースのルーティングなどを行うことができます。

Azure Application routing

Application Gateway の機能

  • HTTP、HTTPS、HTTP/2、WebSocket プロトコルのサポート。
  • Web アプリケーションの脆弱性から保護するための Web アプリケーション ファイアウォール。
  • 要求のエンド ツー エンドの暗号化。
  • Web トラフィックの負荷の変化に応じて容量を動的に調整する自動スケーリング。
  • リダイレクト: リダイレクトは、別のサイトに対して、または HTTP から HTTPS に対して使用できます。
  • HTTP ヘッダーの書き換え: HTTP ヘッダーを使用すると、クライアントとサーバーは、要求または応答と共にパラメーター情報を渡すことができます。
  • カスタム エラー ページ: Application Gateway では、既定のエラー ページを表示する代わりにカスタム エラー ページを作成することができます。 カスタム エラー ページでは、独自のブランディングとレイアウトを使用することができます。

Application Gateway のルーティングを決定する

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

トラフィックの主要なルーティング方法としては、パスベースのルーティングと複数サイトのルーティングの 2 つがあります。

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

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

path based routing example

複数サイトのルーティング

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

Multiple site routing example

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

Azure Application Gateway SKU の選択

Application Gateway は、Standard_v2 SKU で利用できます。 Web アプリケーション ファイアウォール (WAF) は、WAF_v2 SKU で利用できます。 v2 SKU では、パフォーマンスが強化され、自動スケールダウン、ゾーン冗長、静的 VIP のサポートなどの重要な新機能のサポートが追加されます。 Standard SKU と WAF SKU の既存機能は、新しい v2 SKU でも引き続きサポートされます。

v1 SKU と v2 SKU の機能比較表を確認し、デプロイのニーズを満たす SKU を判断します。

Azure Application Gateway v2 SKU と Web Application Firewall V2 SKU の選択

Application Gateway と Web Application Firewall のどちらをデプロイするかを選択する際には、実行しようとしているスケーリング戦略など、考慮する必要がある要素がいくつかあります。

Application Gateway と WAF v2 のスケーリング

Application Gateway と WAF は、2 つのモードでスケーリングするように構成できます。

自動スケーリング: 自動スケーリングを有効にすると、Application Gateway と WAF v2 SKU は、アプリケーションのトラフィック要件に基づいて、スケールアップまたはスケールダウンします。 このモードでは、アプリケーションに対して優れた柔軟性が提供され、アプリケーション ゲートウェイのサイズまたはインスタンスの数を推測する必要がなくなります。 また、このモードでは、予想される最大トラフィック負荷に対するピーク時のプロビジョニング容量でゲートウェイを実行する必要がないので、コストを節約することもできます。 最小のインスタンス数と、必要に応じて最大のインスタンス数を、指定する必要があります。 最小容量により、トラフィックがない場合であっても、Application Gateway と WAF v2 が、指定された最小インスタンス数を下回らないことが保証されます。 各インスタンスは 10 の追加予約容量ユニットに大体等しくなります。 0 は予約容量なしを意味し、事実上、純粋な自動スケールが行われます。 また、必要に応じて最大インスタンス数を指定することができ、これにより、Application Gateway が指定したインスタンスを超えてスケーリングしないことが保証されます。 ゲートウェイによって処理されるトラフィックに対してのみ課金されます。 インスタンス数の範囲は 0 から 125 です。 最大インスタンス数を指定しない場合の既定値は 20 です。

手動: または、ゲートウェイが自動スケーリングされない手動モードを選択することもできます。 このモードでは、Application Gateway または WAF が処理できる量をトラフィックが超えた場合、トラフィックが失われる可能性があります。 手動モードでは、インスタンス数の指定が必須です。 指定できるインスタンスの数は 1 から 125 までです。