TTLの挙動は、これ見るのが一番早い
Cache-Control
ヘッダについては、こちらを参照
なんでこんなにややこしいの
オリジン側の Cache-Control
を尊重した上で、CDNではどう振る舞うのか? を考慮しているため……だと思う……
ものすごくざっくりした理解
s-max-age
、max-age
、Expires
の順で優先されるmax-age
などが、MinTTL
〜MaxTTL
の範囲であれば、max-age
が尊重されるmax-age
が、MinTTL
以下ならば、MinTTL
が優先max-age
が、MaxTTL
以上ならば、MaxTTL
が優先
Cache-Control
がno-cache
,no-store
,private
のいずれかの場合MinTTL = 0
ならば、キャッシュしないMinTTL > 0
ならば、MinTTL
Cache-Control
が無い場合、MinTTL = 0
ならば、DefaultTTL
←DefaultTTL
唯一の登場機会MinTTL > 0
ならば、MinTTL
TTLのデフォルト値
MinTTL
: 未記載- おそらく
0
- TTLを何も設定しないと、24時間キャッシュされると書かれているので
- おそらく
MAXTTL
: 1年DefaultTTL
: 24時間
オリジンをS3で使う場合
- デフォルトでは
Cache-Control
は未指定なので以下のように設定すれば良い。MinTTL=0
DefaultTTL=${キャッシュしたい秒数}
MaxTTL= 31536000
← ぶっちゃけどんな値でも問題ないはず