メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

kemp LoadMasterによる負荷分散設定 - HTTPサーバ編

今回は、Kemp Technologies社のロードバランサ kemp LoadMasterの仮想アプライアンス版で、Webサーバ3台の負荷分散設定とSorryページの表示設定をやってみた。

3日連続のkemp LoadMasterネタ。しかしメンタル不調は継続中につき「かじってみた」レベルにまだ留めている認識だが、ここまで来てNeutrinoやZEVENETやPenに移る気力なんか無い。設定項目自体はF5 BIG-IPやA10 Thunderより少ないとは言え、ロードバランサとしての基本はしっかりと掴んでいるようには見える上、動作が軽快である為、学習環境としてこのまま使用し続けようかと思う。



当方の環境
・ホストOS:Windows7 32bit
・Virtualbox 5.2.32
・ゲストOS:Kemp LoadMaster 7.2.50.0.18765.RELEASE
・Web Server:IWS 07.00 (Android端末3台にインストール)
・WLANでホストOSとAndroid端末3台を接続
・LoadMaster側は既にホスト名とインタフェースの設定は終えている状態



設定方針
・負荷分散方式はLeast Connection
・セッション維持方式はCookie
・細かな設定値は変更せずデフォルト値のまま
・3台のWebサーバがダウンしたら、外部からのアクセスはSorryサーバに渡され、クライアント側のWebブラウザでSorryを表示させる
・全断の時はホストOSで動作しているWebサーバに渡され、クライアント側のWebブラウザ上で503:Service Unavailableを表示させる




バーチャルサーバの設定
最初にバーチャルサーバを設定する。クライアント側から見て、トラフィックの受付先がバーチャルサーバとなる。
バーチャルサーバは関連付けされたリアルサーバに対しトラフィックを受け流す。
LoadMasterでは、F5 BIG-IPで言うPool MemberはReal Serversに置き換えて呼ぶ。Virtual Serverはそのまま。

Home画面にて、左側のVirtual Servicesをクリック
Virtual Services - Add New
Virtual Address: IPアドレス
Port: 8080
Service Name: Virtual Serverのホスト名
Protocol:tcp
Add this Virtual Serviceをクリック


[Basic Properties]
Service TypeをHTTP-HTTP/2-HTTPに変更すると、[Advanced Properties]の表示内容がHTTP/HTTPSに特化した内容に変わる。
核設定項目から判断すると、F5 BIG-IPで言う「HTTP Profile」に相当するものと思われる。
Service Name:上記で設定したService Nameが表示されている
Alternate Address:空欄
Service Type:HTTP-HTTP/2-HTTPSを選択
Activate or Deactivate Service:チェックを入れる


[Standard Options]
Persistence(セッション維持)とScheduling Method(負荷分散方式)が同じStandard Option内で設定される。
設定項目およびオプション値は最低限のように見えるが、Persistenceは種類が多い。
F5 BIG-IPで言うCookieパーシステンスに当たるセッション維持機能は「Active Cookie」が該当するようだ。
(https://support.kemptechnologies.com/hc/en-us/articles/202040875-Layer-7-persistence-methods の「Active Cookie Persistence」を参照)

Force L4:チェック無し
Transparency:チェック無し
Subnet Originating Requests:チェック無し
Extra Ports:空欄
Server Initiating Protocols:Other Server Initiatingを選択
Persistence Options Mode:Active Cookieを選択
Persistence Options Timeout:6 Minutesのまま
Persistence Options Cookie_name:Set_Meのまま
Scheduling Methos:least connectionを選択
Idle Connection Timeout:空欄
Quarity of Service:Normal-Service


[SSL Properties]
SSL Acceleration Enabled:チェック無し


[Advanced Properties]
Content Switching:Disabledのまま
HTTP Selection Rules:そのまま
HTTP Header Modifications:そのまま
Responce Body Modification:そのまま
Enable Caching:チェック無し
Enable Compression:チェック無し
Detect Malicious Requests:チェック無し
Enable Multiple Connect:チェック無し
Add Header to Request:空白
Copy Header in Request:空白
Add HTTP Headers:Legacy Operation(X-Forwarded-For)のまま
"Sorry" Server:192.168.3.19 Port 8080
Default Gateway:空白
Service Specific Access Control:そのまま



物理サーバの設定
F5 BIG-IPと同様に、バーチャルサーバの次に物理サーバの設定をする。
トラフィックを受け取ったバーチャルサーバは、ラウンドロビンや最小コネクション数など設定された負荷分散方式により、物理サーバにトラフィックを割り振る。

[Real Servers]
Add Newをクリック

Please Specify the Parameters for the Real Serverの画面にて
Allow Remote Addresses:チェック無し
Real Server Address:HTTPサーバのIPアドレスを入力
Port:8080
Forwarding method:nat
Weight:1000のまま
Connection Limit:空欄
Add This Real Serverをクリックし設定を保存。
Backをクリック
負荷分散対象のFTPサーバの台数分、Real ServerをAdd Newから作成する

Real Serversの欄に戻り
Real Server Check Method:HTTP Protocolを選択
Checked Port:8080
URL:空白
Status Codes:空白
Use HTTP/1.1:チェック無し
Reply 200 Pattern:空白
Custom Header:空白
Enhanced Options:チェック無し

全て設定が終わったら Backをクリック



監視間隔の設定
[Rules & Checking]
F5 BIG-IP LTMだけど、今までに居た案件の値を参考に設定した。監視間隔5秒、リトライ3回、タイムアウト16秒。
しかし、前回のFTP負荷分散の際に指摘したとおりリトライとタイムアウトの単語がテレコになっている。

Check Parameters - Service Check Parameters
Check Interval(sec):16
Connect Timeout(sec):5
Retry Count:3

当項目の設定保存は、Virtual ServicesやReal Servers等他の設定項目をクリックする事で実行される。
また、当項目で設定した値は、HTTP/HTTPS/FTP...負荷分散対象サーバ/サービス問わず共有されるようだ。



ステータスの確認
[Virtual Services]
View/Modify Servicesをクリックすると、バーチャルサーバおよび物理サーバのステータスを確認する事が出来る。
上記の設定が正常に完了出来たなら、各Real ServerのステータスはUpの状態(緑色の丸)になっている。
※赤丸のステータスはFTPサーバ用の設定。今回は未使用につき赤で問題無し。



3台のPC(自分Macbook、嫁PC、息子PC)からWebサーバにアクセスしファイルのGETを試みたところ、前回のFTPサーバと同様にラウンドロビンの如く3台のWebサーバに負荷分散された。
この状態でWebサーバを1台づつ落としてみたら、生き残っている他のWebサーバに振り分けられるまでに要する時間は、前回同様に5~10秒とばらつきが有った。5回試行したが結果は同じ。
3台のWebサーバ全てを落としたら、想定どおりSorryページに渡された。
その際のステータス表示は、オレンジ色の矢印に「Sorry」のステータス。



以下はSorryの表示。HTTPサーバアプリ「IWS」で指定したディレクトリに自作のindex.htmlを置いて、外部からアクセスしたPCのWebブラウザで表示させている。


更にSorryサーバを落とした状態で外部からWebサーバにアクセスを試みたら、503の表示。これはホストOSで動作している簡易HTTPサーバのアプリで指定したフォルダに自作のindex.htmlを置いて、外部からアクセスしたPCのWebブラウザで表示させている。少なくともA10 Thunderでは内部でSorryページを持てたと思うが、LoadMasterでの設定方法は不明。




https://debslink.hatenadiary.jp/entry/20200629/1593357476 追記:kemp LoadMasterによる負荷分散設定 - HTTPSサーバ編
https://debslink.hatenadiary.jp/entry/20200613/1592014142 前回:kemp LoadMasterによる負荷分散設定 - FTPサーバ編
https://debslink.hatenadiary.jp/entry/20200612/1591889920 前々回:kemp LoadMasterをかじってみた
https://freeloadbalancer.com/ Free LoadMaster Load Balancer
https://kemptechnologies.com/ Kemp Technologies
https://kemptechnologies.com/ja/ Kemp Technologies Inc.日本語サイト
https://support.kemptechnologies.com/hc/en-us/categories/200294835-Documentation ドキュメント