Azure Application Gatewayのパスベース規則を使ったサーバー振分け設定

2020-02-22Application Gateway,Azure

Azure Application Gateway(アプリケーションゲートウェイ)を使った、パスベースのルーティング規則によるWebサーバー振り分け設定の紹介です。

アプリケーションゲートウェイでは、WebアクセスのURLパスに応じて、振り分け先のサーバーを変更することができます。
特定のURLパスに来たアクセスを別のサーバーへ転送することも可能です。

今回は、2台のWebサーバーを使って、URLパスごとに転送先サーバーを変更する設定手順を確認しました。

2つのバックエンドプールを作成し、それぞれにWebサーバーを関連付けてます。
URLパスごとにパスベースの規則を作成、それぞれのバックエンドプールを関連付けしています。

※本記事内ではAzure Application Gatewayをアプリケーションゲートウェイと表記しています。

アプリケーションゲートウェイの概要や作成手順はこちらの記事で紹介しています。

スポンサーリンク

アプリケーションゲートウェイでパスベースのルーティング規則を設定

パスベースのルーティング規則とは

WebアクセスがあったURLパスに応じて、トラフィックをルーティングするサーバーを指定する機能です。

URL パス ベースのルーティングの概要

トラフィック転送先のサーバーはバックエンドプールにより指定します。
ルーティング規則の設定の中に、パスベースの規則設定があります。
アクセスのURLパス、転送先バックエンドプール、バックエンド設定をパスベースのルーティング規則として設定します。

システム構成

1つのアプリケーションゲートウェイに2つの仮想マシンを利用してします。
アクセスのURLパスにより、転送するWebサーバーを変えています。

    •  http://203.0.113.1/vm01/
      • backend-pool-vm-01(test-vm-01)
    • http://203.0.113.1/vm02/
      • backend-pool-vm-01(test-vm-02)
システム構成
1つのアプリケーションゲートウェイに2台のWebサーバーという構成としています。 Azure Application Gatewayのパスベース規則の検証環境構成図

※Application Gateway V2のベーシック(SKU)を利用しています。
※Webサーバーは、Azure上の仮想マシン(Windows Server 2022)にIISをインストールして構成しています。

アプリケーションゲートウェイの設定内容

アプリケーションゲートウェイの主な設定内容です。
バックエンドプール、バックエンド設定、リスナーの設定内容です。

主な設定内容
バックエンドプール backend-pool-vm-01 test-vm-01(10.0.1.4)
backend-pool-vm-02 test-vm-02(10.0.1.5)
バックエンド設定 backend-01 HTTP(80)
リスナー listener-01 HTTP(80)

ルーティング規則(ルール)の設定内容です。

主な設定内容
ルーティング規則
(ルール)
名前 routing-rules-01
優先度 10
リスナー listener-01
バックエンド ターゲット backend-pool-vm-01
バックエンド設定 backend-01
パスベースの規則

パス /vm01/*
ターゲット名 vm01
バックエンド設定名 backend-01
バックエンド プール backend-pool-vm-01
パス /vm02/*
ターゲット名 vm02
バックエンド設定名 backend-01
バックエンド プール backend-pool-vm-02

バックエンドプールを追加

Webサーバーのバックエンドプールを追加します。
追加するバックエンドプールは2つです。
test-vm-01をターゲットして指定するbackend-pool-vm-01と、test-vm-02をターゲットとして指定するbackend-pool-vm-02を追加します。

バックエンドプール設定
バックエンドプールを追加します。
名前、ターゲットの種類、ターゲットを設定します。
Azure Application Gatewayのバックエンドプール設定画面例
Azure Application Gatewayのバックエンドプール追加画面例
Azure Application Gatewayのバックエンドプール一覧画面例

※バックエンドプールはIPアドレスだけではなく、仮想マシン、仮想マシンスケールセット(VMSS)、App Serviceのリソースを指定できます。

バックエンド設定

バックエンド設定を追加します。

バックエンド設定を追加

バックエンド設定を追加します。
名前、バックエンドプロトコルなどを設定します。

※追加設定は利用用途に合わせて適時設定します。

Azure Application Gatewayのバックエンドプール設定の追加画面例
Azure Application Gatewayのバックエンドプール設定の一覧画面例

リスナーを追加

リスナーを追加します。

リスナーを追加

リスナーを追加します。
名前、フロントエンドIP、ポート番号などを設定します。

Azure Application Gatewayのリスナー追加の画面例
Azure Application Gatewayのリスナー一覧の画面例

※リスナーの種類はBasicとしています。利用用途に合わせて適時設定します。

ルーティング規則の追加

ルーティング規則を追加して、パスベースの規則を設定します。
パスベースの規則では、対象となるURLパス、ターゲットとなるバックエンドプールを指定します。

バックエンドの設定はパスベースの規則に該当しない場合に適用されます。
今回の設定の場合はhttp:://203.0.113.1/にアクセスした場合などに適用されます。

ルーティング規則の追加
ルールのメニューでルーティング規則を地位化します。
ルール名、優先度、リスナーを設定します。
Azure Application Gatewayのルーティング規則追加設定のリスナータブの画面例
バックエンドのタブでバックエンドターゲットやバックエンド設定を指定します。
パスベースの規則もバックエンドのタブに設定があります。
“パスベースの規則を作成する荷には複数のターゲットを追加します"を選択し追加します。

Azure Application Gatewayのルーティング規則追加でバックエンドターゲットタブの画面例
Azure Application Gatewayのルーティング規則追加例
Azure Application Gatewayのルーティング規則追加例

—広告—

パスベースのルーティング規則によるWebサーバの振り分けを確認

Webサーバーの構成

Webサーバーのそれぞれのパスにサーバー名を表示するHTMLを配置しています。
WebサーバーにはIIS(Microsoft Internet Information Services)を利用しています。

Webサーバーの構成

test-vm-01にはvm01というディレクトリを作成しています。
vm01のディレクトリ内にtest-vm-01と表示するhtmlファイルを配置しています。

test-vm-02にはvm02というディレクトリを作成しています。
vm02のディレクトリ内にtest-vm-02と表示するhtmlファイルを配置しています。

Webサーバー(IIS)のコンテンツ配置例
Webサーバー(IIS)のコンテンツ配置例

パスベースの規則によるWebサーバの振り分けを確認

3つのURLにWebブラウザでアクセスして

    •  http://203.0.113.1/vm01/
      • test-vm-01(Webサーバー)が表示される
    •  http://203.0.113.1/vm02/
      • test-vm-02(Webサーバー)が表示される
    • http://203.0.113.1/
      • test-vm-01(Webサーバー)が表示される
アクセス確認
それぞれのURLへアクセスして確認します。
想定通りのWebサーバーのコンテンツが表示されています。
パスベースの規則のアクセス画面例(vm01のURLパス)
パスベースの規則のアクセス画面例(vm02のURLパス)
パスベースの規則のアクセス画面例(パスベースの規則で設定した以外のアクセス)

最後に

アプリケーションゲートウェイで、パスベースのルーティング規則を使ったWebサーバー振り分け設定を確認してみました。
URLパスごとに別のバックエンドプールへトラフィック転送できる事が確認できました。
管理者用URLだけ別のWebサーバへトラフィック転送する、画像コンテンツのパスだけ専用のWebサーバへ転送するといった事も可能そうです。

引き続き色々試してみたいと思います。

アプリケーションゲートウェイのバックエンド正常性確認方法や監視設定についてはこちらで紹介しています。

スポンサーリンク