Webサーバー向けロードバランサー「Azure Application Gateway」とは?

Azure Application Gatewayとは、一言で言うと、WEBサーバーに特化したロードバランサー機能を提供します。

[特徴]
・バランシング機能(プール単位):パスベース、URLベース
・バランシング機能(サーバー単位):ラウンドロビン
・パーシステンス機能:Cookieベース
・モニター機能:[HTTP/HTTPS] GETを実行し”200~399″で応答確認
※パス、間隔、タイムアウト、しきい値がカスタマイズ可能
・WAF(Web Application Firewall) ※ModSecurity CRS3.0(OWASP)
・SSLオフロード機能
・対応プロトコル:HTTP、HTTPS、WebSocket
・リバースプロキシとして動作
・”x-forwarded-for/proto/port” をサポート

構成を確認してみましょう!

[ラウンドロビン構成]
バックエンドサーバーを一つのプールに設定し、プール内でラウンドロビンを実施する。

[パスベース構成]
一つのドメイン内でパスを判別し、プールを振り分ける。プール内はラウンドロビン。

[URLベース構成]
複数のドメインを判別し、プールを振り分ける。プール内はラウンドロビン。

※NSGが存在する場合、受信ポート”65503~65534″を開けて下さい。


それでは、設定してみましょう!

[+新規]ー[ネットワーキング]ー[Application Gateway]を選択

名前:表示名
レベル:WAFの有無
SKUサイズ:例(6K/100K) S=7,5M/35Mbps,M=13M/100Mbps,L=50M/200Mbps
インスタンス数:パフォーマンス&金額がアップ ※2以上を推奨
サブスクリプション:Azureサービスの提供範囲
リソースグループ:グループ名(複数のリソースを1つにグループ化する機能)
場所:デプロイするAzureのリージョン

仮想ネットワーク:Application Gatewayを設置するVNetを選択 ※変更不可
サブネット:何も配置されていないサブネットに限る ※変更不可
IPアドレスの種類:外部公開用(パブリック) or 内部公開用(プライベート) ※変更不可
ーパブリックの場合、事前にPIPを”DNSラベル無し” “動的”で作成
プロトコル:待受け用プロトコル
ポート:待受け用ポート
ファイアーウォールの状態:WAFの有無
ファイアーウォールのモード:IDS or IPS

以上でApplication Gatewayの作成は完了です。


ここから設定を行っていきます。

設定箇所は8項目あり、単独で設定できる項目もあれば、順序が必要な項目もあります。
また、構成によっては設定不要な項目もあり、正直ややこしいです。

先ずは、各項目を確認してみましょう!

・構成:レベル、SKUサイズ、インスタンス数
・Webアプリケーションファイアーウォール:WAFの有無、検出/防止、ルールセット
・バックエンドプール:バックエンドサーバーの追加
・HTTP設定:Cookieベース、モニター設定(タイムアウト、プロトコル、ポート)
・フロントエンドIP構成:ユーザーからの接続先であり、プローブの送信元IP
・リスナー:Application Gatewayの待受け設定
ーBasic:フロントエンドIP構成=ポート番号=プロトコルを設定。
ーマルチサイト:フロントエンドIP構成=ポート番号=ホスト名(URL)=プロトコルを設定。
・ルール:
ーBasic:1ドメイン=1プールの設定。URLベースの場合、複数作成する。
ーパスベース:パスによりプールを振り分ける。
・正常性プローブ:カスタムモニター作成

項目の説明だけでは、よくわからないので、図にしてみます。

これで、各項目の関係が、ご理解頂けたかと思います。
先ず、[フロントエンドIP構成]を設定し、次に[リスナー]の設定を行う。
カスタムプローブが必要なら、先に[正常性プローブ]の設定を行ない、次に[HTTP設定]を行う。※カスタムプローブが不要なら[正常性プローブ]は不要
サーバーの登録を[バックエンドプール]にて行い、最後に[ルール]を設定する。
※[構成][WAF]は単独で設定可能なので省略しております。

この仕組を把握頂ければ、冒頭の構成を組むことが出来ると思います。

[注意点]
・バックエンドプールに、[仮想マシン]と[IP/FQDN]は混在登録できません。
※仮想マシン登録は、Application Gatewayと同一VNetに限る
・バックエンドプールに[IP/FQDN]で登録したい場合、フロントエンドIP構成で[パブリック]を構成する必要がある。
逆に、[仮想マシン]として登録したい場合、[プライベート]を構成する必要がある。
両方なら、両方を構成する。


おまけ

バックエンドプールに登録したサーバーの状態確認


Application Gatewayでのログ取得方法

・アクティビティログ
・アクセスログ
・パフォーマンスログ
・WAFログ

[診断ログ]ー[診断をオンにする]を選択