前回、Azure LoadBalancerとApplicationGatewayについて記載しました。
今回はApplicationGatewayを実際に使ってみようと思います。
■はじめに(事前準備)
事前に2台の仮想マシンを構築済みであることを前提としております。
※仮想マシンの複製方法は下記参照
ここでは、VM01、VM02というホスト名のRHEL7.7を2台用意しております。
また、各仮想マシンのWEBページは以下の通り表示されるものとしています。
【VM01のWEBページについて】
① http://グローバルIP/index.html
上記にアクセスすると以下ページが表示されるものとします。
② http://グローバルIP/vm01/index.html
上記にアクセスすると以下ページが表示されるものとします。
【VM02のWEBページについて】
③ http://グローバルIP/index.html
上記にアクセスすると以下ページが表示されるものとします。
④ http://グローバルIP/vm02/index.html
上記にアクセスすると以下ページが表示されるものとします。
念のため、仮想マシンに設定したapache2.4の設定ファイルも下記します。
※VM01のみ下記しますが検証用設定です。細かいところは気にしないでもらえると嬉しいです。
【/etc/httpd/conf.d/vm01.conf】
<VirtualHost *:80>
Alias /vm01 /var/www/html/vm01/
<Directory /var/www/html/vm01>
Require all granted
</Directory>
</VirtualHost>
【/var/www/html/index.html】
<html>
<head>
<title>VM1 Page</title>
</head>
<body>
<p>This is a VM1.</p>
</body>
</html>
【/var/www/html/vm01/index.html】
<html>
<head>
<title> VM01 Page</title>
</head>
<body>
<p>This is a /var/www/html/vm01/index.html.</p>
</body>
</html>
前段が長くなりましたが、下記から本題です。
■ApplicationGateway作成の流れ
実施手順が多いため、まずは流れを整理します。
また、該当する手順も一緒に記載しております。
① ApplicationGatewayの構成(レベル、SKUサイズ、インスタンス数)とApplicationGateway専用の仮想ネットワークとサブネットを設定します。
⇒ 下記手順1~3
② ApplicationGatewayのフロントエンドIPを設定します。
⇒ 下記手順4
③ バックエンドプールの設定をします。
⇒ 下記手順5
④ ApplicationGatewayのリスナーを設定します。
⇒ 下記手順7
⑤ ApplicationGatewayに届いたパケットのルーティング設定をします。
⇒ 下記手順8
■ApplicationGatewayの作成手順について
ここでは、ApplicationGatewayの動作確認を実施することを目的としている為、詳細な設定については言及しておりません。
詳細設定は下記参照ください。
1.アプリケーションゲートウェイを選択します。
2.「追加」をクリックします。
3.「基本」タブで必要事項を入力します。
レベル/インスタンス数/SKUサイズは検証目的のため、低スペックのものを選択しています。
また、「仮想ネットワーク」の構成では、ApplicationGateway専用の仮想ネットワークとサブネットが必要です。そのため、新規作成しております。
4.「フロントエンドの数」タブで必要事項を入力します。
ファイアウォールパブリックIPアドレスとは、ApplicationGatewayのフロントエンドのグローバルIPアドレスのことです。
5.「バックエンド」タブで必要事項を入力します。
ApplicationGatewayまで届いたパケットをApplicationGatewayにぶら下がっている仮想マシンに流す際の、
仮想マシンの組み合わせををここで指定しています。
「バックエンドプールの追加」をクリックし、仮想マシンに関連付けているグローバルIPアドレスを指定しています。
尚、ここでは以下バックエンドプールの構成を作成しています。
一つ目: apgw-backend (対象サーバ:VM01、VM02)
二つ目: apgw-backend-vm01 (対象サーバ:VM01)
三つ目: apgw-backend-vm02 (対象サーバ:VM02)
■初期画面
■設定後
6.「構成」タブで「ルーティングの規則」を設定するため、「ルーティング規則の追加」をクリックします。
7.「ルーティング規則の追加」の「リスナー」タブで必要事項を入力します。
8.同様に「ルーティング規則の追加」の「バックエンドターゲット」タブで必要事項を入力します。
※上記手順7からの続きの画面です。
9.「構成」タブに遷移するため、「次:タグ」をクリックします。
10.「確認および作成」をクリックし、「検証に成功しました」と表示されることを確認し、「作成」をクリックします。
※私の環境では、アプリケーションゲートウェイがデプロイ完了するまで20分程度かかりました。
11.作成完了すると、ApplicationGatewayのフロントエンドIP(グローバルIP)が割り振られていることが確認できます。
以上で、ApplicationGatewayの作成までは完了です。
引き続き、動作確認をしてみたいと思います。
■ApplicationGatewayの動作確認
1.上記手順11で確認したApplicationGatewayのフロントエンドIPでHTTPアクセスしてみます。
アクセスすると、「This is a VM1.」もしくは「This is a VM2.」が表示されます。
また、F5ボタン等でブラウザ画面を更新すると、表示が切り替わることが確認できます。
つまり、負荷分散が実施されていることがわかります。
※もう少し詳細を言うと、「バックエンドターゲット」(=apgw-backend)の設定により、指定した2台の仮想マシン(VM01,VM02)へ振り分けられている状態です。
2.続いて、以下URLにアクセスします。
①「http://ApplicationGatewayのフロントエンドIP/vm01/index.html」
②「http://ApplicationGatewayのフロントエンドIP/vm02/index.html」
①は、「This is a /var/www/html/vm01/index.html.」と表示されます。
②は、「This is a /var/www/html/vm02/index.html.」と表示されます。
これらは、F5ボタン等でブラウザ画面を更新しても表示は切り替わりません。
理由は、パスベース規則で指定しているバックエンドプール(apgw-backend-vm01とapgw-backend-vm02)のサーバにのみにパケットが届いているからです。
以上です。