キャッシュされたファイルを CloudFront から削除するにはどうすればよいですか?
最終更新日: 2022 年 5 月 27 日
オリジンサーバー上のファイルを更新しました。しかし、Amazon CloudFront は引き続き古いコンテンツをユーザーに提供しています。なぜこのようなことが起こっているのですか? また、キャッシュをクリアするにはどうすればよいですか?
簡単な説明
デフォルトでは、CloudFront は、オリジンからのレスポンスの
Cache-control ヘッダーと、CloudFront ディストリビューションのキャッシュ動作の
最小、最大、およびデフォルトの TTL 値に基づいて、レスポンスをエッジロケーションにキャッシュします。
設定した値に基づいて、CloudFront はキャッシュの有効期限が切れるまでキャッシュされたファイルを提供します。更新されたファイルをすぐに提供するには、ファイルを無効にして CloudFront のキャッシュからオブジェクトを削除します。
注: cookie、クエリ文字列、またはヘッダーを使用して応答を変化させるオブジェクトの特定のバージョンを無効にすることはできません。無効化すると、オブジェクトのすべてのバージョンが削除されます。
解決方法
重要: ファイルの無効化には、料金がかかる可能性があります。詳細については、「ファイルの無効化に対する支払い」を参照してください。
AWS コンソールを使用したファイルの無効化
AWS コンソールを使用してファイルを無効化するには、「
コンソールを使用したファイルの無効化」を参照してください。
AWS CLI を使用したファイルの無効化
注: AWS Command Line Interface (AWS CLI) コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
AWS CLI を使用してファイルを無効化するには、create-invalidation コマンドを使用します。
aws cloudfront create-invalidation ---distribution-id EDFDVBD6EXAMPLE --paths "/example-path/index.html"
注:
EDFDVBD6EXAMPLE を、ファイルを提供するディストリビューションの ID に置き換えます。
無効化の現在のステータスを確認するには、get-invalidation コマンドを使用します。
aws cloudfront get-invalidation --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE
注:
EDFDVBD6EXAMPLE を、ファイルを提供するディストリビューションの ID に置き換えます。
無効化が完了するまで無効化のステータスをポーリングするには、次のコマンドを使用します。
aws cloudfront wait invalidation-completed --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE
注:
EDFDVBD6EXAMPLE を、ファイルを提供するディストリビューションの ID に置き換えます。