Azure Application Gatewayのサービス概要、構成要素、リソース作成手順

2019-05-26Application Gateway,Azure

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 とは

Azure Application Gatewayでは、負荷分散機能以外にもSSL終端やURLリダイレクトなどの機能が提供されています。
ゾーン冗長やPrivate Linkもサポートされています。
Azure Kubernetes Service(AKS)のイングレスコントローラーとしても利用できます。

Azure Application Gateway の機能

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は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 の価格

また、現時点ではプレビューですが、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 のフロントエンド IP アドレスの設定画面

リスナー

リスナーは、Azure Application Gatewayがアクセスを受け付けるための設定です。
リスナーはルールに関連付けて利用します。

Application Gateway リスナーの構成

プロトコル(HTTPまたはHTTPS)、ポート、ホスト名、IPアドレスの組み合わせで設定します。
カスタムエラーページもリスナーで設定できます。
マルチドメインやSSLオフロードもリスナー単位で設定します。

リスナー
プロトコルにHTTPSを選択すると、証明書の登録やSSLオフロードの設定が可能です。
マルチサイトやカスタムエラーページもリスナーの設定に含まれます。

Azure Application Gateway のリスナーの一覧画面
Azure Application Gateway のリスナー設定画面

Azure Application Gatewayのカスタムエラーページはリスナーで設定します。
設定手順については、こちらで紹介しています。

バックエンド設定(HTTP設定)

バックエンドプールへの転送方式を設定します。

Application Gateway の HTTP 設定の構成

バックエンドへの転送プロトコル、ポート番号、正常性プローブなどを設定します。
ホスト名のオーバーライド(書き換え)もバックエンド設定(HTTP設定)に含まれます。
カスタムプローブを利用する場合も、バックエンド設定(HTTP設定)で指定します。

バックエンド設定
バックエンドへの転送プロトコルやポート番号を指定します。
ホスト名のオーバーライドやカスタムプローブもバックエンドの設定項目に含まれます。
Azure Application Gatewayのバックエンド一覧画面

バックエンドプール

バックエンドプールでは、転送先サーバーを指定します。
転送先にはApp ServiceなどのAzureサービスも含まれます。

Application Gateway 構成の概要(バックエンド プール)

バックエンドプールに指定したサーバー間でトラフィックの転送を負荷分散します。
デフォルトの負荷分散方式はラウンドロビンとなります。
セッション維持(クッキーによるアフィニティ)の設定も利用設定できます。

バックエンドプール
バックエンドターゲットとして転送先サーバーを指定します。
バックエンドプールには、仮想マシン、VMSS、App Service、IPアドレス(FQDN含む)などを指定できます。
Azure Application Gateway バックエンドプール一覧画面
Azure Application Gateway バックエンドプール設定画面

ルール

リスナー、バックエンドプール、バックエンド設定(HTTP設定)を関連付けます。
リスナーで受け付けたトラフィックを、バックエンド設定(HTTP設定)によってどのバックエンドプールに転送するかを指定します。

Application Gateway 要求ルーティング規則

パスベースで転送先のバックエンドプールを変更する設定も、ルールで行います。

ルール

リスナーに対するルーティング規則を設定します。

リスナーのタブで、Webトラフィックを受信するリスナーを指定します。バックエンドターゲットでは、バックエンドプールやバックエンド設定との関連付けを行います。

リダイレクト設定などもルール設定に含まれます。

Azure Application Gateway ルールの一覧画面
Azure Application Gateway ルールの設定画面(リスナー)
Azure Application Gateway ルールの設定画面(バックエンドターゲット)

—広告—

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のサブネットが推奨されています。 サブネット設定画面(Azure Application Gateway用)

※今回はAPGWという名前でサブネットを作成しています。

ネットワークセキュリティグループ

Azure Application Gatewayのサブネットには、関連付けるネットワークセキュリティグループ(NSG)が必要です。

Application Gateway インフラストラクチャの構成(ネットワークセキュリティグループ)

受信のセキュリティ規則には、GatewayManagerやAzureLoadBalancerからの通信許可が必要です。

ネットワークセキュリティグループ
GatewayManagerからの通信許可ポートは、v2 SKUの場合65200~65535(TCP)となります。

NSG設定画面(Azure Application Gateway用)

パブリック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のリソース作成

ゲートウェイ名やSKUなどを指定します。
リソースを作成する仮想ネットワークを指定します。
仮想ネットワークは、Azure Application Gatewayと同じリージョンに存在している必要があります。

 

Azure Application Gateway作成画面(基本)
フロントエンドのタブでは、利用するパブリックIPを選択します。
v2 SKUの場合、パブリックIPのSKUはStandard(静的IP)である必要があります。
Azure Application Gateway作成画面(フロントエンドの数)
バックエンドのタブでは、バックエンドプールを設定します。
バックエンドプールの追加を選択します。
Azure Application Gateway作成画面(バックエンドプール)
バックエンドプールの追加では、転送先となる仮想マシンなどのバックエンドターゲットを選択します。
今回は、2台の仮想マシンをバックエンドとして指定します。
Azure Application Gatewayバックエンドプールの追加画面

構成のタブでは、ルーティング規則(ルール)を設定します。
ルーティング規則の追加を選択します。

※フロントエンドやバックエンドプールの追加も、この画面で設定可能です。

Azure Application Gateway作成画面(アプリケーションゲートウェイの作成)

ルーティング規則の追加では、リスナーやバックエンドターゲットを設定します。
ルール名や優先度を設定し、リスナー名やポートの指定を行います。
フロントエンドプロトコルは、Azure Application Gatewayが受信するプロトコルを選択します。

※プロトコルにHTTPSを選択した場合は、証明書が必要となります。
※今回は、HTTP受信をそのままバックエンドの仮想マシンへHTTPで転送する設定としています。

ルーティング規則の追加(リスナー)
バックエンドターゲットでは、転送先となるバックエンドプールを選択します。
バックエンドターゲットの新規追加を選択します。
ルーティング規則の追加(バックエンドターゲット)

バックエンド設定を追加します。
バックエンド設定名や、バックエンド(Webサーバー側で受信するプロトコルやポート)を指定します。

バックエンド設定の追加画面
バックエンド設定が完了したら、追加を選択します。 ルーティング規則の追加(バックエンド設定)

構成の設定が完了したら、次へを選択します。

アプリケーションゲートウェイの作成画面(構成完了後)
確認画面が表示されます。
内容を確認し、問題がなければ作成を選択します。
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設定)でバックエンドサーバーへの転送方法を設定しています。
ルールによってそれぞれの設定を関連付けることができます。
各項目の設定内容を確認することで、どこで何が設定されているのかが理解できます。

引き続き、いろいろ試してみたいと思います。

パスベースのルールの作成手順については、こちらで紹介しています。

スポンサーリンク