WEBサイトの規模が大きくなればなるほど多くのネットワーク帯域が使われるようになります。

 昔バックボーンが100Mイーサネットだった時期に、サービス利用者が想定以上の早さで急激に伸び、危なく利用帯域が100Mbpsを超えそうになったことがありました。そのとき当然のことながらバックボーンのギガビット化が検討されたのはいうまでもないのですが、それと平行して急場をしのぐ対策を検討しました。

 議論が進むうちに「我々は果たしてネットワーク帯域を効率的に使っているのか」という疑問が生まれました。そして我々はあることに気づきました。それはHTMLファイルのようなテキストファイルは無駄にスペースやタブがたくさん含まれているので圧縮すればその分ネットワーク帯域を節約できるはずだ、ということです。この件についてちょっと調べて見ると、なんとWEBサーバ自体にHTTP圧縮という機能がついているではありませんか。

※HTTP圧縮機能は1996年に標準化されたHTTP1.0仕様の中でサポートされているとのこと。WEBサーバ、WEBブラウザー双方でHTTP圧縮に対応している必要があるが主要WEBサーバ、WEBブラウザーでは大抵サポートされている。

 ということで早速試した結果が以下の内容です。ものすごい効果です。

 さて、参考までにWEBサーバ側でのHTTP圧縮設定方法を簡単にご紹介します。ここではIISとApacheについて記します。

IIS5.0の場合

  1. [IISマネージャ]で、設定を行うコンピュータのアイコンを右クリックし[プロパティ] をクリックします。
  2. [インターネットインフォメーションサービス] タブの [マスタプロパティ] ボックスから [WWW サービス] をクリックします。
  3. [編集] をクリックすると、[WWW サービスマスタプロパティ] ダイアログボックスが表示されます。
  4. [サービス] タブをクリックします。
  5. [静的ファイルを圧縮する] チェック ボックスをオンにします。このオプションを有効にすると、拡張子が "htm"、"html"、および "txt" のファイルが圧縮されるようになります。

※[アプリケーションファイルを圧縮する]はチェックしないほうが安全です。実験してみた結果動的コンテンツが予期しない挙動をする現象が多発したためです。

IIS6.0の場合

  1. [IISマネージャ]でローカルコンピュータを展開します。
  2. [Web サイト]フォルダを右クリックして、[プロパティ]をクリックします。
  3. [サービス] タブをクリックします。
  4. 以降はIIS5.0と同様です。

Apacheの場合

 apache1.x系の場合はmod_gzip、apache2系の場合はmod_deflateを用います。設定方法に関してはとても長くなるので割愛します。ネット上にたくさん落ちてますのでそちらをご参照ください。

 ちょっとした設定変更でネットワーク費用が削減できるなんてすばらしいですよね。是非お試しください。