アプリケーションスイッチは、古くは「負荷分散装置(ロードバランサ)」、「マルチレイヤスイッチ」、「L4-L7スイッチ」、「コンテンツスイッチ」、最近は「アプリケーション・デリバリ・コントローラ」など、多くの呼び名を持つ。もっとも、いずれも仮想的に設けたサーバ(バーチャルサーバ)宛てのリクエストを受け付け、複数ある実際のサーバ(リアルサーバ)のいずれかに振り分ける処理を主な目的としている。
現在、さまざまなベンダーから数多くのアプリケーションスイッチが提供されており、製品を選ぶ際はニーズに応じてポイントを整理した上で決定することが望ましい。今回はアプリケーションスイッチ選びのポイントとして、「価格」、「機能」、「性能」、「ベンダーのウリ」の4点を紹介しよう。
価格面 - 必要な機能だけ搭載せよ
登場当初、アプリケーションスイッチは高価な製品というイメージが強かったが、近年は低価格化が進行していると言える。 価格を安く抑えるコツは、「使わない機能は搭載させない」、「性能は必要に応じて拡張する」、「2台パックでより安く購入する」ことである。 例えば、近年のアプリケーションスイッチは、SSLオフロード機能(図1)を標準で搭載している製品が多い。
しかし、SSLオフロード機能を使わないユーザーにとって、この機能は製品の価格を上げる"余計な"要素となる。現時点ではSSLオフロード機能を使わないけれど、将来的に使う必要があるような場合は、ライセンスなどによって機能を制限する代わりに安く購入できる製品を選ぶとよい。
また、1台で購入するよりも2台パックで購入したほうが安い製品がある。アプリケーションスイッチは可用性向上のため2台で冗長化を組むことが多いため、2台パックの購入がおすすめである。
機能面 - 4つのポイントを吟味せよ
機能面におけるポイントは、「負荷分散機能」、「冗長化機能」、「拡張機能」、「管理機能」の4つに細分化できる。以下、それぞれについて整理していこう。
(1)負荷分散機能
大半の製品が、負荷分散機能として、一般的な分散アルゴリズムであるラウンドロビン、重み付けラウンドロビン、最少コネクション数を搭載している。したがって、これ以外の分散アルゴリズム(例えば、リアルサーバからの応答時間をチェックし、応答時間の短いリアルサーバに振り分ける分散アルゴリズムなど)が必要な場合は、そのような分散アルゴリズムを搭載している製品を選ばなければならない。
HTTPなどの通信を、HTTPヘッダの情報(CookieやWebブラウザ情報など)によって特定のサーバに振り分けるレイヤ7負荷分散機能や、パケット内の特定の情報をもとに同じサーバに一定時間振り分け続けるセッション維持機能も、近年のアプリケーションスイッチの多くが搭載している。
さらに、HTTPヘッダを追加・削除するヘッダリライト機能や、リアルサーバのダウン・混雑時にアプリケーションスイッチがエラーページを応答する機能を搭載する製品も登場してきている。リアルサーバの死活監視を行うヘルスチェック機能にも、複数のサーバ(例えば、HTTPサーバとDBサーバ)に対して同時に死活監視を行い、どちらか一方のダウンによってサービス全体をダウンと判断させることができる製品もある。
(2)冗長化機能
一般的に冗長化機能とは、2台のアプリケーションスイッチを用意してホットスタンバイ構成を組み、サービスを提供するアプリケーションスイッチ(アクティブ側)がダウンした際にスタンバイ側に処理を引き継ぐ機能である。
この機能のポイントは、切り替わってサービスを再開させるまでに要する時間が短いこと、ステートフル・フェールオーバ機能を搭載していること、この2点である。特に後者は、アクティブ側のアプリケーションスイッチからスタンバイ側へ負荷分散情報(コネクションテーブルなど)を同期しておくことで、切り替わった後もコネクションを切断することなく通信を継続できる機能であり、可用性向上のカギとなる。
補足として、独自の冗長化プロトコル、VRRPのようなルータの冗長化を行うプロトコルなど、ベンダーによって冗長化に用いられているプロトコルが異なる。後者の場合、アプリケーションスイッチのほかにVRRPを利用する機器があると、VRRPの通信がバッティングする恐れがある点に注意が必要である。