Azure Application Gatewayで特定のパスに来たアクセスを特定のVirtual Machineに振り分ける

 

管理画面へのアクセス等、特定のパスへアクセスを特定のバックエンド(Virtual MachineやWeb Apps)へ振り分けたいという事があるかと思います。今回は、Application Gatewayの設定で試してみました。

設定が必要な内容は、以下の2点になります。

1)バックエンドプールを作成する。
2)パス ベースの規則を追加する。

今回は、2台構成(VM1、2)で、以下のようにadminというパスに来たアクセスはVM1に、それ以外のアクセスは、2台(VM1、2)で受信するような構成を想定します。

http://www.xxxx.com/admin/

※Application Gatewayは作成済みである前提になります。

1 .バックエンドプールを作成する

特定のパスに来たアクセスを受信するバックエンドプールを作成します。
Application Gateway→バックエンドプールで、+追加を選択すると下記画面が表示されます。
ここで特定のパスへ来たアクセスを受信する仮想マシン(今回の場合はVM1)を選択します。

選択が終わったら、名前を入力し保存します。
同様に、すべてのアクセスを受信するバックエンドプールを同様に作成します。(今回のはVM1、2を選択します。)

下記のように2つのバックエンドプールが作成されます。以下の画面は2台構成のパターンで特定のパスへのアクセスを振り分けるサーバを1台にしているので、対象サーバ数が2と1となっています。(ルールはすでに設定済みなので、下記数字になっています。ルール設定前ではゼロになります。)

.パス ベースの規則を追加する

ルールを選択すると、Basicとパスベースが表示されますので、パスベースを選択します。
下記画面が表示されますので、名前、リスナーや、規定のHTTP設定を選択します。
既定のバックエンドプールは、すべてのアクセスを受信するバックエンドプールを選択します。

ルールは上から順番に処理されます。特定のパスへの処理を上に設定します。これを間違えると、ルールが有効に機能しません。

上記の通り、設定し保存すると、特定のパスへのアクセスを特定の仮想サーバへのみアクセスさせる事が可能になります。
バックエンドプールに参加させるサーバを変えることで、/aaa/へ来たアクセスはVM1のみ、/bbb/へ来たアクセスはVM2のみににアクセスさせる等のような事も簡単にできます。

※マイクロソフトサポート様に色々ご教授頂き、何とか設定できるようになりました。いつも本当に有難うございます。