ふつうのWebサイトの負荷軽減におけるCloudFront
「Wordpressのアクセスが増えたからサーバを増強しないと...」と聞くことがあります。
サーバ増強もよいですが、その前にAmazon CloudFrontを試してみてはいかがでしょうか。 最近のアップデートで一般的なレンタルサーバでも導入しやすくなっています。
条件はおそらく
だけです。(たぶん)
参考
【AWS発表】Amazon CloudFront に Cookieのサポートを含む3つの新機能が追加!
Cookieサポートで、管理画面やコメント投稿者などに対応できるようになっています。
【AWS発表】CloudFrontでカスタムコンテンツの配信が可能に
Hostヘッダ転送が可能になったことで、所謂名前ベースのバーチャルホストにサーバ側の変更や特殊な設定テクニックなしに対応できるようになりました。これがどういうことかというと、独自ドメインが可能な一般的な共用レンタルサーバで利用できる可能性が出てきた、ということです。
また、UserAgent(ブラウザの種類)での出し分けを行っている場合、UserAgentごとのキャッシュも可能になりました。
サンプルサイト
http://wp-cloudfront.takeyu-web.com/
CloudFrontで何が変わるのか?
Good
- サーバへのアクセスの多くをCloudFront側のキャッシュで賄うことができるので、サーバの負荷を抑えられる
- キャッシュからの配信なので動的配信に比べて高速
- 世界各地のAmazonのサーバ(AWSエッジロケーション)の中からネットワーク距離の近いサーバにキャッシュされるため、海外からのアクセスには海外サーバから配信、といったことが可能。読み込みが高速になり、機会損失を抑えることができます。
Bad
- サーバ側に記録されるアクセスログ(Apacheのaccess_logなど)に残らない
- Google Analyticsなどを使ったり、CloudFrontが書き出すログを処理したり
- Expiresヘッダによるキャッシュ期間の設定に注意しないと、不適切な記事の修正が反映されるまでに時間がかかってしまうなどのケースがある
CloudFrontでも変わらないもの
- 利用中のサーバ(サービスによっては工夫が必要だったりするものもあるかも?今度試す)
- ページの見え方
- URL(独自ドメイン利用可能の場合)
- HTTPSアクセス
- GoogleAnalytics
- コメント、管理、検索などの機能(適切にCookieやExpiresヘッダが設定されている場合)
など大抵のこと
CloudFront設定上の注意
Google Analycisなどアクセスの度に変化するCookieを書き出すものを利用する場合にWhitelist設定が必要(アクセス毎に変化してしまうCookieを除外するため)
CloudFrontの価格
動画配信サービスなどでも無い限り、転送量で料金が問題になることはほぼないと思う。
設定方法
設定方法等詳しくは遅くなったので後日。
メモ
- サーバ sv00.hogeserver.com
- CloudFront
- Origin Domain Name ... サーバのホスト名(sv00.hogeserver.com)を指定 ※独自ドメインではない
- Allowed HTTP Methods ... GET, HEAD, PUT, POST, PATCH, DELETE, OPTIONS
- Forward Headers ... Whitelist Host
- Object Caching ... Use Origin Cache Headers
- Forward Cookies ... All / Whitelist
- GoogleAnalyticsを使用している場合、
__utmb
が表示の度に変わってしまうのでAllだとキャッシュヒット率が低下するので、WhitelistでWPのログインなど必要なものを選択
- GoogleAnalyticsを使用している場合、
- Forward Query Strings ... Yes
- Alternative Domain Names ... CNAMEに設定した独自ドメイン(hoge.yourdomain.com)
- 独自ドメイン DNSレコード