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