Azure Content Delivery Network のキャッシュ動作をキャッシュ規則で制御する
重要
Azure CDN Standard from Microsoft (クラシック) は、2027 年 9 月 30 日に廃止されます。 サービスの中断を回避するには、2027 年 9 月 30 日までに Azure Front Door の Standard または Premium レベルに Azure CDN Standard from Microsoft (クラシック) プロファイルを移行することが重要です。 詳細については、Azure CDN Standard from Microsoft (クラシック) の廃止に関するページを参照してください。
Azure CDN from Edgio は、2025 年 1 月 15 日に廃止される予定です。 サービスが中断しないようにするには、この日までに Azure Front Door にワークロードを移行する必要があります。 詳細については、「Azure CDN from Edgio の廃止に関する FAQ」を参照してください。
この記事では、コンテンツ配信ネットワークのキャッシュ規則を使用して、既定のキャッシュ期限切れ動作を設定または変更する方法を説明します。 これらのキャッシュ規則は、グローバルにすることも、URL パスやファイル拡張子などのカスタム条件を使用することもできます。
Note
キャッシュ規則は、Azure CDN Standard from Edgio プロファイルでのみ使用できます。 Microsoft の Azure CDN プロファイルの場合は、Standard ルール エンジン を使用する必要があります。Azure CDN Premium from Edgio プロファイルの場合は、同様の機能に対して 管理 ポータルで Edgio Premium ルール エンジン を使用する必要があります。
Azure Content Delivery Network には、ファイルをキャッシュする方法を制御する方法が 2 つあります。
キャッシュ規則: Azure Content Delivery Network には、グローバルとカスタムの 2 種類のキャッシュ規則が用意されています。
グローバル キャッシュ規則 - プロファイルのエンドポイントごとに 1 つのグローバル キャッシュ規則を設定することができ、エンドポイントに対するすべての要求に適用されます。 HTTP キャッシュ ディレクティブ ヘッダーが設定されている場合、グローバル キャッシュ規則はそれをオーバーライドします。
カスタム キャッシュ規則 - プロファイルのエンドポイントごとに、1 つ以上のカスタム キャッシュ規則を設定できます。 カスタム キャッシュ規則は、特定のパスおよびファイル拡張子と一致し、順番に処理され、グローバル キャッシュ規則が設定されている場合はそれをオーバーライドします。
クエリ文字列キャッシュ: Azure コンテンツ配信ネットワークが要求のキャッシュを処理する方法を、クエリ文字列で調整することができます。 詳細については、「クエリ文字列による Azure コンテンツ配信ネットワーク キャッシュ動作の制御」を参照してください。 ファイルがキャッシュ可能でない場合は、クエリ文字列のキャッシュ設定に効果はなく、キャッシュ規則とコンテンツ配信ネットワークの既定の動作に基づきます。
既定のキャッシュ動作およびキャッシュ ディレクティブ ヘッダーについては、「キャッシュのしくみ」をご覧ください。
Azure Content Delivery Network のキャッシュ規則にアクセスする
Azure portal を開き、コンテンツ配信ネットワーク プロファイルを選択し、エンドポイントを選択します。
左側のウィンドウの [設定] で、 [キャッシュ規則] を選択します。
[キャッシュ規則] ページが表示されます。
キャッシュ動作の設定
グローバル キャッシュ規則およびカスタム キャッシュ規則に対しては、次のキャッシュ動作の設定を指定できます。
[キャッシュのバイパス]: キャッシュを行わず、もともと指定されているキャッシュディレクティブ ヘッダーを無視します。
オーバーライド: もともと指定されているキャッシュ期間を無視し、代わりに指定したキャッシュ期間を使います。 この設定では、キャッシュ制御 (キャッシュなし) はオーバーライドされません。
注意
Microsoft プロファイルからの Azure CDN の場合、キャッシュの有効期限のオーバーライドは、状態コード 200 と 206 にのみ適用されます。
- [存在しない場合に設定]: キャッシュ ディレクティブ ヘッダーがもともと指定されていた場合はそれに従い、指定されていなかった場合は、設定したキャッシュ期間を使います。
キャッシュの有効期間
グローバル キャッシュ規則とカスタム キャッシュ規則では、日数、時間、分、および秒でキャッシュの有効期間を指定できます。
[キャッシュ動作] の設定が [オーバーライド] および [存在しない場合に設定] の場合、有効なキャッシュ期間は 0 秒から 366 日の範囲です。 値が 0 秒の場合は、コンテンツ配信ネットワークはコンテンツをキャッシュしますが、要求ごとに送信元のサーバーを再検証する必要があります。
[キャッシュのバイパス] 設定の場合、キャッシュ期間は自動的に 0 秒に設定され、この値は変更できません。
カスタム キャッシュ規則の一致条件
カスタム キャッシュ規則では、次の 2 つの一致条件を使うことができます。
[パス]: この条件は、ドメイン名を除く URL のパスと一致し、ワイルドカード文字 (*) をサポートしています。 たとえば、/myfile.html、/my/folder/**、/my/images/.jpg です。 最大長は 260 文字です。
[拡張子]: この条件は、要求されたファイルのファイル拡張子と一致します。 コンマで区切ってファイル拡張子のリストを指定できます。 たとえば、.jpg、.mp3、または .png です。 拡張子の最大数は 50、各拡張子の最大文字数は 16 です。
グローバル規則とカスタム規則の処理順序
グローバルおよびカスタムのキャッシュ規則は、次の順序で処理されます。
既定のコンテンツ配信ネットワーク キャッシュ動作 (HTTP キャッシュ ディレクティブ ヘッダーの設定) より、グローバル キャッシュ規則の方が優先されます。
グローバル キャッシュ規則より、カスタム キャッシュ規則の方が優先されます (同じ適用対象について)。 カスタム キャッシュ規則は上から下へ順番に処理されます。 つまり、要求が両方の条件と一致する場合、一覧で上にある規則より下にある規則の方が優先されます。 したがって、固有性の高い規則ほど一覧の下に置く必要があります。
例:
グローバル キャッシュ規則:
- キャッシュ動作: オーバーライド
- キャッシュの有効期間: 1 日
カスタム キャッシュ規則 1:
- 一致条件: パス
- 一致する値: /home/*
- キャッシュ動作: オーバーライド
- キャッシュの有効期間: 2 日
カスタム キャッシュ規則 2:
- 一致条件: 拡張子
- 一致する値: .html
- キャッシュ動作: 存在しない場合に設定
- キャッシュの有効期間: 3 日
これらの規則を設定した場合、<エンドポイントのホスト名>.azureedge.net/home/index.html に対する要求は、[存在しない場合に設定] および 3 日に設定されているカスタム キャッシュ規則 2 をトリガーします。 したがって、index.html ファイルに Cache-Control
または Expires
HTTP ヘッダーがある場合はそれらが適用され、これらのヘッダーが設定されていない場合は、ファイルは 3 日間キャッシュされます。
Note
規則が変更される前にキャッシュされたファイルは、元のキャッシュ期間の設定のままになります。 キャッシュ期間をリセットするには、ファイルを消去する必要があります。
Azure Content Delivery Network 構成の変更がネットワーク全体に反映されるまでには時間がかかる可能性があります。
- Azure CDN Standard from Edgio プロファイルの場合、通常、反映は 10 分で完了します。