Azure Application Gatewayのサービス概要、構成要素、リソース作成手順
Azure Application Gateway(アプリケーションゲートウェイ)のサービス概要、構成要素、リソース作成手順について紹介します。
一番基本的な、インターネットからのHTTPアクセスを受信し、バックエンドのWebサーバー(仮想サーバー)へ転送するまでの設定手順を確認しています。
※2024年3月に一部記事内容を修正しています。
※本記事内ではアプリケーションゲートウェイをAzure Application Gateway、Web Application FirewallをWAFとして表記しています。
Azure Application Gatewayの機能概要
Azure Application GatewayはAzureで提供される負荷分散サービスの1つ
Azure Application GatewayはL7(アプリケーションレイヤ)で負荷分散を行うサービスです。
Azure Application Gatewayでは、負荷分散機能以外にもSSL終端やURLリダイレクトなどの機能が提供されています。
ゾーン冗長やPrivate Linkもサポートされています。
Azure Kubernetes Service(AKS)のイングレスコントローラーとしても利用できます。
Application Gateway for Containersとして、イングレスコントローラー(AGIC)を進化させたAzure Application Gatewayも提供されています。
Application Gateway for Containers とは
AzureではWebアプリケーションの負荷分散サービスが複数提供されています。
類似のサービスとしてFront DoorやTraffic Managerなどがあります。
それぞれのサービスの違いについてはこちらに記載があります。
Azure Front Door と Azure Application Gateway の違いは何ですか?
Azure で負荷分散サービスを使用する
リージョン内での負荷分散にはAzureロードバランサーがあります。
AzureロードバランサーとAzure Application Gatewayの主な違いは、対応するレイヤーの違いです。
Azure Load Balancer と Azure Application Gateway の比較
-
- Azure Application Gatewayでのみ可能な機能
- URIパスに基づいた負荷分散
- ホスト名またはドメイン名に基づくルーティング
- SSLの終端
- WAFの利用
- Azure Application Gatewayでのみ可能な機能
以前はAzure Application GatewayはWebアプリケーションアクセスに特化していましたが、2024年3月時点ではTCP/TLSプロキシの機能も提供されています。
Application Gateway TCP/TLS プロキシの概要
※v2をベースにして記載しています。v1とv2の違いについては、こちらに記載があります。
Azure Application Gateway v2 とは(v1 SKU と v2 SKU の機能比較)
Web Application Firewall(WAF)も利用可能
Azure Application Gatewayでは、同一リソース内でWeb Application Firewall(WAF)を同時に利用できます。
Azure Application GatewayでのWAFの利用については、こちらで紹介しています。
SKUは4パターン
Azure Application GatewayとWAFの組み合わせには、4つのパターンがあります。
Azure Application GatewayとWAFの両方に対して課金が発生します。
また、現時点ではプレビューですが、Application Gateway for Containersも提供されています。
SKU | APGW | WAF |
Standard v1 | v1(S,M,L)(インスタンス数) | × |
WAF | v1(S,M,L)(インスタンス数) | 〇 |
Standard v2 | v2(インスタンス数) | × |
WAF v2 | v2(インスタンス数) | 〇(カスタムWAF) |
Azure Application Gatewayの構成要素
Azure Application Gatewayは複数の要素で構成されます。
フロントエンドIPアドレス
アプリケーションゲートウェイがトラフィックを受信するIPアドレスです。
アクセス時に指定するIPアドレスに該当します。
フロントエンドIPアドレスはリスナーと関連付けて使用します。
Application Gateway のフロントエンド IP アドレスの構成
フロントエンドIPアドレスには、パブリックIPアドレス、パブリックIPアドレスとプライベートIPアドレスの併用、プライベートIPアドレスの3種類があります。
パブリックIPアドレスの場合は、インターネットに公開されるアドレスとなります。
※2024年3月時点では、プライベートIPアドレスはパブリックプレビュー段階です。
フロントエンドIPアドレス | |
種類にはパブリックとプライベートがあります。 リスナーと関連付けて利用します。 |
![]() |
リスナー
リスナーは、Azure Application Gatewayがアクセスを受け付けるための設定です。
リスナーはルールに関連付けて利用します。
プロトコル(HTTPまたはHTTPS)、ポート、ホスト名、IPアドレスの組み合わせで設定します。
カスタムエラーページもリスナーで設定できます。
マルチドメインやSSLオフロードもリスナー単位で設定します。
リスナー | |
プロトコルにHTTPSを選択すると、証明書の登録やSSLオフロードの設定が可能です。 マルチサイトやカスタムエラーページもリスナーの設定に含まれます。 |
![]() |
![]() |
Azure Application Gatewayのカスタムエラーページはリスナーで設定します。
設定手順については、こちらで紹介しています。
バックエンド設定(HTTP設定)
バックエンドプールへの転送方式を設定します。
Application Gateway の HTTP 設定の構成
バックエンドへの転送プロトコル、ポート番号、正常性プローブなどを設定します。
ホスト名のオーバーライド(書き換え)もバックエンド設定(HTTP設定)に含まれます。
カスタムプローブを利用する場合も、バックエンド設定(HTTP設定)で指定します。
バックエンド設定 | |
バックエンドへの転送プロトコルやポート番号を指定します。 ホスト名のオーバーライドやカスタムプローブもバックエンドの設定項目に含まれます。 |
![]() |
![]() |
バックエンドプール
バックエンドプールでは、転送先サーバーを指定します。
転送先にはApp ServiceなどのAzureサービスも含まれます。
Application Gateway 構成の概要(バックエンド プール)
バックエンドプールに指定したサーバー間でトラフィックの転送を負荷分散します。
デフォルトの負荷分散方式はラウンドロビンとなります。
セッション維持(クッキーによるアフィニティ)の設定も利用設定できます。
バックエンドプール | |
バックエンドターゲットとして転送先サーバーを指定します。 バックエンドプールには、仮想マシン、VMSS、App Service、IPアドレス(FQDN含む)などを指定できます。 |
![]() |
![]() |
ルール
リスナー、バックエンドプール、バックエンド設定(HTTP設定)を関連付けます。
リスナーで受け付けたトラフィックを、バックエンド設定(HTTP設定)によってどのバックエンドプールに転送するかを指定します。
Application Gateway 要求ルーティング規則
パスベースで転送先のバックエンドプールを変更する設定も、ルールで行います。
ルール | |
リスナーに対するルーティング規則を設定します。 リスナーのタブで、Webトラフィックを受信するリスナーを指定します。バックエンドターゲットでは、バックエンドプールやバックエンド設定との関連付けを行います。 リダイレクト設定などもルール設定に含まれます。 |
![]() |
![]() |
|
![]() |
—広告—
Azure Application Gatewayに関連して必要となるリソース
必要となる関連リソース
Azure Application Gatewayのリソースには、必要となる関連リソースがあります。
-
- サブネット
- パブリックIP
- ネットワークセキュリティグループ(NSG)
- GatewayManager サービスタグからの許可設定が必要
※サブネットやパブリックIPなどの関連リソースは、Azure Application Gatewayと同時に作成できます。
※プライベートIPアドレスのみの構成もサポートされています。(2024年3月現在ではプレビューです)
専用のサブネットが必要
Azure Application Gateway専用のサブネットを準備する必要があります。
v2 SKUではインスタンス拡張を考慮して、/24での利用が推奨されています。
Application Gateway インフラストラクチャの構成(サブネットのサイズ)
このサブネット内に他のリソースを作成することは許可されていません。
サブネット | |
/24のサブネットが推奨されています。 | ![]() |
※今回はAPGWという名前でサブネットを作成しています。
ネットワークセキュリティグループ
Azure Application Gatewayのサブネットには、関連付けるネットワークセキュリティグループ(NSG)が必要です。
Application Gateway インフラストラクチャの構成(ネットワークセキュリティグループ)
受信のセキュリティ規則には、GatewayManagerやAzureLoadBalancerからの通信許可が必要です。
ネットワークセキュリティグループ | |
GatewayManagerからの通信許可ポートは、v2 SKUの場合65200~65535(TCP)となります。 | ![]() |
パブリックIP
インターネットからのアクセスを受信する場合は、パブリックIPが必要です。
v2 SKUの場合、パブリックIPのSKUはStandard(静的)になります。
アプリケーション ゲートウェイのコンポーネント(静的パブリック IP アドレスと動的パブリック IP アドレス)
※プライベートIPアドレスのみの構成もサポートされています。(2024年3月現在ではプレビューです)
Azure Application Gatewayのリソース作成手順
インスタンス数は2以上が推奨されています。
今回は操作手順の確認を目的としており、性能やSLAは問わないため、最小規模(インスタンス数1)で作成しています。
バックエンドプールにはIISを利用したWebサーバー(仮想マシン)を2台配置しています。
作成したリソースの設定値
今回作成したAzure Application Gatewayの設定値です。
HTTPで受信したWebトラフィックを、バックエンドにHTTPで負荷分散するようにしています。
※検証目的の設定値です。実際に利用する際は、環境に合わせて設定値を調整します。
タブ | 設定項目 | 設定値 |
基本 | ゲートウェイ名 | TEST-APGW |
地域 | East US 2 | |
レベル | Standard v2 | |
インスタンス数 | 1 | |
仮想ネットワーク名 | APGW-TEST-VNET | |
サブネット名 | APGW | |
フロントエンドの数 | フロントエンドIPの種類 | パブリック |
パブリックIPアドレス | APGW-TEST-PubIP-Standard | |
バックエンド | 名前 | APGW-TEST-BackendPool |
ターゲット | 仮想マシン(事前準備した仮想マシンを指定) | |
ルーティング規則 | ルール名 | APGW-TEST-Rule |
優先度 | 1 | |
リスナー名 | APGW-TEST-Listener | |
フロントエンドIPプロトコル | HTTP(ポート番号80) | |
ターゲットの種類 | バックエンドプール(APGW-TEST-BackendPool) | |
バックエンドターゲット | APGW-TEST-Backend | |
バックエンドプロトコル | HTTP(ポート番号80) |
リソースの作成手順
Azure Portalを使用して、Azure Application Gatewayを作成します。
Azure Application Gatewayの動作確認
ブラウザでフロントエンドのIPアドレスにアクセスして、負荷分散されるか動作を確認します。
バックエンドには、IISを起動した仮想マシンを2台用意しています。
フロントエンドのIPアドレスへブラウザでアクセスして確認
http://フロントエンドのIPアドレス にアクセスします。
各仮想マシンにブラウザでアクセスした場合は、ホスト名が表示されるように設定しています。
アクセス先のサーバーに応じて、APGW-TEST-VM-01 または APGW-TEST-VM-02 のホスト名が表示されます。
アクセスして確認 | |
Azure Application Gatewayに割り当てたパブリックIPアドレスにブラウザでアクセスします。 1号機のホスト名が表示されます。 ブラウザを更新すると、2号機のホスト名が表示されます。 負荷分散によってバックエンドのサーバーに転送されていることが確認できます。 |
![]() |
![]() |
バックエンド正常性の確認方法
バックエンドの正常性確認方法や監視設定手順については、こちらの記事で紹介しています。
アクセスログの確認方法
Azure Application Gatewayのアクセスログ確認方法については、こちらで紹介しています。
リソースの停止方法
Azure Application Gatewayは停止することで課金を停止できます。
起動および停止の方法については、こちらで紹介しています。
最後に
今回はAzure Application Gatewayの構成要素、リソース作成手順、アクセスの負荷分散について確認しました。
Azure Application Gatewayは複数の設定項目で構成されていることが分かりました。
リスナーでトラフィックの受信方法を設定し、バックエンドプールで転送先サーバーを指定、バックエンド設定(HTTP設定)でバックエンドサーバーへの転送方法を設定しています。
ルールによってそれぞれの設定を関連付けることができます。
各項目の設定内容を確認することで、どこで何が設定されているのかが理解できます。
引き続き、いろいろ試してみたいと思います。
パスベースのルールの作成手順については、こちらで紹介しています。