概要

CDNとしてコンテンツをキャッシュできる。全世界にキャッシュを持つので、キャッシュクリアや設定の変更反映には時間がかかるので注意。またCloudFrontにキャッシュさせるとブラウザキャッシュにも入ってしまうので、なんかおかしいなと思ったらブラウザのキャッシュクリアも試してみること。

CloudFront 用語集

DistributionCloudFrontの一番大きな管理単位
OriginDistributionに複数配置可能。次のBehaviorsにて/path以下を別ドメインに割り当てるなんてことも可能。
Behaviorsパスに対してどのoriginを割り当てるかの設定。クエリーストリングを渡さないのがデフォルトなので注意

キャッシュについて

何もしないとデフォルトは24時間キャッシュ。originサーバーでのCacheヘッダーを参照するようにするとその通りに動いてくれる。no-cacheやprivateを入れていればキャッシュしない。Behaviroの設定でカスタマイズすることもできるのでurlパス単位で設定できる。

キャッシュかどうかの見分け方

キャッシュがないときX-Cache: Miss from cloudfront
キャッシュ有通常ページX-Cache: Hit from cloudfront
キャッシュ有かつエラーページX-Cache: Error from cloudfront

キャッシュ無効化

キャッシュ無効化は1000件までは無料。ワイルドカードでも良いので消したいフォルダの上位で指定するのが無駄なくて良い。無効化は各エッジサーバーに伝播するのに、結構時間がかかるのとObjectの数が3000個らしいので頻繁に変わるところは適宜キャッシュコントロールを付けるのがおすすめ。

エラーページ

CloudFront用のrewrite設定

Wordpress

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !CloudFront
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule ^(.*)$ http://%1クラウドフロントのURL$1 [R=301,L,NE]

最後のNEはURLエンコーディングをしないということで、これを入れないと検索できない。

pukiwiki

もともとno-cacheなので大して負荷軽減にはなってないぞ。

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !CloudFront
RewriteCond %{QUERY_STRING} !(cmd=edit|plugin=newpage|その他除外したいクエリー)
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule ^(.*)$ http://%1クラウドフロントのURL$1 [R=301,L,NE]

同じくNE必須。

Counter: 4053, today: 1, yesterday: 2

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS