Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
77
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

AWS CloudFrontで極力キャッシュさせたくない時の話

目的

CloudFrontで出来るだけキャッシュさせないようにする!

CDNなのにキャッシュしないの?!とかいうツッコミは無しです。
要件によっては、CDNなのにキャッシュしない。なんてことはあるんです。

CloudFront挟むけど、一部のファイルは高頻度に更新されるからキャッシュさせたくない。とか、
s3ホスティング機能だけじゃhttps使えないから、CloudFrontをクラウド(s3)のフロントに配置してSSL通信させるとか。

本題の設定内容

CloudFrontの一般的な設定方法とかは他サイトに沢山あるので割愛して、「極力キャッシュさせない(1秒キャッシュ)」設定方法だけ記載します。
(某所より0秒キャッシュは推奨されないとの事で、1秒キャッシュにしています。)

追記: 2017.1.12
0秒の場合はそのままオリジンにアクセスすることになるため、大量アクセスからのオリジン保護の意図も含めて1秒の設定になります。
そのままオリジンに流したい場合は0秒、大量の同時アクセスに対するオリジンの保護も考えるなら1秒の設定値が良いです。

  1. CloudFront作成中の画面で、[Object Caching]の[Customize]をONにします。
  2. [Minimum TTL]、[Maximum TTL]、[Default TTL]を1に設定します。

AWS_CloudFront_Management_Console.png

注意点

さて、これで終わりでも良いんですが、このままだと200/300番台以外のステータスコードは1秒以上キャッシュされます。(300秒)
なので、[Create Distribution]でCloudFrontを作成した後に、以下の通りに設定変更します。

  1. 対象の CloudFront(Distribution)をチェックし、[Distribution]をクリック
    AWS_CloudFront_Management_Console 2.png

  2. [Error Pages]を選択し、[Create Custom Error Response]をクリック
    AWS_CloudFront_Management_Console 3.png

  3. 後はこの表示されているエラーコードに対して、[Error Caching Minimum TTL]を1に設定する ←これが重要
      ※ Customize Error Responseは必要に応じて指定ください。
    AWS_CloudFront_Management_Console 4.png

Enjoy! AWS Life!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
77
Help us understand the problem. What are the problem?