10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS CloudFrontのキャッシュ設定が新しくなっていた

Last updated at Posted at 2020-09-09

概要

  • 以前は CloudFront ではキャッシュ設定を個別のパスに対する Behavior でTTL設定などを毎回設定する必要があった
  • 設定にUse a cache policy and origin request policyの選択肢が現れ、cache policy を作って使い回せるようになった

image.png

もっともベーシックなCache Policy と Origin Request Policy

以下のようにすでに組み込み(Managed)な Cache Policy が利用可能です。
既存の Policy の設定を見ることで、どういう設定ができるかみていきます。

image.png

Cache Policy

  • Managed-CachingOptimized
    • TTL Settings
      • 設定値
        • Minimum TTL => 1
        • Maximum TTL => 31536000
        • Default TTL => 86400
      • 意味
        • サーバサイドから返しているキャッシュ関連ヘッダ(Cache-Control max-age など)とTTLの関係についてはこちらが参考になります
        • Cache-Control max-age がサーバサイドから帰ってきているケースだと、TTLのレンジに収まっていればそれが使われ、収まっていなければTTLが優先されるようです
        • CloudFrontがレスポンスヘッダを書き換えるわけではないので、クライアントから見える Cache-Control max-age が書き換わっているわけではないので、実際に設定したTTLが適用されているかは確認できませんでした
    • Cache key contents (The cache key includes the headers, cookies, and query strings in the cache policy, as follows)
      • 設定値
        • Headers => None
        • Cookies => None
        • Query strings => None
      • 意味
        • CachingOptimizedという名前がついている通り、上記の設定が一番最適化されたものです
        • レスポンスヘッダ、クッキー、クエリストリングの特定のものが入っているかどうかでキャッシュを分岐することができますが、それを設定しないということは、全てのリクエストが同じパスであれば同じキャッシュを見ることを意味します
        • ファイルを差し替えるとき、ファイル名を変更しないでクエリストリングだけ変更してキャッシュ揮発させることを期待している場合には、 Query Stringsの設定はNoneではダメで、All設定をいれておかなければいけないと思います

Origin Request Policy

  • Managed-AllViewer
    • Origin request contents
      • 設定値
        • Headers => All viewer headers
        • Cookies => All
        • Query strings => All
      • 意味
        • オリジンサーバに対してCloudFrontからどの情報を流すかを示しているようです
        • HeadersAll viewer headersは、クライアントが送ってきたヘッダをそのままオリジンに渡す設定です。Origin Request Policy を新たに作成すれば、CloudFrontが後から付与するヘッダなどもオリジンに流せるようです

キャッシュ設定の反映確認

キャッシュ設定をする前は以下のように Miss From cloudfront になっていると思います。

image1https___qiita-image-store_s3_ap-northeast-1_amazonaws_com_0_144064_0b12415c-35ae-49ef-28fd-5650ffc9c2bf.png

Hit from CloudFront になります。

image2https___qiita-image-store_s3_ap-northeast-1_amazonaws_com_0_144064_0f3e685a-fb44-a527-a758-e5ab8041c4d4.png

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?