LoginSignup
1
2

More than 1 year has passed since last update.

Azure Application Gateway のパスベースルーティングを試してみる

Posted at

Azure Application Gateway のパスベースのルーティングが Azure Portal から GUI ベースでサクッと構築できるという情報を聞いたので、使用感などさっそく試してみたいと思います。
本日参考にするのはこちら => チュートリアル:Azure Portal を使用してパス ベースのルーティング規則のあるアプリケーション ゲートウェイを作成する

image.png

バックエンドサーバーの仮想マシン作成

まずはバックエンドの IIS サーバーを 3つ作成します。
※チュートリアルでは IaaS サーバー作ってそこに IIS インストールする感じですが、バックエンドターゲットにアプリのサービスポイントを追加できたりするので、IIS にこだわらなくても大丈夫です。(IISインストールめんどくさい、、、笑)
image.png

作成した VM に IIS を Azure CLI を使ってインストールします。少しめんどくさいですが、myVM1 / myVM2 / myVM3 の 3つすべての VM に対して実行します。
チュートリアルにあるコマンドが少し間違っていました。こちらを実行すれば IIS はインストールされます。

Set-AzVMExtension -ResourceGroupName "APGWValRG" `
    -ExtensionName "IIS" `
    -VMName "myVM1" `
    -Location "japaneast" `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.8 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'

Set-AzVMExtension -ResourceGroupName "APGWValRG" `
    -ExtensionName "IIS" `
    -VMName "myVM2" `
    -Location "japaneast" `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.8 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'

Set-AzVMExtension -ResourceGroupName "APGWValRG" `
    -ExtensionName "IIS" `
    -VMName "myVM3" `
    -Location "japaneast" `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.8 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'

これでVMは完成です。

アプリケーションゲートウェイの作成

Azure Portal から Application Gateway のデプロイをします。今回はとりあえず Standard V2 プランを選択しました。仮想ネットワークは myVNet、サブネットは APGW 用に作成した myAGSubnet を選択します。
image.png
次にフロントエンドの設定をします。パブリック IP アドレスを新規追加します。名前は適当に myAGPublicIPAddress としました。
image.png
次にバックエンドプールの追加をします。新しく myBackendPool という名前のバックエンドプールを追加します。ターゲットの種類で作成した仮想マシンの VM1 を選択します。
この手順と同様に、ImagesBackendpoolVideoBackendpool を作成し、それぞれターゲットを myVM2myVM3 とします。
image.png
次にルーティング規則を設定します。リスナーを作成し、8080 ポートを指定。
タブの バックエンドターゲットからパスベースのルーティング規則を設定していきます。
image.png
こんな感じで /images/video パスの際にどのバックエンドプールにルーティングするかを設定することができます。
image.png
検証してデプロイが完了すると、こんな感じで同じリソースグループに作成した VM と Application Gateway、パブリックIP が作成されていることがわかります。
※アプリケーションゲートウェイはロードバランサーと同様で作成に少し時間がかかります。私の環境では10分程度かかりました。
image.png

試してみる

実際に試してみましょう。パブリックIPアドレス + Http 設定であけたポート 8080 を入れるとまずは VM1 に飛びます。
image.png
ルーティング規則を設定した /image/test.htm、並びに /video/test.htm にアクセスするとそれぞれルールを設定したバックエンドプールにルーティングされ、バックエンドVMで指定されている myVM2, myVM3 にルーティングされていることがわかります。
image.png
image.png

デプロイに時間がかかったり少し設定がめんどくさかったですが、これで自動スケールなどもやってくれるので、開発者はより開発に注力できるという点では便利なサービスではないでしょうか。

所感

試してみる中で感じたことをメモ代わりに書いておきます。

  • ルーティング規則を設定するのが簡単で便利。ただ少しインターフェスがわかりにくい。バックエンドプールとルーティングをもう少し図で分かりやすいインターフェイスがあるとより便利かと思いました。
  • チュートリアルは IIS インストールですが、それが思いのほか時間がかかります。バックエンドプールのターゲットには仮想マシンのほかにも、IPアドレス、FQDN、仮想マシンスケールセットIP、アプリのサービスポイントが追加できるので、PaaSサービスをサービスポイントでルーティングする方が試しやすいのではないかと思います。
  • 価格形式がわかりにくい。Standard/WAF で価格が変わったり、価格算出の内部の構成がデプロイする際には少しわかりにくいと感じました。次の記事では APGW の価格構成についてまとめたいと思います。

参考

チュートリアル:Azure Portal を使用してパス ベースのルーティング規則のあるアプリケーション ゲートウェイを作成する
https://docs.microsoft.com/ja-jp/azure/application-gateway/create-url-route-portal

クイック スタート:PowerShell を使用して Azure に Windows 仮想マシンを作成する
https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/quick-create-powershell#view-the-web-server-in-action

クイック スタート:Azure Application Gateway による Web トラフィックのルーティング - Azure portal
https://docs.microsoft.com/ja-jp/azure/application-gateway/quick-create-portal#add-backend-targets

Azure Application Gateway とは
https://docs.microsoft.com/ja-jp/azure/application-gateway/overview

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2