Azure Application Gateway とはWhat is Azure Application Gateway?

Azure Application Gateway は、Web アプリケーションに対するトラフィックを管理できる Web トラフィック ロード バランサーです。Azure Application Gateway is a web traffic load balancer that enables you to manage traffic to your web applications.

従来のロード バランサーはトランスポート レイヤー (OSI レイヤー 4 - TCP と UDP) で動作し、送信元 IP アドレスとポートに基づくトラフィックを送信先 IP アドレスとポートにルーティングします。Traditional load balancers operate at the transport layer (OSI layer 4 - TCP and UDP) and route traffic based on source IP address and port, to a destination IP address and port. 一方、Application Gateway では、より詳細に指定できます。But with the Application Gateway you can be even more specific. たとえば、着信 URL に基づいてトラフィックをルーティングできます。For example, you can route traffic based on the incoming URL. そのため、/images が着信 URL にある場合、画像用に構成された特定のサーバー セット (プールと呼ばれます) にトラフィックをルーティングできます。So if /images is in the incoming URL, you can route traffic to a specific set of servers (known as a pool) configured for images. /video がこの URL にある場合、そのトラフィックはビデオ用に最適化された別のプールにルーティングされます。If /video is in the URL, that traffic is routed to another pool optimized for videos.

imageURLroute

この種類のルーティングは、アプリケーション レイヤー (OSI レイヤー 7) の負荷分散と呼ばれます。This type of routing is known as application layer (OSI layer 7) load balancing. Azure Application Gateway は URL ベースのルーティングなどを行うことができます。Azure Application Gateway can do URL-based routing and more. Azure Application Gateway には、次の機能があります。The following features are included with Azure Application Gateway:

URL ベースのルーティングURL-based routing

URL パス ベースのルーティングを使用すると、要求の URL パスに基づいてバックエンド サーバー プールにトラフィックをルーティングできます。URL Path Based Routing allows you to route traffic to back-end server pools based on URL Paths of the request. シナリオの 1 つとして、さまざまなコンテンツ タイプの要求を異なるプールにルーティングする場合があります。One of the scenarios is to route requests for different content types to different pool.

たとえば、http://contoso.com/video/* の要求は VideoServerPool にルーティングされ、http://contoso.com/images/* は ImageServerPool にルーティングされます。For example, requests for http://contoso.com/video/* are routed to VideoServerPool, and http://contoso.com/images/* are routed to ImageServerPool. 一致するパス パターンがない場合は、DefaultServerPool が選択されます。DefaultServerPool is selected if none of the path patterns match.

リダイレクトRedirection

HTTP を HTTPS に自動的にリダイレクトして、アプリケーションとユーザーの間のすべての通信が暗号化されたパスで行われるようにすることは、多くの Web アプリケーションでよくあるシナリオです。A common scenario for many web applications is to support automatic HTTP to HTTPS redirection to ensure all communication between an application and its users occurs over an encrypted path.

これまでは、HTTP で受信した要求を HTTPS にリダイレクトすることが唯一の目的である専用のプールの作成といった手法を使う場合がありました。In the past, you may have used techniques such as creating a dedicated pool whose sole purpose is to redirect requests it receives on HTTP to HTTPS. Application Gateway は、トラフィックをリダイレクトする機能をサポートしています。Application Gateway supports the ability to redirect traffic. これにより、アプリケーションの構成が簡単になり、リソースの使用が最適化され、グローバルなリダイレクトやパスに基づくリダイレクトなどの新しいリダイレクト シナリオがサポートされるようになります。This simplifies application configuration, optimizes the resource usage, and supports new redirection scenarios, including global and path-based redirection. Application Gateway のリダイレクトのサポートは、HTTP から HTTPS へのリダイレクトだけではありません。Application Gateway redirection support is not limited to HTTP to HTTPS redirection alone. これは一般的なリダイレクト メカニズムなので、規則を使用して定義した任意のポート間とリダイレクトできます。This is a generic redirection mechanism, so you can redirect from and to any port you define using rules. 同様に、外部サイトへのリダイレクトもサポートします。It also supports redirection to an external site as well.

Application Gateway のリダイレクトのサポートでは、次の機能が提供されます。Application Gateway redirection support offers the following capabilities:

  • アプリケーション ゲートウェイ上のあるポートから別のポートへのグローバルなリダイレクト。Global redirection from one port to another port on the application gateway. これにより、サイトでの HTTP から HTTPS へのリダイレクトが可能になります。This enables HTTP to HTTPS redirection on a site.
  • パスに基づくリダイレクト。Path-based redirection. このタイプのリダイレクトを使うと、特定のサイト領域でのみ HTTP から HTTPS へのリダイレクトが可能になります (たとえば、/cart/* で示されたショッピング カート領域など)。This type of redirection enables HTTP to HTTPS redirection only on a specific site area, for example a shopping cart area denoted by /cart/*.
  • 外部サイトへのリダイレクトRedirect to an external site.

複数サイトのホスティングMultiple-site hosting

複数サイトのホストにより、同じ Application Gateway インスタンスで複数の Web サイトを構成することができます。Multiple-site hosting enables you to configure more than one web site on the same Application Gateway instance. この機能を使用すると、最大で 20 の Web サイトを 1 つのアプリケーション ゲートウェイに追加することによって、デプロイに効率的なトポロジを構成できます。This feature allows you to configure a more efficient topology for your deployments by adding up to 20 web sites to one application gateway. 各 Web サイトは、独自のプールに送られるようにすることができます。Each web site can be directed to its own pool. たとえば、Application Gateway は、ContosoServerPool と FabrikamServerPool という 2 つのサーバー プールから contoso.comfabrikam.com のトラフィックを処理できます。For example, Application Gateway can serve traffic for contoso.com and fabrikam.com from two server pools called ContosoServerPool and FabrikamServerPool.

http://contoso.com の要求は ContosoServerPool にルーティングされ、http://fabrikam.com は FabrikamServerPool にルーティングされます。Requests for http://contoso.com are routed to ContosoServerPool, and http://fabrikam.com are routed to FabrikamServerPool.

同様に、同じ親ドメインの 2 つのサブドメインも、同じ Application Gateway デプロイでホストすることができます。Similarly, two subdomains of the same parent domain can be hosted on the same Application Gateway deployment. サブドメインを使用する例としては、単一の Application Gateway デプロイ上でホストされる http://blog.contoso.comhttp://app.contoso.com などがあります。Examples of using subdomains could include http://blog.contoso.com and http://app.contoso.com hosted on a single Application Gateway deployment.

セッション アフィニティSession affinity

Cookie ベースのセッション アフィニティ機能は、同じサーバー上にユーザー セッションを保持する場合に便利です。The cookie-based session affinity feature is useful when you want to keep a user session on the same server. ゲートウェイで管理される Cookie を使用すると、アプリケーション ゲートウェイは、ユーザー セッションの後続のトラフィックを、処理のために同じサーバーに送ることができます。By using gateway-managed cookies, the application gateway can direct subsequent traffic from a user session to the same server for processing. この機能は、ユーザー セッションのためにセッションの状態をサーバー上でローカルに保存する場合に重要です。This is important in cases where session state is saved locally on the server for a user session.

Secure Sockets Layer (SSL) の終了Secure Sockets Layer (SSL) termination

Application Gateway は、ゲートウェイの SSL ターミネーションをサポートします。通常、トラフィックは、その後、暗号化されないままバックエンド サーバーに渡されます。Application Gateway supports SSL termination at the gateway, after which traffic typically flows unencrypted to the back-end servers. この機能により、Web サーバーは、負荷の大きい暗号化と復号化のオーバーヘッドから開放されます。This feature allows web servers to be unburdened from costly encryption and decryption overhead. ただし、サーバーに対する暗号化されていない通信を利用できない場合があります。However, sometimes unencrypted communication to the servers is not an acceptable option. その理由として、セキュリティ要件、コンプライアンス要件、またはセキュリティで保護された接続以外はアプリケーションで受け入れられない場合があります。This could be due to security requirements, compliance requirements, or the application may only accept a secure connection. このようなアプリケーションのために、アプリケーション ゲートウェイでは、エンド ツー エンド SSL 暗号化がサポートされています。For such applications, Application Gateway supports end-to-end SSL encryption.

Web アプリケーション ファイアウォールWeb application firewall

Web アプリケーション ファイアウォール (WAF) は、一般的な脆弱性やその悪用から Web アプリケーションを一元的に保護する Application Gateway の機能です。Web application firewall (WAF) is a feature of Application Gateway that provides centralized protection of your web applications from common exploits and vulnerabilities. WAF は、OWASP (Open Web Application Security Project) コア ルール セット 3.0 または 2.2.9 の規則に基づいています。WAF is based on rules from the OWASP (Open Web Application Security Project) core rule sets 3.0 or 2.2.9.

Web アプリケーションが、既知の脆弱性を悪用した悪意のある攻撃の的になるケースが増えています。Web applications are increasingly targets of malicious attacks that exploit known vulnerabilities. よくある攻撃の例として、SQL インジェクション攻撃やクロス サイト スクリプティング (XSS) 攻撃が挙げられます。Common among these exploits are SQL injection attacks and cross-site scripting (XSS) attacks. アプリケーション コードでこのような攻撃を防ぐことは困難な場合があり、厳格な保守、パッチの適用、アプリケーション トポロジの多数のレイヤーの監視が必要になることもあります。Preventing such attacks in application code can be challenging and may require rigorous maintenance, patching and monitoring at many layers of the application topology. Web アプリケーション ファイアウォールを一元化することで、セキュリティの管理がはるかに簡単になり、アプリケーション管理者にとっては侵入の脅威からより確実に保護されるようになります。A centralized web application firewall helps make security management much simpler and gives better assurance to application administrators against threats or intrusions. また、WAF のソリューションは、1 か所に既知の脆弱性の修正プログラムを適用することで、個々の Web アプリケーションのデプロイをセキュリティで保護する場合と比較して、さらに迅速にセキュリティの脅威に対応できます。A WAF solution can also react to a security threat faster by patching a known vulnerability at a central location versus securing each deployment of individual web applications. 既存のアプリケーション ゲートウェイは、WAF に対応したアプリケーション ゲートウェイに簡単に変換できます。Existing application gateways can be converted to a WAF-enabled application gateway easily.

Websocket と HTTP/2 トラフィックWebsocket and HTTP/2 traffic

Application Gateway は、WebSocket および HTTP/2 プロトコルをネイティブにサポートしています。Application Gateway provides native support for the WebSocket and HTTP/2 protocols. ユーザーが構成可能な、WebSocket のサポートを選択的に有効または無効にするための設定はありません。There is no user-configurable setting to selectively enable or disable WebSocket support. Azure PowerShell を使用して HTTP/2 サポートを有効にすることができます。HTTP/2 support can be enabled using Azure PowerShell.

WebSocket および HTTP/2 プロトコルによって、長時間実行されている TCP 接続上でサーバーとクライアント間の全二重通信が可能になります。The WebSocket and HTTP/2 protocols enable full-duplex communication between a server and a client over a long-running TCP connection. この機能により、HTTP ベースの実装では必須だったポーリングを使用することなく、Web サーバーとクライアントの間により対話的な双方向通信が可能になります。This allows for a more interactive communication between the web server and the client, which can be bidirectional without the need for polling as required in HTTP-based implementations. これらのプロトコルは、HTTP とは異なってオーバーヘッドが少なく、複数の要求や応答で同じ TCP 接続を再利用できるため、リソースをより効率的に使用できます。These protocols have low overhead, unlike HTTP, and can reuse the same TCP connection for multiple request/responses resulting in a more efficient utilization of resources. これらのプロトコルは、従来の HTTP ポート 80 および 443 上で動作するよう設計されています。These protocols are designed to work over traditional HTTP ports of 80 and 443.

次の手順Next steps

要件と環境に応じて、Azure Portal、Azure PowerShell、または Azure CLI のいずれかを使用してテスト Application Gateway を作成できます。Depending on your requirements and environment, you can create a test Application Gateway using either the Azure portal, Azure PowerShell, or Azure CLI: