Azure Application Gatewayでパスベースルールを使ってアクセスを振り分ける
サイトの管理画面へのアクセス等、特定のパスへアクセスを特定のバックエンド(Virtual MachineやWeb Apps)へ振り分けたいという事があるかと思います。
そういう場合はApplicarion Gateway上で2つの設定を行います。
- バックエンドプールを作成する。
- ルールにてパス ベースのルーティン規則を追加する。
今回はAzure VM2台構成として、以下のようにadminというパスに来たアクセスはVM1に振り分ける設定で試してみました。
上記以外のパスへのアクセスは2台(VM1、2)で受信するような構成を想定します。
Application Gateway自体の作成は下記記事に記載しておりますので併せて参照頂ければと。
Application Gatewayのバックエンドプールを追加
パスベースのルールで使用するバックエンドプールを追加します。追加する内容は2つになります。
1)VM1のみが存在するバックエンドプール(APGW-backend01)(特定のパスへのアクセスを受信するバックエンドプール)
2)VM1、2が存在するバックエンドプール(APGW-backend02)(それ以外のアクセスを受信するバックエンドプール)
まず、特定のパスに来たアクセスを受信するバックエンドプール(APGW-backend01)を作成します。
アプリケーションゲートウェイでバックエンドプールを選択すると下記画面が表示されますので、追加をクリックします。
下記画面が表示されますので、転送先のVMを指定します。(今回の場合はVM1を指定)
同じくそれ以外のパスへ来たアクセスを受信するバックエンドプール(APGW-backend02)を作成します。下記の通りVM1,VM2を指定します。
下記のように2つのバックエンドプールが作成されます。
-
- APGW-backend01が特定のパスに来たアクセスを受けるバックエンドプールになります。(対象サーバがVM1のみの1台になります。)
- APGW-backend02がそれ以外のアクセスを受けるバックエンドプールになります。(対象サーバがVM1、VM2の2台になります。)
これでバックエンドプールの作成は終了です。
Application Gatewayにパス ベースのルーティング規則を追加
パスベースの規則作成ですが、Basicのルールからの変更はAzure Portalを利用しては出来ません。新規に作成する必要があります。
作成にあたっては、パスベース用のリスナー等を新規に作成する必要があります。
残念ながらデフォルト作成した状態では、リスナーやルールが1つしかない為削除できません。作成した後に後で削除する必要があります。
-
-
- 既存リスナーの設定変更及び新規リスナーの作成
- パスベースのルール作成
- 既存リスナー、既存ルールの削除
-
※今回はお試しなのでこの手順で実施しています。停止を伴う為実際の環境で実施する場合は作業手順を検討して実施する事が必要になります。
1)まず既存リスナーのポート番号を変更します。これは同じポート番号でリスナーが作成できない為になります。今回は81を指定して保存しています。
2)新規にリスナーを追加します。今回はAPGW-Listener01という名前で追加しています。
設定が完了すると下記のような感じで2つリスナーができます。
3)次にルールの追加を行います。ルールを選択すると下記画面が表示されますので、要求ルーティングルールを選択します。
4)リスナーのタブでルール名を適時入力します。リスナーは先ほど作成したリスナーを選択します。
5)バックエンドターゲットのタブで、バックエンドターゲット、HTTP設定を選択します。パス ベースの規則を作成するには複数のターゲットを追加しますを選択します。
6)まず最初に/adminに来たアクセス用のルーティング規則を作成します。バックエンドプールにはVM1のみが含まれるバックエンドプールを指定します。
7)次にそれ以外に来たアクセス用のルーティング規則を作成します。バックエンドプールにはVM1、VM2が含まれるバックエンドプールを指定します。
作成が完了すると下記のように表示されています。
これで作成作業自体は完了です。
最後に、既存のルール削除、リスナーの削除を行えば作業完了です。(これを忘れないように注意が必要です。)
今回は基本的な設定を行いましたが、複数のパスを指定するような事も可能です。色々試してみたい所です。
※マイクロソフトサポート様に色々ご教授頂き、何とか設定できるようになりました。いつも本当に有難うございます。