5.8. vロードバランサー

 vロードバランサーは、サーバーセグメント上に仮想的な専用ロードバランサー装置を提供するサービスです。サーバーセグメント上の仮想サーバー向けの通信の負荷分散機能を利用できます。
../../_images/image180.png

5.8.1. 利用できる機能

 vロードバランサーでは以下の機能を利用できます。
機能 概要
ロードバランシング機能 サーバーセグメント上の仮想サーバーに対する通信の負荷分散を行う機能。
ルーティング機能 vロードバランサーにスタティックルーティングを設定する機能。
IPアドレスの払い出し機能 vロードバランサーとvファイアウォールとの通信のためにVirtual IP(以下、VIP)を提供する機能、およびvロードバランサーと負荷分散先のサーバー(以下、リアルサーバー)との通信のためにProxy IPを提供する機能。

注釈

  • vロードバランサーは、サーバーセグメントごとに1台ずつ設置できます。
  • vロードバランサーの各種設定は、カスタマーポータルから変更できます。

5.8.2. ロードバランシング機能

vロードバランサーの性能
 vロードバランサーが提供する性能を、ロードバランサーリソース値で指定できます。
 1つのvロードバランサーリソースの性能は以下のとおりです。
項目 性能(最大値) 備考
トラフィック処理能力 20 Mbps vロードバランサーに着信するIPパケット転送処理能力
同時セッション数 20,000
vロードバランサー内で同時に保持できるTCP/UDPセッション数。
※ vファイアウォールと異なり、行きと帰りの通信が発生する場合、それぞれが1セッションずつ保持されます。
ヘルスチェック定義数 10 -
リアルサーバー設定数 20 -
サーバーグループ設定数 20 -
VIP設定数 4 -
ルーティング設定数 5 -

vロードバランサーリソースの追加・削減
 利用できるvロードバランサーリソース値は、以下に記載した範囲で追加・削減できます。
  下限 上限 申込単位
vロードバランサーリソース値 1 50(※) 1
※ カスタマーポータルで設定可能な値は最大10です。11以上のvロードバランサーリソースをご希望の場合は、別途お問い合わせください。

負荷分散機能
 負荷分散を行うために、対象サーバー、ヘルスチェック方式、負荷分散方式を指定する負荷分散ルールを設定できます。1つの負荷分散ルールごとに、以下の項目が指定できます。設定方法については、ご利用ガイドを参照してください。
設定項目名 設定内容
VIP vロードバランサーに提供されたVIPのうち、この負荷分散ルールに使用するVIPを指定します。
プロトコル 負荷分散する通信のプロトコルを、TCPまたはUDPから選択します。
ポート 負荷分散する通信のポート番号を指定します。
セッション維持方式

セッションを維持する方式を選択します。

  • 送信元IPアドレス方式

  • Cookie挿入方式(HTTP通信にのみ有効)※

    • Cookie header insert(Cookieの有効期限)
       「はい」…ブラウザがCookieを破棄するまで
       「いいえ」…60分(Timeout値)
サーバーグループ

この負荷分散ルールを適用するサーバーグループを指定します。

  • ヘルスチェック方式は、以下のいずれかを選択します。

    • TCPポート
    • ICMP Ping
  • 負荷分散方式は、以下のいずれかを選択します。

    • Round Robin

      (各リアルサーバー(負荷分散先のサーバー)に順番に振り分け)

    • Hash

      (送信元IPアドレスのハッシュ値に基づいて振り分け先のリアルサーバーを固定)

    • Least Connections

      (最もコネクション数が少ないリアルサーバーに振り分け)

バックアップサーバーグループ ヘルスチェック機能によって、サーバーグループの全リアルサーバーにおいて障害が検知された場合、バックアップ機(スタンバイ機)として振り分け先のサーバーグループを指定できます。
ヘッダ追加機能※ HTTP通信にx-forwarded-forヘッダを追加する機能の有効/無効を指定します。
※ HTTPヘッダサイズが4096バイトを超える場合、パケットが破棄されます。横浜第1、関西1、埼玉第1データセンターをご利用の場合、負荷分散ルールのヘッダ追加機能を有効にした際、http通信のRequest のみにx-forwarded-forヘッダを追加します。それ以外のデータセンターをご利用の場合、2015年10月27日~11月4日のメンテナンス以前に作成されたvロードバランサーでは、負荷分散ルールのヘッダ追加機能を有効にした場合、http通信のRequest/Responseそれぞれに対し、x-forwarded-forヘッダを追加します。上記メンテナンス以降に作成されたvLBで負荷分散ルールのヘッダ追加機能を有効にした場合、http通信のRequestのみにx-forwarded-forヘッダを追加します

注釈

  • 負荷分散方式は、サーバーグループ追加時に設定し、追加後に変更できます。
ヘルスチェック機能
 ヘルスチェック機能は、リアルサーバーの障害を検知する機能です。リアルサーバーのTCPポートへのPingまたはICMP Pingを2秒間隔で実施し、4回連続で失敗した場合に、当該リアルサーバーが通信断と判定されます。
 リアルサーバーが通信断と判定されると、当該リアルサーバーは負荷分散先サーバーから除外されパケットが転送されなくなります。代わりに、同一サーバーグループ内の別のリアルサーバーに、パケットが転送されます。
 リアルサーバーが通信断と判定された後は、リアルサーバーのTCPポートへのPingまたはICMP Pingを30秒間隔で実施し、2回連続で成功すると通信回復と判断され、自動的に負荷分散先サーバーに再設定され、パケットの転送が再開されます。

注釈

  • ヘルスチェック方式は、カスタマーポータルから設定します。
  • サーバーグループごとにヘルスチェック方式を設定できます。
  • 複数のサーバーグループに、同一のヘルスチェック方式を設定できます。
  • ヘルスチェックを行うプロトコルとして、TCPまたはICMPを指定できます。それぞれの動作は以下のとおりです。
項目 ICMP TCP
監視内容 ICMP Ping監視を行う 監視対象となるポートを指定し、TCPポート監視を行う
ヘルスチェック間隔 2秒
ダウン中のヘルスチェック間隔 30秒
ダウンとみなすまでの回数 4回
回復とみなすまでの回数 2回
SYNを送ってからACKを受け取るまでの待ち時間 - 1秒

5.8.3. ルーティング機能

 vロードバランサーに対して、スタティックルーティングを設定できます。

5.8.4. IPアドレスの払い出し機能

VIP

  • VIPは、負荷分散元とvロードバランサーが通信する際に使用される仮想的なIPアドレスです。vロードバランサーのサーバーセグメント側のインターフェースに、エイリアスIPとして提供されます。

  • 1つのインターフェースに対して、複数のVIPを登録できます。VIPの最大数はvロードバランサーリソースの「VIP設定数」で設定できます。

  • VIPは、vロードバランサーが設置されているサーバーセグメントのAvailable IPアドレスから選択でき、カスタマーポータルからVIPを追加するときに指定できます。VIPはエイリアス/アクティブ/スタンバイとして設定されます。

    VIPを指定しなかった場合は、自動的に割り当てられます。

../../_images/image184.png
Proxy IP

  • Proxy IPは、リアルサーバーとvロードバランサーが通信する際に使用される仮想的なIPアドレスです。vロードバランサーのサーバーセグメント側のインターフェースにエイリアスIPとして提供されます。

  • 1つのインターフェースに対して、複数のProxy IPを登録できます。

  • Proxy IPは、vロードバランサーが設置されているサーバーセグメントのAvailable IPアドレスから選択でき、カスタマーポータルからProxy IPを追加するときに指定できます。Proxy IPはエイリアス/アクティブ/スタンバイとして設定されます。

    Proxy IPを指定しなかった場合は、自動的に割り当てられます。

  • 使用するProxy IPの数は、利用するvロードバランサーリソース値により異なります。vロードバランサーリソース値を変更すると、自動的にシステムによりProxy IPが追加/削除されます。

vロードバランサーリソース値 使用するProxy IPの数
1~2 1
3~4 2
5~6 3
7~8 4
9~10 5
11以上 vロードバランサーリソース値が2つ増えるごとに1つ

../../_images/image185.png

5.8.5. 注意事項

  • vロードバランサーリソースを増やすためには、サーバーセグメントのAvailable IPアドレスが必要です。
  • カスタマーポータルでvロードバランサーの設定を変更する際、通信断が発生する場合があります。
  • アプリケーション等の特性上、少数のセッション(1~4セッション程度)にて、vロードバランサーを経由してファイルのダウンロード等の通信を行う場合、リソースあたりの最大性能(帯域)分のトラフィックを処理することはできないことがあります。これは、契約いただいたリソースの定義に基づき帯域上限のPolicingが適用されており、トラフィックが帯域上限を超えた際は、ドロップした後一定期間後再送されるためです。少数セッションでの通信が想定される場合は、下記参考情報を参考にしたリソース数をご購入いただくか、別の方式をご検討ください。

5.8.6. 参考情報

../../_images/image186.png
  • 弊社にて少数セッション時のトラフィックを計測した結果が以下のグラフです。検証の結果は、1セッション利用時には、契約帯域の1/3程度のパフォーマンスが表示されます。記載されたパフォーマンスを保証するものではありません。設計時の参考としてご利用ください。
../../_images/image187_188.png
../../_images/image189.png
  • vロードバランサーを通るすべての通信が、リソースレベルに基づく帯域制御の対象となります。このため、1つの通信で複数回vLBを経由するような通信を行った場合、vロードバランサーを通過する回数分が帯域制御の対象となります。(例:当該通信で15Mのトラフィック流量だったとしても、当該通信にて2回vロードバランサーを経由する設計をしていた場合、vロードバランサー上は30Mのトラフィック流量と判定するため、1リソースレベルだと契約帯域不足となります。)

URLフィルタ、ウイルスチェックを仮想サーバー上で利用する場合の「ベストプラクティス」
■推奨構成
URLフィルタ、ウイルスチェックにICAPサーバー(※)をご利用の場合は、ICAP通信経路にvロードバランサーを利用しない構成で設計して下さい。
更に、端末側のvロードバランサーのリソースはダウンロード等を行う必要がある場合は、インターネット回線が100Mbpsの場合は10リソース以上が必要となります。

<図1>問題の発生しない推奨構成(ICAP経路の冗長化をサーバー側で実装)

../../_images/image586pict1.png

※ ICAP:Internet Content Adaptation Protocol。プロキシ/キャッシュ・サーバーが外部の機能を利用できるようにするためのプロトコル。

上記構成にする理由は、サービス機能説明書 5.8.vロードバランサ― に記載の 5.8.5.注意事項、5.8.6.参考情報 によります。

https://ecl.ntt.com/documents/1.0/service-descriptions/fd/rsts/5_network/5_8_vload_balancer.html

IWSS(ウイルスチェックサーバー)の利用は単一セッションとなり、更に端末側のvロードバランサ―もダウンロードもブラウザ等によっては単一セッションになるためです。

■過去に問題となった構築事例
クライアントからの大容量のファイルダウンロードにおいて途中で失敗する事象が発生しました。

<図2>問題の発生する構成(ICAP経路の冗長化をvロードバランサーで実装)

../../_images/image586pict2.png

解析の結果、タイムアウトが発生する理由は以下のとおりでした。

  • Proxy-(LB)-IWSS や、PC-(LB)-Proxyという設計のため、購入した帯域制限から(LB)を通過する帯域が細くなるため。
  • さらに、Proxy-(LB)-IWSSが、ICAP通信により1セッションで行われ、帯域がさらに制限されるため。
上記への対策として、タイムアウト要因を除外するためProxy~IWSSの通信がvロードバランサ―を経由しない方式(前述の図1)へ変更しました。
また、本対応については日本コムシス社へ作業委託を実施し、検証環境構築、試験、本番環境への適用までの作業が完了し、お客様環境での問題解消に至っています。(2016年9月)