-CDN #contents *概要 [#jb53e6e9] CDNとしてコンテンツをキャッシュできる。全世界にキャッシュを持つので、キャッシュクリアや設定の変更反映には時間がかかるので注意。またCloudFrontにキャッシュさせるとブラウザキャッシュにも入ってしまうので、なんかおかしいなと思ったらブラウザのキャッシュクリアも試してみること。 *CloudFront 用語集 [#a1df3a3c] |Distribution|CloudFrontの一番大きな管理単位| |Origin|Distributionに複数配置可能。次のBehaviorsにて/path以下を別ドメインに割り当てるなんてことも可能。| |Behaviors|パスに対してどのoriginを割り当てるかの設定。クエリーストリングを渡さないのがデフォルトなので注意| *キャッシュについて [#k96dff5e] 何もしないとデフォルトは24時間キャッシュ。originサーバーでのCacheヘッダーを参照するようにするとその通りに動いてくれる。no-cacheやprivateを入れていればキャッシュしない。Behaviroの設定でカスタマイズすることもできるのでurlパス単位で設定できる。 **キャッシュかどうかの見分け方 [#efcf783f] -ヘッダーにX-Cacheが付与されている。 |キャッシュがないとき|X-Cache: Miss from cloudfront| |キャッシュ有通常ページ|X-Cache: Hit from cloudfront| |キャッシュ有かつエラーページ|X-Cache: Error from cloudfront| *キャッシュ無効化 [#o1377c31] キャッシュ無効化は1000件までは無料。ワイルドカードでも良いので消したいフォルダの上位で指定するのが無駄なくて良い。無効化は各エッジサーバーに伝播するのに、結構時間がかかるのとObjectの数が3000個らしいので頻繁に変わるところは適宜キャッシュコントロールを付けるのがおすすめ。 *エラーページ [#j1d32a93] *CloudFront用のrewrite設定 [#t30d767c] **Wordpress [#g0dfc0ad] RewriteEngine On RewriteCond %{HTTP_USER_AGENT} !CloudFront RewriteCond %{REQUEST_METHOD} =GET RewriteRule ^(.*)$ http://%1クラウドフロントのURL$1 [R=301,L,NE] 最後のNEはURLエンコーディングをしないということで、これを入れないと検索できない。 **pukiwiki [#v73f4e18] もともと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