よくあるご質問

AWS_S3 プラグインを利用し Amazon S3・CloudFront でコンテンツを配信する場合、キャッシュに保持される期間はどうなりますか?

CloudFront がオブジェクトをキャッシュする期間の指定については、Amazon が公開している下記ドキュメントをご覧ください。

CloudFront のキャッシュ時間はオリジン HTTP ヘッダーの「Cache-Control: max-age」により設定が可能で、 AWS_S3プラグインが S3 にオブジェクトを配置する際、メタデータ「Cache-Control」を設定しています。「Cache-Control」の初期値は 86400(1日)で、プラグイン設定の「キャッシュ有効期限」において一括、もしくは拡張子毎に設定できます。

例えばプラグイン設定で下記のようにキャッシュ有効期限を設定した場合は、テキストファイルのメタデータには Cache-Control: max-age=30 が設定される事になります。

default=86400,txt=30

S3でオブジェクトのメタデータを表示した画面

この状態でテキストファイルに対しリクエストを発行する検証を行うと、レスポンスヘッダーの X-Cache の値は以下のようになりました。(CloudFront のキャッシュポリシーは「Managed-CachingOptimized」…つまり最小TTL 0、最大TTL 31536000です。)

  1. 最初のリクエストでは Miss from cloudfront
  2. 30秒以内に再度リクエストを出すと Hit from cloudfront
  3. 30秒を経過した後再度リクエストを出すと Miss from cloudfront(S3 にオブジェクトの更新確認や取得を行うため、オブジェクトが更新されている場合は新しいコンテンツが表示される)

なお、 AWS_CloudFrontプラグイン等を利用し有効期限切れになる前に CloudFront エッジキャッシュからファイルを削除できますが、 1つのAWS アカウントあたり月間1,000パスを越える無効化リクエストには料金が発生します。キャッシュ有効期限設定等は慎重に検討する必要があります。

更新日:2025年01月17日

カテゴリー

関連するドキュメント

FAQ キーワード検索

解決しなかった場合は
下記よりお問い合わせください

お問い合わせ

日本語