EC2上でサービスを展開する際に注意することの1つに回線速度が挙げられる。
USのデータセンター向けのアクセスだと、日本-US間の通信が発生するので、光回線でも上り下りとも大体1〜2Mbpsくらい。ADSLレベルのスピードが現状。
そういった現状があるので、Webサイトでもできるだけ通信量を減らした方が良い。
今回は、Apacheのmod_deflateを利用して、ブラウザとサーバ間でやりとりするコンテンツ(HTML、CSS、JavaScript)をgzip圧縮するようにした。
mod_deflateでgzip圧縮しても、圧縮したコンテンツがキャッシュされる訳ではないので、サーバへアクセスする度に、Apacheのgzip圧縮が発生する。この処理自体はサーバのCPUを消費するためCPU負荷は増加するが、
- 現状他にCPU負荷が上がるようなサービスはしていないので、データ量を削減した方がより効率的なサービスが行えると判断できる。
といった点を考慮すると導入しちゃった方が良さげ。
てことで、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アドオンで圧縮前後を比較すると
な感じで、圧縮されてるのが分かる。