Develop with pleasure!

福岡でCloudとかBlockchainとか。

mod_deflateでgzip圧縮

EC2上でサービスを展開する際に注意することの1つに回線速度が挙げられる。

USのデータセンター向けのアクセスだと、日本-US間の通信が発生するので、光回線でも上り下りとも大体1〜2Mbpsくらい。ADSLレベルのスピードが現状。

そういった現状があるので、Webサイトでもできるだけ通信量を減らした方が良い。

今回は、Apacheのmod_deflateを利用して、ブラウザとサーバ間でやりとりするコンテンツ(HTML、CSSJavaScript)をgzip圧縮するようにした。

mod_deflateでgzip圧縮しても、圧縮したコンテンツがキャッシュされる訳ではないので、サーバへアクセスする度に、Apachegzip圧縮が発生する。この処理自体はサーバのCPUを消費するためCPU負荷は増加するが、

  • 現状他にCPU負荷が上がるようなサービスはしていないので、データ量を削減した方がより効率的なサービスが行えると判断できる。
  • EC2の場合、インスタンスの稼働時間に対して課金される。CPUをいくら消費しても料金は変わらない。また帯域の使用量についても課金されるため、gzip圧縮した分、トラフィックが減り料金も減る。


といった点を考慮すると導入しちゃった方が良さげ。

てことで、httpd.confあたりを

LoadModule deflate_module modules/mod_deflate.so

↓をgzip圧縮対象のDirectoryディレクティブ内に記載
AddOutputFilterByType DEFLATE text/html text/plan text/css text/javascript application/javascript application/x-javascript


と変更して、再起動。

FirefoxのYSlowアドオンで圧縮前後を比較すると


な感じで、圧縮されてるのが分かる。