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 の概念

Application Gateway では、URI パスやホスト ヘッダーなど、HTTP 要求の追加属性に基づいてルーティングを決定できます。With Application Gateway, you can make routing decisions based on additional attributes of an HTTP request, such as URI path or host headers. たとえば、着信 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 that's 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:

Secure Sockets Layer (SSL/TLS) 終了Secure Sockets Layer (SSL/TLS) termination

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

自動スケールAutoscaling

Standard_v2 または WAF_v2 SKU の Application Gateway または WAF デプロイでは、自動スケーリングがサポートされており、トラフィック負荷パターンの変化に基づいてスケールアップまたはスケールダウンできます。Application Gateway or WAF deployments under Standard_v2 or WAF_v2 SKU support autoscaling and can scale up or down based on changing traffic load patterns. また、自動スケールにより、プロビジョニングの間にデプロイのサイズまたはインスタンスの数を選択する必要がなくなります。Autoscaling also removes the requirement to choose a deployment size or instance count during provisioning. Application Gateway Standard_v2 および WAF_v2 の機能の詳細については、自動スケーリング v2 SKU に関するページを参照してください。For more information about the Application Gateway standard_v2 and WAF_v2 features, see Autoscaling v2 SKU.

ゾーン冗長性Zone redundancy

Standard_v2 または WAF_v2 SKU の Application Gateway または WAF のデプロイは、複数の可用性ゾーンを対象にできるため、障害回復性が高く、ゾーンごとに個別の Application Gateway をプロビジョニングする必要がありません。An Application Gateway or WAF deployments under Standard_v2 or WAF_v2 SKU can span multiple Availability Zones, offering better fault resiliency and removing the need to provision separate Application Gateways in each zone.

静的 VIPStatic VIP

Standard_v2 または WAF_v2 SKU のアプリケーション ゲートウェイの VIP は、静的な VIP の種類だけをサポートします。The application gateway VIP on Standard_v2 or WAF_v2 SKU supports static VIP type exclusively. これにより、アプリケーション ゲートウェイに関連付けられた VIP は、Application Gateway の有効期間を過ぎても変化しません。This ensures that the VIP associated with application gateway doesn't change even over the lifetime of the Application Gateway.

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 common known vulnerabilities. よくある攻撃の例として、SQL インジェクション攻撃やクロス サイト スクリプティング攻撃が挙げられます。Common among these exploits are SQL injection attacks, cross site scripting attacks to name a few. アプリケーション コードでこのような攻撃を防ぐことは困難な場合があり、厳格な保守、パッチの適用、アプリケーション トポロジの多数のレイヤーの監視が必要になることもあります。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 of individual web applications. 既存のアプリケーション ゲートウェイは、Web アプリケーション ファイアウォールに対応したアプリケーション ゲートウェイに簡単に変換できます。Existing application gateways can be converted to a web application firewall enabled application gateway easily.

詳細については、Application Gateway の Web アプリケーション ファイアウォール (WAF) に関するページを参照してください。For more information, see Web application firewall (WAF) in 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.

詳細については、Application Gateway による URL ベースのルーティングに関するページを参照してください。For more information, see URL-based routing with Application Gateway.

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

複数サイトのホストにより、同じアプリケーション ゲートウェイ インスタンスで複数の Web サイトを構成することができます。Multiple-site hosting enables you to configure more than one web site on the same application gateway instance. この機能を使用すると、最大で 100 の Web サイトを 1 つのアプリケーション ゲートウェイに追加することによって、デプロイに効率的なトポロジを構成できます。This feature allows you to configure a more efficient topology for your deployments by adding up to 100 web sites to one application gateway. 各 Web サイトは、独自のプールに送られるようにすることができます。Each web site can be directed to its own pool. たとえば、アプリケーション ゲートウェイは、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 つのサブドメインも、同じアプリケーション ゲートウェイ デプロイでホストすることができます。Similarly, two subdomains of the same parent domain can be hosted on the same application gateway deployment. サブドメインを使用する例としては、単一のアプリケーション ゲートウェイ デプロイ上でホストされる 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.

詳細については、Application Gateway による複数サイトのホストに関するページを参照してください。For more information, see multiple-site hosting with Application Gateway.

リダイレクト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 dedicated pool creation whose sole purpose is to redirect requests it receives on HTTP to HTTPS. Application Gateway は、Application Gateway 上でトラフィックをリダイレクトする機能をサポートしています。Application gateway supports the ability to redirect traffic on the Application Gateway. これにより、アプリケーションの構成が簡単になり、リソースの使用が最適化され、グローバルなリダイレクトやパスに基づくリダイレクトなどの新しいリダイレクト シナリオがサポートされるようになります。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 isn't 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:

  • Gateway 上のあるポートから別のポートへのグローバルなリダイレクト。Global redirection from one port to another port on the 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.

詳細については、Application Gateway によるトラフィックのリダイレクトに関するページを参照してください。For more information, see redirecting traffic with Application Gateway.

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

Cookie ベースのセッション アフィニティ機能は、同じサーバー上にユーザー セッションを保持する場合に便利です。The cookie-based session affinity feature is useful when you want to keep a user session on the same server. ゲートウェイで管理される Cookie を使用すると、Application Gateway は、ユーザー セッションの後続のトラフィックを、処理のために同じサーバーに送ることができます。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.

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's no user-configurable setting to selectively enable or disable WebSocket support.

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 resource utilization . これらのプロトコルは、従来の HTTP ポート 80 および 443 上で動作するよう設計されています。These protocols are designed to work over traditional HTTP ports of 80 and 443.

詳細については、WebSocket のサポートHTTP/2 のサポートに関するページを参照してください。For more information, see WebSocket support and HTTP/2 support.

Azure Kubernetes Service (AKS) のイングレス コントローラーの概要Azure Kubernetes Service (AKS) Ingress controller preview

Application Gateway イングレス コントローラーは、AKS クラスター内のポッドとして実行され、Application Gateway が AKS クラスターに対する入り口として機能できるようにします。The Application Gateway Ingress controller runs as a pod within the AKS cluster and allows Application Gateway to act as ingress for an AKS cluster. これは、Application Gateway v2 でのみサポートされます。This is supported with Application Gateway v2 only.

詳細については、「Azure Application Gateway Ingress Controller (Azure Application Gateway イングレス コントローラー)」を参照してください。For more information, see Azure Application Gateway Ingress Controller.

接続のドレインConnection draining

接続のドレインを使用すると、計画的なサービスの更新中にバックエンド プール メンバーを正常に削除することができます。Connection draining helps you achieve graceful removal of backend pool members during planned service updates. この設定は、バックエンド http 設定を通じて有効にされ、ルールの作成中にバックエンド プールのすべてのメンバーに適用することができます。This setting is enabled via the backend http setting and can be applied to all members of a backend pool during rule creation. Application Gateway が有効になると、バックエンド プールのすべての登録解除インスタンスが新しい要求を受け取らなくなり、既存の要求は構成された制限時間内に完了するようになります。Once enabled, Application Gateway ensures all de-registering instances of a backend pool do not receive any new request while allowing existing requests to complete within a configured time limit. これは、API 呼び出しによってバックエンド プールから明示的に削除されたバックエンド インスタンスと、正常性プローブの判断によって異常であるとレポートされたバックエンド インスタンスの両方に適用されます。This applies to both backend instances that are explicitly removed from the backend pool by an API call, and backend instances that are reported as unhealthy as determined by the health probes.

カスタム エラー ページCustom error pages

Application Gateway では、既定のエラー ページを表示する代わりに、カスタム エラー ページを作成することができます。Application Gateway allows you to create custom error pages instead of displaying default error pages. カスタム エラー ページでは、独自のブランディングとレイアウトを使用することができます。You can use your own branding and layout using a custom error page.

詳細については、HTTP ヘッダーの書き換えに関するページを参照してください。For more information, see Rewrite HTTP headers.

HTTP ヘッダーを書き換えるRewrite HTTP headers

クライアントとサーバーは、HTTP ヘッダーを使用して、要求または応答に追加の情報を渡すことができます。HTTP headers allow the client and server to pass additional information with the request or the response. これらの HTTP ヘッダーの書き換えによって、次のようないくつかの重要なシナリオを実現できます。Rewriting these HTTP headers helps you accomplish several important scenarios, such as:

  • HSTS/ X-XSS-Protection などのセキュリティ関連ヘッダー フィールドを追加する。Adding security-related header fields like HSTS/ X-XSS-Protection.
  • 機密情報が漏れる可能性がある応答ヘッダー フィールドを削除する。Removing response header fields that can reveal sensitive information.
  • X-Forwarded-For ヘッダーからポート情報を削除する。Stripping port information from X-Forwarded-For headers.

Application Gateway では、要求/応答パケットがクライアントとバックエンド プールの間を移動する間に、HTTP 要求および応答ヘッダーを追加、削除、または更新する機能をサポートします。Application Gateway supports the capability to add, remove, or update HTTP request and response headers, while the request and response packets move between the client and back-end pools. また、条件を追加して、特定の条件が満たされた場合にのみ特定のヘッダーが書き換えられるようにする機能も提供されます。It also provides you with the capability to add conditions to ensure the specified headers are rewritten only when certain conditions are met.

詳細については、HTTP ヘッダーの書き換えに関するページを参照してください。For more information, see Rewrite HTTP headers.

サイズ変更Sizing

Application Gateway Standard_v2 および WAF_v2 SKU は、自動スケーリング用、または固定サイズ デプロイ用に構成できます。Application Gateway Standard_v2 and WAF_v2 SKU can be configured for autoscaling or fixed size deployments. これらの SKU では、異なるインスタンスのサイズは提供されません。These SKUs don't offer different instance sizes.

現在、Application Gateway の Standard および WAF SKU は、次の 3 つのサイズで提供されています。SmallMediumLarge の 3 つのサイズで提供されています。The Application Gateway Standard and WAF SKU is currently offered in three sizes: Small, Medium, and Large. Small サイズのインスタンスは、開発用およびシナリオのテスト用です。Small instance sizes are intended for development and testing scenarios.

アプリケーション ゲートウェイの制限の詳細な一覧については、Application Gateway サービスの制限に関するページをご覧ください。For a complete list of application gateway limits, see Application Gateway service limits.

次の表では、SSL オフロードが有効になっているアプリケーション ゲートウェイ インスタンスごとにパフォーマンス スループットの平均値を示します。The following table shows an average performance throughput for each application gateway instance with SSL offload enabled:

バックエンド ページの平均応答サイズAverage back-end page response size SmallSmall MediumMedium LargeLarge
6 KB6 KB 7.5 Mbps7.5 Mbps 13 Mbps13 Mbps 50 Mbps50 Mbps
100 KB100 KB 35 Mbps35 Mbps 100 Mbps100 Mbps 200 Mbps200 Mbps

注意

これらの値は、アプリケーション ゲートウェイ スループットのおおよその値です。These values are approximate values for an application gateway throughput. 実際のスループットは、平均ページ サイズ、バックエンド インスタンスの場所、ページの処理時間など、さまざまな環境の違いによって異なります。The actual throughput depends on various environment details, such as average page size, location of back-end instances, and processing time to serve a page. パフォーマンス面の正確な数値は、ご自身でテストを実施のうえご確認ください。For exact performance numbers, you should run your own tests. ここに挙げた数値は、容量計画の参考とすることを目的として記載したものにすぎません。These values are only provided for capacity planning guidance.

次の手順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: