コンテンツを圧縮して通信データ量を減らす,WWWサーバーに負担をかける処理を引き受ける――従来にない手法でWWWシステムの性能向上を狙う製品が登場してきた。しかし,だれでも効果が得られるとは限らない。製品の仕組みを知り,自社システムの特性に照らし合わせて判断したい。

図1●WWWシステムの性能を上げるツールの選択肢が増えた
従来の(1)負荷分散装置,(2)キャッシュ・サーバー,(3)SSLアクセラレータ,に加えて,(4)圧縮・変換ツール,(5)コネクション制御ツール――が加わった。負荷を軽減する対象が異なるため,自社システムのどこがボトルネックになっているか,拡張性をどう考えるかなどを明らかにしなければ,導入すべき製品は見えてこない
 「WWWシステムのレスポンスが遅い」という課題を解決するための新しいツールが登場してきた。WWWサーバーからWWWブラウザに送るコンテンツを圧縮や変換することで通信データ量を減らすもの(以下,圧縮・変換ツール)と,WWWサーバーにかかるTCPコネクションの確立負荷を減らすもの(同,コネクション制御ツール)である(図1[拡大表示])。

 これまでもレスポンス向上のために各ユーザー企業では様々な対策を施してきた*1。その一つの策が,WWWサーバーとブラウザの間に設置する専用ツールの利用である。(1)サーバーへのアクセスを複数マシンに振り分ける負荷分散装置,(2)同じページへのリクエストをサーバーに代わって処理するキャッシュ・サーバー,(3)SSLの処理をサーバーに代わって行うSSLアクセラレータ――が代表的*2だが,この市場に新手法で参入してきたわけだ。

 ただ,図1に示した各ツールは負荷を軽減する対象が異なる。競合製品として比較するというより,自社のシステム特性に合った製品を選び,場合によっては組み合わせて使う。圧縮・変換ツールは200万円前後,コネクション制御ツールは300万円前後かかる。対象が限られているため,費用対効果の面で恩恵を受けるユーザーは限られるだろう。場合によっては同じコストをサーバー拡張に使った方が効果が大きいからだ。新ツールの仕組みを知っておけば,導入時の判断材料になる。

回線速度の違いによる影響を低減

図2●WWWコンテンツの圧縮・変換ツールの仕組み
WWWブラウザとWWWサーバーとの間に配置し,WWWサーバーから受け取ったHTMLファイルを圧縮,画像ファイルを独自方式で減色および圧縮率の変更などしてWWWブラウザへ転送するトラフィックを削減する。圧縮されたHTMLファイルはWWWブラウザが自動的に解凍する

 圧縮・変換ツールは,WWWサーバーからブラウザに転送するファイルを圧縮や変換することで,通信データ量を減らす(図2[拡大表示])。56Kビット/秒(bps)モデムで接続しているなどで,インターネット接続回線部分がボトルネックになっている場合に有効だ。国内販売されている主な製品には,ソフトウエア製品の「BoostWeb Optimizer」と専用ハードウエア製品の「AppCelera ICX-55」がある(表1)。

 仕組みは簡単だ。WWWサーバーからの応答ファイルを変換し,ブラウザに渡す。HTML形式のテキスト・ファイルは,GZIPという方式で圧縮する。ファイルの大きさや圧縮率に依存するが,BoostWebの場合,4分の1から10分の1の圧縮が可能だという。GZIPで圧縮されたものは,Internet Explorer(IE)やNetscape Communicator(NC)が自動解凍するため,クライアント側に特別なソフトの追加などは必要ない。

 画像ファイルは,BoostWebの場合,独自方式で減色などの処理を施してデータ量を減らす。一方AppCeleraは,JPEGファイルはさらに圧縮率を上げ,GIFファイルは高圧縮率のJPEGにしてデータ量を小さくする。両製品も最大8分の1程度まで小さくなるというが,当然,画質は落ちる。

 圧縮・変換処理にかかるオーバーヘッドが気になるが,BoostWebは,テキストの圧縮が0.00000017秒/バイト,画像ファイルの変換が0.00000062秒/バイト(GIF形式の場合)の処理能力だという*3。実際に11.86KバイトのHTMLファイル1個と計33.20KバイトのGIFファイル10個のコンテンツを56Kbpsのダイヤル・アップ環境でダウンロードすると,それぞれ2.66Kバイト,16.22Kバイトに削減され,ブラウザ(IE 5.5)が表示を完了するまでのトータル・レスポンスは約5秒短縮したという*3。パケッティアの実験では,9KバイトのHTMLファイル1個と計64Kバイトの画像ファイル15個を56Kbpsでダウンロードしたところ,ブラウザ(NC4.6)からリクエストを送信して結果を表示し終えるまでのトータル・レスポンスは,AppCeleraの使用で10秒短縮したという。

製品名 BoostWEB Optimizer AppCelera ICX-55
開発
(URL)
米BoostWorks
(http://www.boostworks.com/)
米Packeteer
(http://www.packeteer.com/)
販売
(URL)
山田洋行
(http://www.yamada.co.jp/)
パケッティア
(http://www.packeteer.co.jp/)
画像の圧縮率 1/3~1/8 1/2~1/8
テキストの圧縮率 1/4~1/10 1/4~1/10
圧縮・変換ルールの設定 テキストの圧縮率(10段階),画像の変換レベル(6段階)から設定可能 自動
SSLへの対応 未対応 未対応
携帯電話,PDAへの対応 画像の変換のみ対応 画像の変換のみ対応
未対応のコンテンツ Javaアプレット,PDF,Flash,ストリーミング・データなど Javaアプレット,PDF,Flash,ストリーミング・データなど
対応OS Solaris 2.5(SPARC版)/2.6(Intel版)以上,Windows NT 4.0/2000,Red Hat Linux 6.0以上,HP-UX 10.20以上,AIX 4.2以上など 専用機(CPUはCeleron 566MHz,メモリーは256Mバイト,HDDは15Gバイト,10/100Mbpsイーサネット・ポート,RS-232Cのインタフェースを備える)
備考 独自方式で画像ファイルのデータ量を削減。本体の負荷に応じて自動的に変換ルールを変更可能。専用クライアントやもう一つの本体と接続する場合は圧縮率をより高くできる キャッシュ機能を備える。通信回線速度に応じて自動的に圧縮率を変更。本体の障害時にもWWWサーバーとの通信は可能
価格 160万円(1CPU)~ 188万円
表1●WWWコンテンツを圧縮・変換するツールの仕様

変換可能データに制限あり

 利用上の最大の注意点は,すべてのデータを変換できるわけではないということだ。

 圧縮したテキストの解凍はIEやNCが行うが,解凍機能を備えないブラウザもある。例えば携帯電話やPDA(携帯情報端末)が備えるブラウザは解凍機能を持たないものもある。圧縮・変換ツールは相手のブラウザの種類を見て,解凍機能を備えないものの場合はテキスト圧縮を行わない。また,JavaアプレットやPDF,音声や動画といったストリーミング系のデータは小さくできない。SSLを使っている場合もツールの効果はない*4

 前述したように,ベンダーが提示する実験結果は良好だが,当然,すべてのユーザーで同じだけの効果があるとは限らない。動的に生成するコンテンツでは,トータル・レスポンスの中で転送時間が占める割合は小さくなる。データ量の大きい画像ファイルをどれだけ扱っているかにも依存する。そもそもWWWシステムでは,1ページのコンテンツの大きさはできるだけ小さくすることが鉄則だ。これらのツールを通すと画質は落ちるので,それならば最初から画像ファイルの大きさを小さくしておけば良い。

 例えば,高速回線でアクセスしてくるユーザーにはリッチなコンテンツを表示させるが,携帯電話やPHSなどを使ったモバイルPCユーザーには,元のコンテンツに手を入れずに快適にアクセスさせたい,といった場合に有効だろう。

 なお表1の両製品の大きな違いは,圧縮や変換時のルールである。BoostWebはユーザーが設定できる*5が,AppCeleraは,アクセスしてきたブラウザの種類や利用する回線の通信速度を自動判別し,それぞれに応じた圧縮率を適用する*6。通信速度の識別は,56Kbps未満,56K~128Kbps未満,128Kbps以上,の3段階。

通信手順の一部を切り出す

図3●コネクション制御ツールの仕組み
通常のHTTP接続では,各クライアントやページに含まれるオブジェクトの数ごとにTCPコネクションを確立/切断する。コネクション制御ツールは,WWWサーバーとの間で確立したTCPコネクションをそのまま維持し,複数のクライアントからのHTTP接続を,そのコネクションを利用して処理する。WWWサーバーのTCPコネクションの確立,切断の負荷を軽減できる

 コネクション制御ツールには,トーメン サイバービジネスが国内販売する「NetScaler」*7がある。NetScalerは,WWWサーバーとブラウザの間で行われるTCPコネクションの確立の処理を肩代わりすることで,WWWサーバーの負荷を減らすハードウエア製品である。処理の肩代わりという点では,SSLアクセラレータに似ている(図1参照)。

 WWWシステムで使う通信プロトコルHTTPの通信では,通常は,まずブラウザとWWWサーバーの間にTCPのコネクションを確立してリクエストを送信し,レスポンスが返ってきてデータの取得が完了するとコネクションを切断する(図3[拡大表示])。HTTPのリクエストは要求したページに含まれる画像ファイルなどオブジェクトごとに発生する。従ってオブジェクトの数が多いとコネクションを張ったり切ったりする処理が増え,WWWサーバーに負担がかかる*8

 NetScalerは,このコネクションの確立/切断にかかる負荷をWWWサーバーに代わって請け負う。具体的には,WWWサーバーとの間にTCPコネクションを一定時間張ったままにする。ブラウザからリクエストを受け付けると維持したコネクションを使って送信し,WWWサーバーからデータを取得する。複数のブラウザからのリクエストがあった場合も新たにコネクションを張らないため,WWWサーバーにかかるコネクション確立/切断の負荷を低減できるというわけだ。

 ただし,クライアントから見ればTCPコネクションの確立/切断を行う相手が違うだけで,この処理が無くなるわけではない。むしろ,1クッション間に入る。この点NetScalerは,「6万4000セッション/秒と,高い処理能力を誇る」(トーメン サイバービジネス)という。また,コネクションの維持はHTTPヘッダーの「Keep-Alive」という情報で行うが,WWWサーバーがKeep-Aliveを受け付けないような設定にしている場合は無効になってしまうので注意が必要だ。

負荷分散などと組み合わせる

 コネクション制御ツールの導入によって,どれだけ効果があるかの判断は難しい。例えばキャッシュ・サーバーならば,システム全体に占める静的コンテンツの割合や実際のヒット率から,ある程度の効果を予測できる。しかしコネクション制御ツールでは,TCPコネクションの確立/切断にかかる処理が実際にどれだけWWWサーバーの負荷になっているか,それはどれだけのアクセス数からなのかは,やってみないと分からない。

 トーメン サイバービジネスによると,米Ziff Davis Mediaのテスト・ツールWebBenchを使ったベンチマーク・テストの結果から同時に128ユーザー以上からのアクセスでWWWサーバーの処理能力が2倍になったという*9。それ以下の場合は,NetScalerを導入していない場合と比べて処理負荷,レスポンス共に大きな差はない。

 WWWサーバーが限界に近い状態で運用しているのでなければ,レスポンス面での効果は得にくいだろう。当然,WWWサーバー上の作りやコンテンツのサイズなどによっても効果は異なる。例えばチケット販売サイトで人気歌手のチケットを販売する時のように,普段は余裕があるが,ある時だけ集中して処理負荷が高くなることが予測できる場合,サーバー・ダウンを防ぐ応急処置として導入するといった利用方法が考えられるだろう。

 あとは,1台290万円という製品価格との費用対効果の問題だ。トーメン サイバービジネスは,「キャッシュ・サーバーや負荷分散装置を導入してもなお性能向上に苦労しているユーザーがターゲット」(同社)と見ている。

 表2に,図1で挙げた各専用ツールの課題と適するユーザーを示した。WWWシステムの性能を向上させるという面から見ると,圧縮・変換ツールもコネクション制御ツールもユーザーは限られるだろう。しかし,例えばNetScalerは「DDoS(Distributed Denial of Service:分散型サービス停止攻撃)からのアタックを防ぐ」(同社)というメリットもある。導入時には,実環境での効果を測定し,総合的に判断したい。

(相馬 隆宏=souma@nikkeibp.co.jp)

課題 適するユーザー
負荷分散装置 ●サーバーの運用管理,コンテンツの管理が大変 ●大規模なサイトでサービスを停止できない
●スケールアウトで拡張性を確保したい
キャッシュ・サーバー ●動的なコンテンツでは効果なし ●静的なコンテンツを主に扱う
SSLアクセラレータ ●複数のWWWサーバーを対象にする場合は,設定が煩雑 ●SSLを使ったコンテンツを中心に扱う
圧縮・変換ツール ●携帯電話やPDAでの利用には効果が小さい ●モバイルなど遅い回線を使ってリッチなコンテンツを配信する
コネクション制御ツール ●WWWサーバーの設定によっては効果が得られない ●WWWサーバーがアクセス数で高負荷
表2●WWWシステムの性能を向上する専用ツールの特徴