PR

Webサイトのレスポンス性能を高めるアプリケーション・スイッチ(Web高速化装置)が新手の高速化手法を次々に搭載している。パフォーマンスを発揮する局面は高速化手法ごとに異なるため,Webサイトが提供するサービスに合わせて選ぶ必要がある。Webサイトに合致した高速化手法を探す必要がある。(日経コミュニケーション

 ユーザーからのアクセスが集中するWebサイトのレスポンスを良好な状態に保つため,ユーザー企業はサーバー周りの強化や,通信回線の増強,アプリケーションの処理の見直しなどを日々実施している。これらに加え,有効な手法になっているのが,アプリケーション・スイッチを活用するというものだ。

 アプリケーション・スイッチは,かつて負荷分散装置(ロード・バランサ)という名称で登場した製品が発展した機器である。Webシステムの手前に設置し,一定のルールに基づいて各種サーバー群にトラフィックを振り分ける機能を備える。処理能力や機能に応じて,100万円台から2000万円程度の製品がある。

 負荷分散装置はWebアプリケーションに適応した機能を搭載するにつれて,Web高速化装置あるいはアプリケーション・スイッチと呼ばれるようになった。特にここ数年は,トラフィックの振り分けだけでなく,Webのレスポンスを高速化する機能をいくつも搭載するようになっている。

 高速化機能を活用すると,サーバーを複数台増設するのに匹敵するレスポンス向上効果が得られる。米国のあるニュース・サイトは高速化機能を稼働させることで,サーバーの台数を増やさずに同時接続ユーザー数を4倍以上に高められたという。

負荷分散装置が発展して高速化機能を搭載

 高速化機能について詳しく見る前に,アプリケーション・スイッチが高速化機能を備えるまでの状況を整理しておこう。

 初期の製品は1990年代末ころ,ECサイトの開設ラッシュの追い風に乗って多数登場した。アクセス数が増えてもWebサイトのレスポンスを維持できるように,複数台のWebサーバーにトラフィックを分散する役割で導入が進んだ。

 当初はレイヤー4スイッチが発展した製品が多かった。ポート番号でアプリケーションの種類を識別し,対象のサーバー群にトラフィックを振り分ける仕組みである。

 導入が進むにつれて,ニーズも広がってきた。例えばECサイトでは,商品の購入から決済まで,クライアントとサーバーの対応付けを維持する機能が求められるようになった。こうしたニーズに応えるため,SSLのセッションIDやクッキーなど,レイヤー4よりも上位のプロトコルの情報を認識してトラフィックを振り分けられる製品が主流になる。中でもアプリケーション層の情報をソフトウエアが識別し,クライアントの代わりにサーバーと通信する「プロキシ型」の装置が台頭してきた。

 プロキシ型の装置は,ソフトウエアを改良して負荷分散とは別の機能を取り込んでいく。その一つがWebサイトのレスポンスを高速化する機能というわけだ。

 一方,全く別のアプローチから発展したタイプもある。Webサイトのレスポンスを高速化するデータ圧縮装置キャッシュ装置などが,本来の機能に負荷分散機能を統合して姿を変えていったものだ。このほかアプリケーション・スイッチとの併用を前提として,SSLアクセラレータ機能やTCPコネクション集約,HTTP圧縮機能など個々の機能に特化したアプライアンスもある。

サーバー・オフロードやデータ圧縮を駆使

 こうした経緯もあってアプリケーション・スイッチは多様な高速化機能を取り込んでいる。搭載する高速化手法は大きく三つある。(1)サーバー処理のオフロード,(2)帯域の有効活用,(3)ブラウザの制御である(図1)。

図1●Webのレスポンスを高速化するアプローチは大きく3通りある
図1●Webのレスポンスを高速化するアプローチは大きく3通りある
(1)サーバー処理のオフロード,(2)ネットワーク帯域の有効活用,(3)クライアントのブラウザを制御---の3通りがある。アプリケーション・スイッチはそれぞれに対応した高速化技術を備える。
[画像のクリックで拡大表示]

 (1)は,Webサーバーの処理の一部を肩代わりするもの。例えば,SSLの暗号化・復号処理を代行する「SSLアクセラレーション」や,一度取得したデータを装置の内蔵メモリーなどに蓄積しておく「キャッシュ」が該当する。

 (2)は,クライアント-サーバー間の通信速度の改善を図る手法。データを圧縮してトラフィックを減らしたり,パケット損失時の再送手順を工夫したり,一度に送信するデータ量を増やしたりする手法がある。低速な回線で有効なもの,遅延が大きいと威力を発揮するものなど,手法ごとに特徴が異なる。

 (3)のブラウザを制御するアプローチは,ユーザーの体感速度をさらに高めたい場合に利用価値がある。クライアント側のキャッシュを効果的に活用して,サーバーからデータを取得する回数を減らす手法などが挙げられる。