Azure Application Gateway のコンポーネントを構成する

完了

Azure Application Gateway は一連のコンポーネントで構成されており、これらを組み合わせて、要求を Web サーバーのプールにルーティングしたり、これらの Web サーバーの正常性を確認したりします。 これらのコンポーネントとしては、フロントエンド IP アドレス、バックエンド プール、ルーティング規則、正常性プローブ、リスナーなどがあります。 オプションとして、ゲートウェイではファイアウォールを実装することもできます。

Application Gateway のコンポーネントについて知っておく必要があること

アプリケーション ゲートウェイの各コンポーネントがどのように連携するかを調べてみましょう。

  • フロントエンド IP アドレスは、クライアント要求を受信します。

  • オプションの Web アプリケーション ファイアウォールは、要求がリスナーに到達する前に、一般的な脅威について受信トラフィックをチェックします。

  • 1 つ以上のリスナーがトラフィックを受信し、要求をバックエンド プールにルーティングします。

  • ルーティング規則は、要求を分析し、要求を適切なバックエンド プールに転送する方法を定義します。

  • バックエンド プールには、仮想マシンや Virtual Machine Scale Sets などのリソース用の Web サーバーが含まれます。 各プールには、ワークロードをリソース全体に分散するためのロード バランサーがあります。

  • 正常性プローブは、負荷分散に使用できるバックエンド プールのサーバーを決定します。

次のフローチャートは、Application Gateway の各コンポーネントが連携して、構成内のフロントエンドとバックエンド プールの間でトラフィック要求をどのように転送するかを示しています。

Flowchart that demonstrates how Application Gateway components direct traffic requests between the frontend and back-end pools.

フロントエンド IP アドレス

クライアントの要求は、フロントエンド IP アドレスによって受信されます。 アプリケーション ゲートウェイは、パブリックまたはプライベートの IP アドレス、またはその両方を持つことができます。 パブリック IP アドレスは 1 つだけ、プライベート IP アドレスも 1 つだけ持つことができます。

Web Application Firewall (オプション)

Azure Application Gateway の Azure Web Application Firewall を有効にして、リスナーに到達する前に受信要求を処理できます。 ファイアウォールでは、Open Web Application Security Project (OWASP) に基づいて、各要求の脅威がチェックされます。 一般的な脅威としては、SQL インジェクション、クロスサイト スクリプティング、コマンド インジェクション、HTTP 要求スマグリングと応答分割、リモート ファイル インクルージョンなどがあります。 ボット、クローラー、スキャナー、HTTP プロトコル違反および異常からその他の脅威が発生するおそれもあります。

OWASP では、攻撃を検出するための一般的な規則のセットが定義されています。 これらの規則は、コア ルール セット (CRS) と呼ばれます。 そのルール セットは、攻撃の高度化に対応して常に再検討されています。 Azure Web Application Firewall では、CRS 2.2.9 と CRS 3.0 の 2 つの規則セットがサポートされています。 新しい方の CRS 3.0 が既定のセットです。 必要に応じて、規則セット内の特定の規則だけを選択し、特定の脅威を対象にすることができます。 さらに、ファイアウォールをカスタマイズし、要求で調べる要素を指定したり、大量のアップロードによってサーバーが過負荷になるのを防ぐためにメッセージのサイズを制限したりできます。

リスナー

リスナーは、プロトコル、ポート、ホスト、IP アドレスの指定された組み合わせに到着したトラフィックを受け付けます。 各リスナーは、ルーティング規則に従って、サーバーのバックエンド プールに要求をルーティングします。 リスナーには、"基本" と "マルチサイト" があります。 基本リスナーでは、URL 内のパスに基づく要求のルーティングのみが行われます。 マルチサイトのリスナーでは、URL のホスト名要素を使った要求のルーティングも可能です。 リスナーでは、ユーザーと Application Gateway の間でアプリケーションをセキュリティ保護するために、TLS/SSL 証明書の処理も行われます。

ルーティング ルール

ルーティング規則により、リスナーとバックエンド プールがバインドされます。 規則では、要求の URL 内のホスト名要素とパス要素を解釈する方法、および要求を適切なバックエンド プールに転送する方法が指定されています。 また、ルーティング規則には HTTP 設定のセットが関連付けられています。 これらの HTTP 設定により、Application Gateway とバックエンド サーバーの間でトラフィックを暗号化するかどうか (およびその方法) を指示します。 その他の構成情報としては、プロトコル、セッションの持続性、接続ドレイン、要求のタイムアウト期間、正常性プローブがあります。

バックエンド プール

"バックエンド プール" とは、Web サーバーのコレクションのことです。 プールを構成するときに、各 Web サーバーの IP アドレスと、要求をリッスンするポートを指定します。 各プールでは、仮想マシンの固定のセット、Virtual Machine Scale Sets、Azure App Services によってホストされているアプリ、またはオンプレミス サーバーのコレクションを指定できます。 各バックエンド プールには、作業をプール全体に分散させるロード バランサーが関連付けられています。

正常性プローブ

正常性プローブにより、負荷分散に使用できるバックエンド プールのサーバーが決定されます。 Application Gateway では、正常性プローブを使ってサーバーに要求が送信されます。 200 から 399 までの範囲の状態コードを含む HTTP 応答がサーバーから返された場合、サーバーは正常と見なされます。 正常性プローブを構成しない場合は、30 秒間待機してからサーバーを使用不能 (異常) であると特定する、既定のプローブが Application Gateway によって作成されます。