SSLアクセラレータやHTTPの最適化、セキュリティなど
サーバーの処理を肩代わりする「オフロード」とは?
2010年04月05日 06時00分更新
HTTPの最適化
Webの送受信に用いられているHTTPは、インターネットの代表的なプロトコルといえる。しかし、低速な通信環境を前提に作られたため、時代にそぐわない部分も出てきた。こうした点を改良するのが、HTTPの最適化である。
HTTPは取得したいHTMLや画像ファイルなどのリソース(URL)を、リクエストとして送り、サーバー側がそれにレスポンス(応答する)というシンプルなプロトコルだ。このリクエストとレスポンスの組み合わせることで、1つのHTTPコネクションが確立する。
コネクションは、1つのリソースごとに構築されるので、3つのファイルから構成されているWebページでは、3つのコネクションが必要になる。ところが、HTTPの通信に先立っては、負荷のかかるTCPのコネクション確立を行なう必要がある。そのため、Webぺージ表示に何度もTCPコネクションを確立するのは、サーバーに大きな負荷をかけてしまうことになる(図3)。
こうしたHTTPを最適化する手法としては、「持続接続」と「パイプライン化」という機能がある。持続接続では、1回のコネクションを複数のリソース取得に使い回す機能で、HTTP1.0でオプションとして提供されていた「Keep-Alive」を標準搭載したものだ。一方、パイプライン化は、サーバーからの応答を待たずに複数のリソース取得を連続的に行なう方法だ。両者ともHTTP1.1で実装され、幅広く利用されている。
また、昨今では複数台のクライアントのコネクションを束ねて1本にする機能もある。これを用いると、多数のHTTPコネクションを統合型トラフィック管理装置が少数のコネクションに集約し、それらを再利用しながら、データの送受信を行なえる(図4)。サーバーの負荷は大きく軽減され、Webページの読み込み速度を上げることが可能になる。
HTTP1.1では圧縮もサポートされている。圧縮にはGZIPやDeflateといったアルゴリズムが用いられ、WebブラウザではIE4/Netscape 4以降で利用できる。また、WebサーバーではApache 1.3以降で別途モジュールを組み込むと利用でき、IISでは5以降がサポートしている。HTTP圧縮は実際に利用すると劇的な効果があるのだが、サーバー側で利用していないケースが多いようだ。また、圧縮にはCPU負荷がかかるので、すべてのコンテンツを圧縮するのは効果的とはいえない。こうした処理もロードバランサーにオフロードするのがお勧めだ。
(次ページ、セキュリティを確保する)
この連載の記事
-
第6回
ネットワーク
TCPの改良やキャッシング、圧縮でより速く -
第5回
ネットワーク
WANの遅延を抑えて、レスポンスアップする -
第3回
ネットワーク
ますます高機能化するロードバランサーの技術 -
第2回
ネットワーク
知っておきたいロードバランサーの基礎技術 -
第1回
ネットワーク
アプリケーションを快適に使うためになにが必要? -
ネットワーク
アプリケーショントラフィック管理入門<目次> - この連載の一覧へ