はじめてのMicrosoft Azure(ロードバランサ#3)
前回までの記事はこちら
はじめてのMicrosoft Azure(ロードバランサ#2) - LinuxユーザーがイジるはじめてのAzure
それでは前回からの続きです。
既にCentOS7.2の仮想マシンが2台、publicip、vNET、subnet、NSGなどがTemplate Deployから作成済だと思います。
まずは2台の仮想マシンへsshログインしHTTPポートを受け付ける設定を入れましょう。
ログインしたらsudo su - でルートアカウントになります。
[root@templatecent2 ~]# yum list httpd
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Available Packages
httpd.x86_64 2.4.6-40.el7.centos.1 updates
[root@templatecent2 ~]#
httpdは既にリポジトリに入っているようですので、こちらを利用してみましょう。
※apacheの最新verがいいんだ!という方はwgetでもってきてrpmインストールしましょう。wgetはインストールする必要はありません。
[root@templatecent2 ~]# yum install httpd.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.1 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.1 for package: httpd-2.4.6-40.el7.centos.1.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.1.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.1.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.1.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.1 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
httpd x86_64 2.4.6-40.el7.centos.1 updates 2.7 M
Installing for dependencies:
apr x86_64 1.4.8-3.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
httpd-tools x86_64 2.4.6-40.el7.centos.1 updates 82 k
mailcap noarch 2.1.41-2.el7 base 31 kTransaction Summary
================================================================================
Install 1 Package (+4 Dependent packages)Total download size: 3.0 M
Installed size: 10 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00
(2/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00
(3/5): httpd-2.4.6-40.el7.centos.1.x86_64.rpm | 2.7 MB 00:00
(4/5): httpd-tools-2.4.6-40.el7.centos.1.x86_64.rpm | 82 kB 00:00
(5/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00
--------------------------------------------------------------------------------
Total 5.1 MB/s | 3.0 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : apr-1.4.8-3.el7.x86_64 1/5
Installing : apr-util-1.5.2-6.el7.x86_64 2/5
Installing : httpd-tools-2.4.6-40.el7.centos.1.x86_64 3/5
Installing : mailcap-2.1.41-2.el7.noarch 4/5
Installing : httpd-2.4.6-40.el7.centos.1.x86_64 5/5
Verifying : mailcap-2.1.41-2.el7.noarch 1/5
Verifying : httpd-2.4.6-40.el7.centos.1.x86_64 2/5
Verifying : apr-util-1.5.2-6.el7.x86_64 3/5
Verifying : apr-1.4.8-3.el7.x86_64 4/5
Verifying : httpd-tools-2.4.6-40.el7.centos.1.x86_64 5/5Installed:
httpd.x86_64 0:2.4.6-40.el7.centos.1Dependency Installed:
apr.x86_64 0:1.4.8-3.el7 apr-util.x86_64 0:1.5.2-6.el7
httpd-tools.x86_64 0:2.4.6-40.el7.centos.1 mailcap.noarch 0:2.1.41-2.el7Complete!
[root@templatecent2 ~]#
インストールはうまくできましたので、起動させましょう。
[root@templatecent2 ~]# service httpd start
Redirecting to /bin/systemctl start httpd.service
[root@templatecent2 ~]# ps -ef | grep http
root 1331 1 6 03:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 1332 1331 0 03:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 1333 1331 0 03:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 1334 1331 0 03:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 1335 1331 0 03:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 1336 1331 0 03:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
root 1338 1238 0 03:17 pts/0 00:00:00 grep --color=auto http
[root@templatecent2 ~]#
うまく起動できました。確認は「service httpd status」や「netstat -an | grep ":80"」などで確認できます。
このままではデフォルトページが表示されるだけです。この後のLBのアクセスが分散されているか確認しづらいため、「/var/www/html」配下にindex.htmlを配置しておきましょう。
[root@templatecent html]# cd /var/www/html
[root@templatecent html]# ls -l
total 4
-rwxr-xr-x. 1 root root 80 May 31 03:15 index.html
[root@templatecent html]# cat index.html
<html>
<head></head>
<body>
<font size=20>Hello Azure !!</font>
</body>
</html>
[root@templatecent html]#
これで1台目の設定は終了です。
2台目の設定も同じでやっておきましょう。2台目はindex.htmlの中身の文字列をHello AzureではなくHello Azure 2 とか、違いがわかるようにしておくとよいです。
さて、お膳立ては整いましたので、ロードバランサーを作成します。
Azureポータルへログインします。
左ペインのメニュー「参照>」から「ロード バランサー」を選択します。
「追加」から、以下の設定を入れて作成ボタンを押します。
「名前」は適当にわかりやすい名前をいれましょう。
「スキーム」の個所はExternalかInternalかの選択です。今回はインターネットから80portでアクセスを受け付け、配下に振り分けた2台の仮想マシンへ分散するためExternal LoadBalancerとして使います。パブリックを選択しましょう。
「パブリックIPアドレス」の部分は今作成しようとしているLBのVIPになります。新規に静的アドレスとして1つ用意しましょう。
リソースグループは2台の仮想マシンがいるリソースグループを選択します。一通り設定が終われば作成ボタンを押して待ちます。
作成されたら左ペインのリソースグループからtemplatetest-rgを覗いてみましょう。
先ほど作成したロードバランサーが新たに加わっていることがわかります。
クリックして設定を入れていきます。
作成時に新規で用意したVIPがちゃんとついていますね。
では「設定」ボタンから右側に表示されている以下の設定を入れていきます。
1、プローブ
名前が???だと思いますが、ここでは「どのプロトコルとポートに対して」「何秒間アクセスできなければ異常とし」「何回リトライ回数とするか」の設定を入れます。
平たく言えば「分散対象に対して異常判定する閾値を設定する」です。
今回はHTTPですので、80と設定し、閾値はデフォルトのままでいきます。
2、バックエンドプール
これまた何のこと?という名前ですが、分散対象の仮想マシンを選ぶ設定です。
2台用意した仮想マシン(templatecent、templatecent2)を選択し分散対象としま
しょう。
3、負荷分散規則
LBが受け付けるポート(80)と分散対象の仮想マシンへ通信するポート(80)を
入れます。また、先ほど設定準備したプローブの設定名とバックエンドプールの
設定名を入れます。セッション永続化やアイドルタイムアウトはお好みで設定し
ましょう。
ここまで準備できれば完了です。
LBのVIPに対してブラウザか表示させてみましょう。何度かブラウザの更新をするとhello azureとhello azure2が表示されると思います。うまく分散されている証拠です。
service httpd stop で落ちます。
同じようにLBのVIPをブラウザから何度か更新すると、片方のhello azure 2しか表示されなくなります。うまく切り離されていることがわかります。
以上でロードバランサーの記事は終わりとします。
以下参考ですが、今回用意したVIP・DNS名に対してHTTPのサービス監視を入れることもできます。現在はまだプレビュー版となっていますが、「参照>」からapplication Insightsというものがあります。
WEBサイトの解析等が細かく設定できるものですが、以下のようにURLに対して監視設定を入れ、エラーとなったら任意のメールアドレスへメール送信する、といったこともできます。興味がある方は是非やってみてください。
ご参考まで。