LinuxユーザーがイジるはじめてのAzure

LinuxユーザーがMicrosoft Azureを使いこなせるように応援するブログです

はじめての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 Resolution

Dependencies 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 k

Transaction 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/5

Installed:
  httpd.x86_64 0:2.4.6-40.el7.centos.1

Dependency 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.el7

Complete!
[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ポータルへログインします。

 

 

f:id:akazure:20160601111850j:plain

 

左ペインのメニュー「参照>」から「ロード バランサー」を選択します。

「追加」から、以下の設定を入れて作成ボタンを押します。

f:id:akazure:20160601112216j:plain

 

「名前」は適当にわかりやすい名前をいれましょう。

「スキーム」の個所はExternalかInternalかの選択です。今回はインターネットから80portでアクセスを受け付け、配下に振り分けた2台の仮想マシンへ分散するためExternal LoadBalancerとして使います。パブリックを選択しましょう。

「パブリックIPアドレス」の部分は今作成しようとしているLBのVIPになります。新規に静的アドレスとして1つ用意しましょう。

リソースグループは2台の仮想マシンがいるリソースグループを選択します。一通り設定が終われば作成ボタンを押して待ちます。

 

作成されたら左ペインのリソースグループからtemplatetest-rgを覗いてみましょう。

先ほど作成したロードバランサーが新たに加わっていることがわかります。

クリックして設定を入れていきます。

f:id:akazure:20160601113342j:plain

 

作成時に新規で用意したVIPがちゃんとついていますね。

では「設定」ボタンから右側に表示されている以下の設定を入れていきます。

 

1、プローブ

 名前が???だと思いますが、ここでは「どのプロトコルとポートに対して」「何秒間アクセスできなければ異常とし」「何回リトライ回数とするか」の設定を入れます。

平たく言えば「分散対象に対して異常判定する閾値を設定する」です。

今回はHTTPですので、80と設定し、閾値はデフォルトのままでいきます。

 

2、バックエンドプール

 これまた何のこと?という名前ですが、分散対象の仮想マシンを選ぶ設定です。

 2台用意した仮想マシン(templatecent、templatecent2)を選択し分散対象としま

 しょう。

3、負荷分散規則

 LBが受け付けるポート(80)と分散対象の仮想マシンへ通信するポート(80)を

 入れます。また、先ほど設定準備したプローブの設定名とバックエンドプールの

 設定名を入れます。セッション永続化やアイドルタイムアウトはお好みで設定し

 ましょう。

 

ここまで準備できれば完了です。

LBのVIPに対してブラウザか表示させてみましょう。何度かブラウザの更新をするとhello azureとhello azure2が表示されると思います。うまく分散されている証拠です。

 

試しに仮想マシン1台のhttpdを落としてみてください。

service httpd stop で落ちます。

同じようにLBのVIPをブラウザから何度か更新すると、片方のhello azure 2しか表示されなくなります。うまく切り離されていることがわかります。

 

以上でロードバランサーの記事は終わりとします。

 

以下参考ですが、今回用意したVIPDNS名に対してHTTPのサービス監視を入れることもできます。現在はまだプレビュー版となっていますが、「参照>」からapplication Insightsというものがあります。

WEBサイトの解析等が細かく設定できるものですが、以下のようにURLに対して監視設定を入れ、エラーとなったら任意のメールアドレスへメール送信する、といったこともできます。興味がある方は是非やってみてください。

f:id:akazure:20160601115555j:plain

 

ご参考まで。