サーバロードバランサー機能とは、L-Platform上の複数のサーバ(L-Server)を1台のサーバに仮想化して、利用者からのアクセスを決められたルールに従い、アクセスを分散する機能です。
本機能を利用することで、個々のサーバ負荷を平準化すると共に安定したレスポンスの供給、柔軟な拡張性を兼ね備えたサービスを提供できます。
図1.6 サーバロードバランサー機能の概要
L-Platform上のサーバ(L-Server)の障害発生時には、他の稼働中のサーバ(L-Server)へアクセスを分散することでアクセス不可を回避できます。また、アクセス集中時には、L-Platform上の複数のサーバ(L-Server)へアクセスを分散することでレスポンス遅延を回避できます。
さらに、複数台のサーバ(L-Server)で運用するため、サーバ保守やスケールアウトを業務サービス継続したまま行えます。
NSアプライアンスでは、以下の機能を提供しています。
サーバ群へのクライアントからのリクエストを転送するとき、転送先のサーバを選択するアルゴリズムをサーバ分散方式と呼びます。
NSアプライアンスでは、以下のサーバ分散方式を提供します。
サーバ分散方式 | 説明 |
---|---|
ラウンドロビン | 分散対象の各サーバの負荷に関係なく、サーバにクライアントのリクエストを順番に転送します。 |
単純な最小コネクション数 | 分散対象の各サーバが処理しているコネクション数に基づいて、コネクションが一番少ないサーバにクライアントからのアクセスを転送します。 |
サーバ群の各サーバの動作状況を監視し、故障を検出すると、故障したサーバやアプリケーションを、クライアントからのリクエスト転送の対象から除外します。
図1.7 サーバ故障監視の概要
NSアプライアンスでは、以下のサーバ故障監視を提供します。
サーバ故障監視 | 説明 |
---|---|
装置監視 | 各サーバに対して、PING(ICMP Echoリクエスト)を指定された間隔で送信して、その応答有無によりサーバの故障を監視します。 |
サービス監視 | 各サーバに対して、各サーバ上で動作しているアプリケーションのTCPポート、UDPポートに対する応答によってアプリケーションの動作状況を監視します。 TCPポートに対しては、TCPコネクションが確立できることを確認します。 UDPポートに対しては、UDPポートプローブパケットを送信し、応答がなければ正常と認識し、ICMPあて先到達不可パケットを受信すれば異常と認識します。 |
アプリケーション監視 | アプリケーションに対して、アプリケーションレイヤーのリクエストを送信し、その応答を監視することでアプリケーションの動作状態を監視します。 以下のアプリケーションに対する監視をサポートしています。
|
また、サーバ故障監視のオプション機能として、以下の機能を提供します。
オプション機能 | 説明 |
---|---|
URLリダイレクション | HTTPによる通信時に、クライアントからのリクエストを分散対象サーバに分散できない場合、案内ページのURLにリダイレクトさせるHTTPレスポンスを、NSアプライアンスからクライアントへ応答します。 |
HTTPエラーメッセージ応答 | HTTPによる通信時に、すべての負荷分散対象のサーバが高負荷または、故障した場合、あらかじめNSアプライアンスに登録されたエラーメッセージを、NSアプライアンスからクライアントへ応答します。 |
コネクション・リセット | TCPによる通信時に、サーバの異常を検出した場合、接続中のTCPコネクションに対して、クライアントへTCPのRSTパケットを通知します。 |
コネクション・パージ | UDPによる通信時に、サーバの異常を検出した場合、接続中のUDP仮想コネクションの管理情報を即時に破棄します。 |
図1.8 サーバ故障監視のオプション機能概要
事前にNSアプライアンスとWebサーバ間でTCPコネクションを確立しておくことで、クライアントからのアクセス毎に行うTCPコネクション確立処理の処理回数を抑え、Webサーバの負荷を軽減する機能です。
図1.9 Webアクセラレーションの概要
一定時間、一連のパケット(トランザクション)を、以前アクセスした同じサーバに転送します。
図1.10 セッション維持の概要
NSアプライアンスでは、以下のセッション維持を提供します。
単位 | 説明 |
---|---|
ノード単位 | ノード(クライアントのIPアドレス)を1つの単位として、同じノードからのアクセスは同じサーバに転送します。 |
コネクション単位 | コネクション(TCPコネクションまたはUDPフロー)を1つの単位として、コネクション単位に最適なサーバを選択して転送します。 TCP通信(コネクション型)の場合、コネクションが確立されている間は同じ分散対象サーバに振り分けられます。 UDP通信(コネクションレス型)の場合、一定時間(90秒)の間は同じ分散対象サーバに振り分けられます。 なお、DNS通信の場合、query(DNS通信の要求)単位に分散対象サーバに振り分けられます。 |
アクセス数を制限することで、分散対象のサーバの安定的な運用を保証します。
図1.11 アクセス制限の概要
NSアプライアンスでは、以下のアクセス制限を提供します。
制限の対象 | 説明 |
---|---|
ノード数 | クラスタ化したサーバ群に対して、クライアントのノード数で制限します。 アクセス制限値を超えた場合、クライアントより受信したパケットは破棄します。 |
コネクション数 | クラスタ化したサーバ群に対して、コネクション数で制限します。 アクセス制限値を超えた場合、クライアントより受信したパケットは破棄します。 |
HTTPS通信をHTTP通信に変換し負荷分散することが可能で、Webサーバ(L-Server)の可用性を向上させることができます。
図1.12 SSLアクセラレーターの概要
NSアプライアンスでHTTP通信時にSSL暗号化および復号化処理を行うことで、Webサーバ(L-Server)に対してHTTP通信として見せることができます。これにより、Webサーバ(L-Server)毎に暗号機能を用意する必要がなくなります。
NSアプライアンスでは、以下のプロトコルに対応しており、カスタマイズ可能です。
SSLv3.0
TLSv1.0
NSアプライアンスは以下の暗号スイートをサポートしており、カスタマイズ可能です。
CA証明書は4096ビットまで、サーバ証明書は2048ビットまでの鍵長を利用できます。
暗号スイート名称 | 鍵交換(*1) | 暗号化(*2) | メッセージ承認 |
---|---|---|---|
SSL_RSA_WITH_DES_CBC_SHA | RSA(4096) | DES(56) | SHA1 |
SSL_RSA_WITH_3DES_EDE_CBC_SHA | RSA(4096) | 3DES(168) | SHA1 |
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA | RSA(512) | DES(40) | SHA1 |
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 | RSA(512) | RC2(40) | MD5 |
SSL_RSA_EXPORT_WITH_RC4_40_MD5 | RSA(512) | RC4(40) | MD5 |
SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA | RSA(1024) | DES(56) | SHA1 |
SSL_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 | RSA(1024) | RC2(56) | MD5 |
SSL_RSA_EXPORT1024_WITH_RC4_56_MD5 | RSA(1024) | RC4(56) | MD5 |
SSL_RSA_EXPORT1024_WITH_RC4_56_SHA | RSA(1024) | RC4(56) | SHA1 |
SSL_RSA_WITH_RC4_128_MD5 | RSA(4096) | RC4(128) | MD5 |
SSL_RSA_WITH_RC4_128_SHA | RSA(4096) | RC4(128) | SHA1 |
SSL_RSA_WITH_AES_128_CBC_SHA | RSA(4096) | AES(128) | SHA1 |
SSL_RSA_WITH_AES_256_CBC_SHA | RSA(4096) | AES(256) | SHA1 |
*1: ()内の数字は、鍵交換時に使用する最大鍵長(ビット)です。証明書の鍵長が()内より短い場合、証明書の鍵長を使用します。証明書の鍵長が()内より長い場合、()内の鍵長を使用します。
*2: バルク転送時の暗号化に使用する鍵長(ビット)です。
暗号スイート名称 | 鍵交換(*1) | 暗号化(*2) | メッセージ承認 |
---|---|---|---|
TLS_RSA_WITH_DES_CBC_SHA | RSA(4096) | DES(56) | SHA1 |
TLS_RSA_WITH_3DES_EDE_CBC_SHA | RSA(4096) | 3DES(168) | SHA1 |
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA | RSA(512) | DES(40) | SHA1 |
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 | RSA(512) | RC2(40) | MD5 |
TLS_RSA_EXPORT_WITH_RC4_40_MD5 | RSA(512) | RC4(40) | MD5 |
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA | RSA(1024) | DES(56) | SHA1 |
TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 | RSA(1024) | RC2(56) | MD5 |
TLS_RSA_EXPORT1024_WITH_RC4_56_MD5 | RSA(1024) | RC4(56) | MD5 |
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA | RSA(1024) | RC4(56) | SHA1 |
TLS_RSA_WITH_RC4_128_MD5 | RSA(4096) | RC4(128) | MD5 |
TLS_RSA_WITH_RC4_128_SHA | RSA(4096) | RC4(128) | SHA1 |
TLS_RSA_WITH_AES_128_CBC_SHA | RSA(4096) | AES(128) | SHA1 |
TLS_RSA_WITH_AES_256_CBC_SHA | RSA(4096) | AES(256) | SHA1 |
*1: ()内の数字は、鍵交換時に使用する最大鍵長(ビット)です。証明書の鍵長が()内より短い場合、証明書の鍵長を使用します。証明書の鍵長が()内より長い場合、()内の鍵長を使用します。
*2: バルク転送時の暗号化に使用する鍵長(ビット)です。