【BIG-IP LTM】負荷分散の基本設定と動作確認(Node、Pool、VirtualServer)Version: 16.1.2

サーバ負荷分散(ロードバランサ)では、クライアントからのアプリケーション通信処理を複数のサーバへ共有(分散)します。 1つのサービスを複数のサーバに処理を分散させることで、全体として処理能力や可用性(耐障害性)、メンテナンス性が向上します。

ここでは、有名なF5社のロードバランサBIG-IPをベースに、2台のHTTPサーバに対して負荷分散する動作を確認します。

端末はwww.hirotanoblog.work10.0.1.100)へHTTPアクセスします。すると、BIG-IP が Web-01もしくはWeb-02のいずれかにアクセスを中継します。(ネットワーク関連の設定は完了しているものとします)

スポンサーリンク

Node の設定

Nodeとは、負荷分散対象のサーバ(IPアドレス)を定義します。このサーバ上でどのようなサービス(ポート)が公開されているかは関係ありません。IPアドレスだけを定義します。

今回は、Web-01(10.0.2.24)とWeb-02(10.0.2.71)の2台をNodeとして登録します。

Main >> Local Traffic >> Virtual Servers >> Nodes  >> Node List へ移動し、右上のCreateをクリックします。

以下の画面が表示されます。

  • Name:任意の名前を設定。今回は、Web-01と設定します。
  • Address: 負荷分散対象のIPアドレスを設定します。Addressを選択の上、IPアドレスとして、10.0.2.24と設定します。
  • Health Monitor(任意の設定): サーバのヘルスモニタ(生死監視)を実行します。Node Specificを選択します。
  • Select Monitor(任意の設定):icmpを選択します。これで、登録したサーバに対して、icmpを用いて、ヘルスモニタ(生死監視)されます。

設定完了したら、Finishedをクリックします。 すると以下の通り登録されます。icmpの応答があると、Statusが緑色マークになります。

同様の要領でWeb-02も登録します。

スポンサーリンク

Pool Member とPoolの設定

Pool Member とは、負荷分散対象のサーバのIPアドレスと公開するサービスのポート番号のセットです。 今回は、WebサーバとしてTCP80番ポートを公開していますので、Web-01の場合は、10.0.2.24:80と表現する場合もあります。

このPool MemberPoolに割り当て、そのPool内をロードバランシングします。

設定はまず、Poolを作成して、その中にNodeを用いて、Pool Memberを登録します。

Main >> Local Traffic >> Virtual Servers >> Pools  >> Pool List へ移動し、右上のCreateをクリックします。

以下の画面が表示されます。Poolを設定し、Pool Memberを登録することがイメージできると思います。

  • Name: 任意のプールの名前。今回は、Web-Poolとします。
  • Health Monitors: ヘルスモニタの設定。今回は、Webサーバが対象ですので、httpでモニタするものとします。
  • Load Balancing Method: RoundRobin(デフォルト)とします。
  • New Member : Pool Memberを設定します。Node Listを選択すると、Addressのプルダウンに設定したNodeが出力されますので、Service PortをHTTP の80として、 Addをクリックします。(上の図ではWeb-01Web-02は登録済みの画面です)

設定完了後、Finishedをクリックします。 すると以下のように、Pool内にメンバーが2であることが確認できます。また、httpの応答があると、Statusが緑色マークになります。

スポンサーリンク

Virtual Server の設定

Virtual ServerPoolをユーザへ公開するために、ロードバランサに付与するIPアドレスとポート番号のセットです。

今回は、ユーザ(端末)に対して、上で設定したPoolをIPアドレス 10.0.1.100 で公開します。

設定はVirtual Serverを設定し、ロードバランスしたいPoolと紐づけます。

Main >> Local Traffic >> Virtual Servers  >> Virtual Server List へ移動し、右上のCreateをクリックします。

以下の画面が表示されます。

  • Name: 任意の名前。今回は、Web-VSとします。
  • Destination Address / Mask : 公開するIPアドレスである10.0.1.100を設定。
  • Server Port : HTTPで、ポート番号は80を設定。

また、画面を下にスクロールし、HTTP Profile(Client)で、httpを選択します。

今回は、端末からのHTTPアクセスをBIGIPで送信元NATして、Webサーバへ転送するものとします。 画面を下にスクロールし、Configuration設定で、Source Address Translation を Auto Mapにします。

さらに、画面を下にスクロールすると、Resource設定で、ロードバランシングしたいPoolDefault Poolで指定します。今回はWeb-Poolを選択します。

完了したらFinishedをクリックします。以下の通り、表示されます。

スポンサーリンク

動作確認

端末には、www.hirotanoblog.work で、Virtual ServerのIPアドレスで接続できるよう、Hostsファイルを追加しています。

端末からwww.hirotanoblog.workにブラウザでアクセスします。すると、Web-01が表示されます。

別の端末からアクセスすると、Web-02が表示されます。

今回設定したPoolのロードバランシングメソッドは、ラウンドロビン(Round Robin)のため、2台のサーバに対して、交互にセッションを割り振ります。下記は、Curlコマンドで、Webサーバのタイトルのみを取得しています。Web-01、Web-02が交互に表示されていることが確認できます。

$ curl -s www.hirotanoblog.work | grep -o '<title>.*</title>' | sed 's#<title>\(.*\)</title>#\1#'
Web-01 – Web-01
$ curl -s www.hirotanoblog.work | grep -o '<title>.*</title>' | sed 's#<title>\(.*\)</title>#\1#'
Web-02 – Web-02
$ curl -s www.hirotanoblog.work | grep -o '<title>.*</title>' | sed 's#<title>\(.*\)</title>#\1#'
Web-01 – Web-01
$ curl -s www.hirotanoblog.work | grep -o '<title>.*</title>' | sed 's#<title>\(.*\)</title>#\1#'
Web-02 – Web-02

以上が基本設定です。ロードバランス方式やパーシステンスを設定する際は、下記記事を参考にしてください。

  >> 参考記事 :  ロードバランシング方式 と動作確認
  >> 参考記事 :  セッションパーシステンス と動作確認

コメント