パージは、自然に失効する前にキャッシュされたオブジェクトを無効化(削除)します。誤っていたり、古くなっていたり、互換性を損なう更新があったりするために、何かをパージしたい場合があります。オブジェクトがパージされると、そのオブジェクトに対する次のリクエストは、キャッシュではなくソースから取得されます。
Webサイトの所有者にとって、キャッシュをパージする理由は数多くあります。例えば、eコマースリテーラーの場合、プロダクトの価格や数量が常に最新であることを確実にしたいはずです。これは、パージポリシーを実装する大きな理由になります。また、ニュースWebサイトを運営していて、記事の見出しや内容が有効でなくなった場合は、古いバージョンではなく新しいタイトルと内容がオリジンサーバーから取得されてキャッシュに保存されるように、パージする必要があります。
パージの仕組み
オブジェクトがキャッシュに保存されている間、オブジェクトには鮮度の有効期間があり、これは有効期限 (TTL) または有効期限 (TTL) とも呼ばれ、オリジンサーバーによる再検証を必要とせずに配信できます。キャッシュされたオブジェクトがその TTL 値に達すると失効し、キャッシュは新鮮であるとは見なされなくなります。このオブジェクトは、正式に削除されてキャッシュが再検証される前であれば、失効済みのまま配信され続ける場合があります。
通常の有効期限前にコンテンツをキャッシュから削除する必要がある場合は、パージを使用できます。これは、キャッシュコンテンツに誤りが含まれている場合や、最新ではなくなっている場合、または重大な変更により直ちに更新する必要がある場合によく必要になります。いずれの場合でも、パージは、サイト上で現在キャッシュされているものを、オリジン上のより新しい最新バージョンに置き換えるために行います。
キャッシュパージの方法
「パージとは何か」を理解したところで、キャッシュパージのさまざまなメソッドを見てみましょう。
手動キャッシュパージ: これには、特定のコンテンツやパスのパージリクエストを手動で開始することが含まれます。ご利用のキャッシュシステムまたはコンテンツ配信ネットワーク(CDN) が提供するユーザーインターフェイス、API、またはコマンドラインツールを通じて実行できます。手動パージは、コンテンツをすぐに更新する必要がある単発または稀な状況で役立ちます。
自動キャッシュパージ: このメソッドでは、特定のイベントや条件に基づいてパージリクエストが自動的にトリガーされます。例えば、コンテンツ管理システムで新しいコンテンツが公開されたり更新されたりするたびに、パージを開始できます。自動パージは、手動による介入なしにキャッシュコンテンツを新鮮な状態に維持するのに役立ちます。
パージ戦略:
完全パージ: 完全パージではキャッシュ全体が無効化され、キャッシュされたすべてのコンテンツが消去されます。このように強硬なアプローチは、コンテンツが再度キャッシュされるまでキャッシュパフォーマンスに影響するため、通常、絶対に必要な場合にのみ使用されます。
部分パージ: 部分パージでは、特定の URL、パスパターン、コンテンツタイプなど、キャッシュコンテンツのサブセットを無効化します。これにより、期限切れコンテンツだけをより的確にパージできます。
スマートパージ:キャッシュシステムによっては、キャッシュの経過時間やトラフィックレベル、コンテンツの関係性などの要因に基づいて、よりインテリジェントなパージロジックをサポートし、コンテンツの鮮度を維持しながらパフォーマンスへの影響を最小限に抑えられるものもあります。
キャッシュパージのベストプラクティス
効果的なキャッシュパージによって、コンテンツの鮮度を確保しつつ、最適なパフォーマンスを維持できます。以下では、このようなバランスを達成するのに役立つベストプラクティスをご紹介します。
1. 明確なキャッシュパージのポリシーを確立する
キャッシュパージをトリガーする特定のシナリオや条件と、各状況に適したパージメソッド(完全、partial、スマート)を定義します。ポリシーを決定する際には、コンテンツの鮮度に関する要件、重要度、更新頻度を考慮してください。
2. 定期的なメンテナンススケジュールを設定する
定期的なキャッシュパージを計画し、全体または対象を絞った方法で、長く残っている失効済みコンテンツを消去してキャッシュをリセットします。頻度はコンテンツの性質によって異なり、急速に変化するコンテンツでは、より頻繁なパージが必要になります。
3. パージプロセスを自動化する
キャッシュパージをコンテンツ管理システム、CI/CD パイプライン、またはその他のツールと統合し、コンテンツの更新やデプロイに基づいてパージを自動化します。自動化により、タイムリーなパージが確実になり、手作業の負担が軽減されます。
4. パフォーマンスへの影響を考慮する
パージ、特に完全パージは、コンテンツが再度キャッシュされるまで、一時的にパフォーマンスに影響する可能性があります。パージのワークフローをテストし、スロットリングやレート制限を実装し、インテリジェントなパージロジックを検討することで、オリジンサーバーへの影響を最小限に抑えることができます。
5. 俊敏性と適応力を維持する
パージプロセスの効果を継続的にモニタリングし、メトリクスを追跡して、必要に応じてポリシーとワークフローを改善します。要件やテクノロジーの変化に応じて戦略を適応できるように準備しておきます。
パージの例とは何ですか?
ニュース記事を公開したものの、誤りがあることに気づいたとします。記事を修正し、デプロイプロセスを使用してオリジンサーバーにプッシュします。ただし、誤った記事は引き続きキャッシュに残り、パージリクエストを送信するまで顧客に配信される可能性があります。これは HTTP ヘッダーを使用して行うこともできます。パージすると、キャッシュされたオブジェクトをクライアントのリクエストに返すのを止め、代わりに新しいオブジェクトをオリジンから取得するようキャッシュに指示します。この新しいオブジェクトはキャッシュ内のオブジェクトを置き換え、後続のリクエストへのレスポンスとして配信できます。
なお、このパージメソッドは、リバースプロキシやCDNなど、実装されたリモートキャッシュに対してのみ機能します。ユーザーのローカルブラウザキャッシュにパージリクエストを送信して、強制的にパージさせることはできません。CDN を使用している場合は、そもそもオブジェクトがブラウザにキャッシュされないように、HTTP ヘッダーを設定することをお勧めします。
Fastly Academy のキャッシュパージについて詳しくご覧ください。