ArrayAPVシリーズは、SSLアクセラレータと負荷分散装置を1つにした統合アプライアンス製品です。
クラウドサービスやモバイルデバイスの普及などで、インターネットトラフィックは増加の一途を辿っており、サーバー負荷分散の重要性は一層高まっています。
ArrayAPVシリーズはその中核としてロードバランサーとしての機能を有しており、洗練されたサーバー負荷分散を実現します。
サーバー負荷分散とは
サーバー負荷分散とは、クライアントからのアクセス要求処理のため、Webサイトなどのアプリケーションに掛かる負荷を複数のサーバーに分散させることを指します。例えば、ある企業のWebサイトにアクセスがあった場合、その企業のWebサーバーは要求されたページを結果として返せるようにアクセス要求を処理します。しかし、アクセスが多数となりWebサーバー内での処理が追い付かなくなってしまうと、クライアントのWebブラウザーでの表示遅延や最悪の場合、サービス停止につながる可能性があります。このような事態を防ぐために、Webサイトへの負荷を複数のサーバーに分散させ、一つのサーバーに掛かる負荷を低減させることでWebサイトの信頼性や性能を確保します。
●サーバー負荷分散の種類
サーバー負荷分散の種類は多数あります。例えば「DNSラウンドロビン」や「広域負荷分散」、「専用装置を利用した負荷分散」です。
- DNSラウンドロビン
アクセス要求をうけたDNSサーバーが、自身に紐づけられている複数の公開サーバーのIPアドレスを各クライアントに順番に返していくことで処理を分散させます。分散先のサーバーの負荷状況の確認などは行わないため、場合によってはサーバーへの負荷軽減につながらないこともあります。
- 広域負荷分散
負荷分散を行うために用意する複数のサーバーを、1つの建屋内などに用意するのではなく、世界各地に用意し、アクセス要求を分散させます。例えばアメリカからのアクセスがあった場合は、アメリカにあるサーバーに処理を分散させることで、サーバーへの負荷を軽減するだけでなく、クライアントに対しても迅速に応答することができ、耐障害性も高まります。
- 専用装置を利用した負荷分散
専用装置を導入し、その装置が複数のサーバーにアクセス要求を分散させます。外部からのアクセス要求だけではなく、社内システム利用時など、社内からのアクセス要求も分散させることができます。
専用装置を導入することで、サーバー負荷分散だけでなく、SSL通信高速化や回線負荷分散といった信頼性や性能をさらに高める機能も一緒に利用できます。
●サーバー負荷分散の手法
サーバー負荷分散の手法も多数あります。例えば「ラウンドロビン方式」や「重みづけ方式」、「最小コネクション方式」です。
- ラウンドロビン方式
分散先の各サーバーに対し、クライアントからの要求を順番に均等に割り振ります。
- 重みづけ方式
分散先の各サーバーの性能を鑑みて、要求の割り振りを調整します。
- 最小コネクション方式
分散先の各サーバーの中でコネクション数が一番少ないサーバーにクライアントからの要求を割り振ります。
負荷分散アルゴリズムとして、以下をサポートしています。
など
以下の情報をキーとしてクライアントとバックエンドサーバー間のセッションを維持することが可能です。
など
ArrayAPVシリーズは、一定の間隔でバックエンドの実サーバーへ、ヘルスチェックパケットを送信します。実サーバーから応答がなかった場合、ArrayAPVシリーズはその実サーバーがDOWNしたと判断します。
サポートしているヘルスチェック方式は、以下のとおりです。
その他、負荷分散対象以外のDBサーバーなどにヘルスチェックを行うことも可能です。
複数のHTTPセッションを少数のセッションに集約。さらに、セッションの再利用により、サーバーの負荷を軽減します。
ロードバランサーとしての機能を有するArrayAPVシリーズは、インサイド側のHTTP通信のTCPセッションを集約・再利用することでサーバー負荷の軽減を図ります。ひとつのページの中に画像など多くのコンテンツが存在するWebページでは多数のTCPセッションが使用されます。セッション集約により、これを解消することができます。
HTTP1.1では、KeepAlive機能がサポートされており、ひとつのTCPセッションで複数のHTTPリクエストを処理することが可能です。ArrayAPVシリーズはデフォルトでKeepAlive機能によるセッション集約を行います。
HTTP1.1のKeepAlive機能を用いたHTTPリクエストでは、サーバーはリクエスト終了を判断できない場合があり、タイムアウトとして設定された時間だけ、無駄なセッションを維持することになります。ArrayAPVシリーズは、既存のセッションを再利用することでこの問題に対応します。
個々の実サーバーをグループ単位で扱うことが可能です。ひとつの実サーバーは複数のグループに属することが可能です。サーバーをグループ単位で負荷分散の対象と設定することで、単一のサーバーを複数の論理サーバーとして扱うことが可能です。
エンドユーザーからの接続を途切れさせることなく、実サーバーのメンテナンスが可能です。
特定の実サーバーへの新規リクエストの振り分けを中止し、セッション維持された既存のリクエストは、該当セッション終了まで振り分けられます。
負荷分散対象のサーバーが全てDOWNした際にリクエストを割り振る、バックアップサーバーを定義可能です。
HTTPエラーコードごとに、ArrayAPVシリーズへユーザー定義のエラーページをインポート可能です。障害発生時やサーバーメンテナンス時などに表示されるエラーページをカスタマイズできます。
ツリー状にポリシーを定義することで、別途スクリプトプログラムを準備することなく、複数の異なる負荷分散グループにクライアントからのリクエストを振り分けることが可能です。