CloudFront のキャッシュがキャッシュポリシーのデフォルト TTL より前に失効した原因を教えてください

CloudFront のキャッシュがキャッシュポリシーのデフォルト TTL より前に失効した原因を教えてください

2025.10.31

困っている内容

CloudFront ディストリビューションのキャッシュポリシーに CachingOptimized [1] を使用しています。
オリジン側ではキャッシュ有効期間(TTL) を指定していないため、アクセスした際オリジンの更新が反映されるのは、デフォルトの TTL である 86400 秒 (24 時間) 後だと認識していました。

しかし、実際には以下のような挙動が確認されました。

  • オリジン更新後 30 分:更新内容が反映されていない (キャッシュされている)
  • オリジン更新後 約 20 時間:更新内容が反映されている (キャッシュが失効している)

デフォルト TTL の 24 時間より前にキャッシュが失効し、オリジンの更新が反映された理由を教えてください。

回答

オリジンが Cache-Control: max-age や Expires ヘッダーを返さない場合、CachingOptimized ポリシーでは 86,400 秒 (24 時間) キャッシュされることが期待されます。

一方で、頻繁にリクエストされないオブジェクトのキャッシュは、より人気のあるコンテンツのためのスペースを確保するため、指定したキャッシュ保持期間の経過前に削除される場合があります。[2]

エッジロケーションに頻繁にリクエストされないファイルがあれば、CloudFront は、頻繁にリクエストされるようになったファイル用にスペースを確保するために、そのファイルを削除する (そのファイルの有効期限が切れる前に削除する) 場合があります。

脚注
  1. CachingOptimized - マネージドキャッシュポリシーを使用する - Amazon CloudFront ↩︎

  2. コンテンツをキャッシュに保持する期間 (有効期限) を管理する - Amazon CloudFront ↩︎

この記事をシェアする

FacebookHatena blogX

関連記事