Amazon CloudFrontのキャッシュ削除機能とその考慮点

CloudFront(CDN)には、一度リクエストされたコンテンツをキャッシュし、次のリクエストで再利用する機能があります。 この機能は、ページロードの高速化とオリジンサーバーの負荷削減に役立ちますが、何らかの理由でキャッシュを削除したいことがあります。例えば、最新のコンテンツにすぐに切り替えたい場合や誤ったコンテンツがキャッシュされた場合がこれに該当します。

CloudFrontにはこういった状況で利用できるキャッシュ削除を行う機能があります。本記事では、CloudFrontによるキャッシュの削除方法とその考慮事項について解説します。

目次

CloudFrontのキャッシュの削除方法

キャッシュの削除は簡単に行えます。ディストリビューションからキャッシュ削除タブを選び作成を選択します。

次に、削除したいキャッシュのパスを指定します。

URLではなくパスを指定する点に注意してください。例えば、この記事(URL: https://www.bloomblock.net/media/amazon-cloudfront-cache-invalidation/)のキャッシュを削除したい場合は、/media/amazon-cloudfront-cache-invalidation/を指定します。

パスの指定には、*(ワイルドカード)が利用できます。 こちらの画像のように/*を指定すると全てのコンテンツのキャッシュが削除されます。

CloudFrontのキャッシュ削除のコスト

毎月1000パスまでは無料でキャッシュを削除することができます。 1000パス以降は、$0.005のコストが発生します。詳しくはAWSの料金ページをご覧ください。

このパスの数え方はやや特殊であり、前述した/*で全コンテンツのキャッシュを削除した場合でも1パスとして数えられます。

そのため、削除したいコンテンツがあり、そのパスに共通部分がある場合、*を利用することでキャッシュ削除のコストを抑えられます。

CloudFrontのキャッシュ削除の考慮事項

キャッシュ削除は便利な機能ですが、リクエストが多いWebサイトで乱用することは厳禁です。

キャッシュを削除する前に次のことは認識しておきましょう。

オリジンサーバーへの負荷が上昇する

キャッシュが削除されると、ユーザーからのリクエストがオリジンサーバーへ到達するようになり、一時的にオリジンサーバー負荷が上昇します。広い範囲のキャッシュを削除する場合、ユーザーリクエストが少ない深夜に実施するといった配慮が必要です。

キャッシュの削除はオリジンサーバーに近いところから順に実施する

CDNを複数接続していたり、オリジンサーバー側でもVarnishなどのキャッシュを利用している場合は、キャッシュの削除はオリジンサーバーに近いところから順に削除するという原則を覚えておいてください。 オリジンサーバーに近いところのキャッシュが残っている限り、古いコンテンツが表示され続けてしまいます。

ブラウザキャッシュの削除は可能?

結論から言うと、ブラウザキャッシュをCloudFrontの機能で削除することはできません。そのため、ブラウザキャッシュの利用はCloudFrontのキャッシュよりも、慎重に検討する必要があります。

ブラウザキャッシュを削除する方法としては、Clear-Site-Dataヘッダーがあります。このヘッダーをレスポンスにつけることでブラウザキャッシュを削除することができます。 ただし、サポートしていないブラウザがある、個別のコンテンツは指定できないと制約も多いため、ブラウザキャッシュを確実に削除する方法はないと言えます。

CloudFrontでClear-Site-Dataを付与してユーザーにレスポンスしたい場合は、CloudFront Functionsが利用できます。下記の記事では、Cache-Controlを書き換えていますが、同様の方法でClear-Site-Dataを追加できます。

あわせて読みたい
CloudFront Functionsでブラウザキャッシュの挙動を制御する 本記事では、CloudFront Functionsを使って、ブラウザキャッシュの挙動を制御する方法をお伝えします。通常のCloudFrontのキャッシュに加えて、ブラウザキャッシュの制...

また、CDNとブラウザの両方のキャッシュ戦略を設計する際は、次の記事が参考になります。

あわせて読みたい
基礎から理解するCDN入門: 第9回 キャッシュ戦略を設計する キャッシュの利用は、レスポンスの高速化やオリジンサーバーの負荷削減といったメリットがありますが、適切な設定をしないとその効果を発揮できません。また、誤ったコ...

まとめ

本記事では、CloudFrontのキャッシュ削除機能について解説しました。キャッシュ削除ができることを把握しておけば、誤ったコンテンツがキャッシュされた場合などの緊急時に焦らず対処ができますので、覚えておくと良いでしょう。

キャッシュを削除するとオリジンサーバーの負荷が一時的に上昇することも考慮して、時間帯などを調整することもおすすめ致します。

よかったらシェアしてね!

CD

目次