すべてのプロダクト
Search
ドキュメントセンター

CDN:Alibaba Cloud CDN のキャッシュヒット率の向上

最終更新日:Aug 21, 2026

キャッシュヒット率が低いと、オリジンサーバーの負荷が増加し、帯域幅コストが上昇し、コンテンツ配信が遅くなります。このチュートリアルでは、Alibaba Cloud CDN (CDN) コンソールを使用して、低いキャッシュヒット率の原因を診断し、適切な最適化戦略を適用する方法を説明します。最終的には、高速化ドメイン名のキャッシュパフォーマンスを最大化するための体系的なアプローチを習得できます。

前提条件

開始する前に、次のことを確認してください。

  • CDN コンソールで少なくとも 1 つの高速化ドメイン名を追加し、有効化していること。

  • AliyunCDNFullAccess ポリシーなど、CDN ドメイン設定を管理する権限があること。

  • レスポンスヘッダーを変更する必要がある場合は、オリジンサーバーの設定にアクセスできること。

背景情報

CDN は、ポイントオブプレゼンス (POP) と呼ばれるエッジノードにコンテンツをキャッシュします。クライアントがキャッシュされたリソースをリクエストすると、POP はオリジンサーバーに接続せずに直接リソースを提供します。これにより、応答時間とオリジンの負荷が削減されます。キャッシュヒット率が低いということは、より多くのリクエストがオリジンに到達することを意味し、レイテンシーとコストが増加します。

CDN は 2 つのキャッシュヒット率メトリックを提供します。

  • バイトヒット率は、キャッシュから提供されたデータの割合を測定します。バイトヒット率が高いほど、オリジンからではなく POP から提供されるデータが多いことを意味します。

    バイトヒット率 = (L1 POP によって提供されたトラフィック - back-to-origin トラフィック) / L1 POP によって提供されたトラフィック

    説明

    バイトヒット率が低いほど back-to-origin トラフィックが多くなり、帯域幅コストとオリジンの負荷が増加します。したがって、バイトヒット率はキャッシュパフォーマンスを監視するための主要なメトリックです。

  • リクエストヒット率は、ファイルサイズに関係なく、キャッシュから提供されたリクエストの割合を測定します。

    リクエストヒット率 = キャッシュヒットしたリクエスト / CDN への総リクエスト数

    説明

    ほとんどのシナリオ、特に大容量ファイルに対して Range オリジンフェッチが有効になっている場合は、バイトヒット率を主要なメトリックとして使用します。リクエストヒット率は、ファイルサイズに関係なく、キャッシュから提供されるリクエストの数を理解するのに役立ちます。

キャッシュヒット率の表示

方法 1:コンソールの使用 (推奨)

キャッシュヒット率を一度だけすばやく確認するには、コンソールを使用します。CDN コンソールには、2 つのモニタリング機能を通じてバイトヒット率が表示されます。

  • リソースモニタリング — 30 日間などの長期間にわたるキャッシュヒット率の傾向を表示します。データは約 15 分の遅延で 5 分粒度で利用可能です。詳細については、「リソースモニタリング」をご参照ください。

  • リアルタイムモニタリング — 1 時間などの短期間にわたるリアルタイムのキャッシュヒット率を表示します。データは約 3 分の遅延で 1 分粒度で利用可能です。詳細については、「リアルタイムモニタリング」をご参照ください。

方法 2:API の利用

キャッシュヒットのモニタリングをダッシュボード、スクリプト、または自動アラートシステムに統合する必要がある場合は、API を使用します。

API オペレーション

説明

DescribeDomainHitRateData

高速化ドメイン名のバイトヒット率データを取得します。標準粒度 (5 分または 1 時間)。過去 90 日間のデータを照会します。

DescribeDomainReqHitRateData

高速化ドメイン名のリクエストヒット率データを取得します。標準粒度 (5 分または 1 時間)。過去 90 日間のデータを照会します。

DescribeDomainRealTimeByteHitRateData

高速化ドメイン名のリアルタイムのバイトヒット率データを 1 分粒度で取得します。過去 7 日間のデータを照会します。

DescribeDomainRealTimeReqHitRateData

高速化ドメイン名のリアルタイムのリクエストヒット率データを 1 分粒度で取得します。過去 7 日間のデータを照会します。

DescribeCdnDomainLogs

高速化ドメイン名のログダウンロード URL を取得します。過去 90 日間のログを照会します。

キャッシュヒット率の向上

まず、CDN ログを確認して、ドメインのキャッシュミスの最も一般的な原因を特定します。次に、以下の表から対応する戦略を適用します。

戦略

要因とシナリオ

設定方法

人気のあるリソースのプリフェッチ

要因:大規模なイベントや新しいバージョンのリリースの前に、まだ POP にキャッシュされていないリソースがオリジンフェッチをトリガーし、キャッシュヒット率を低下させます。

シナリオ:プロモーションイベントの場合、イベント開始前にイベントページの静的リソースを POP にプリウォームします。アプリケーションのリリースの場合、リリース前にインストールパッケージをプリウォームして、ダウンロードリクエストが POP から提供されるようにします。

プリフェッチ機能を使用して、リソースを POP にプリウォームします。詳細については、「クイックスタート」をご参照ください。

適切なキャッシュ有効期間の設定

要因:CDN にキャッシュポリシーが設定されていない、または設定された TTL が短すぎます。すべてのユーザーリクエストがオリジンに到達するか、キャッシュされたリソースが頻繁に期限切れになります。

シナリオ:オリジンに静的コンテンツを公開したが、POP がそれをキャッシュしない、またはキャッシュされたコンテンツがすぐに期限切れになります。

ガイダンス:まれにしか更新されない静的ファイル (画像、アプリケーションのダウンロード) の場合、TTL を 1 か月以上に設定します。頻繁に更新される静的ファイル (JS、CSS) の場合、ビジネスニーズに基づいて TTL を設定します。動的ファイル (PHP、JSP、ASP) の場合、TTL を 0 秒に設定してキャッシュを無効にします。

注意:長い TTL を設定すると、古いコンテンツが提供される可能性があります。ファイルバージョニング (ファイル名にバージョン番号を追加するなど) を使用するか、コンテンツを更新した後にキャッシュをパージします。





CDN キャッシュ有効期間の設定

キャッシュキーにおける URL パラメーターの無視

要因:同じリソースを指すクエリパラメーターが異なる URL が、個別のキャッシュエントリとオリジンフェッチをトリガーします。

シナリオ:異なるパラメーター (トラッキング ID やタイムスタンプなど) を持つ異なる URL で、同じキャッシュされたリソースにアクセスさせたい場合。

パラメーターの無視

大容量ファイルに対する Range オリジンフェッチの設定

要因:ユーザーが大容量ファイル (インストーラーや動画など) の一部のみをダウンロードする場合、Range オリジンフェッチがないと、POP はオリジンからファイル全体をフェッチします。POP はユーザーに提供するよりも多くのデータをオリジンからダウンロードするため、バイトヒット率が低下します。

シナリオ:ユーザーがアプリケーションのインストールパッケージをダウンロードしたり、動画コンテンツをストリーミングしたりする場合。

Range オリジンフェッチの設定

オリジンの no-cache ヘッダーの処理

要因:オリジンサーバーが no-cache レスポンスヘッダー (Cache-Control: max-age=0、Cache-Control: no-cache、Cache-Control: private など) を返すため、CDN がリソースをキャッシュできません。すべてのリクエストがオリジンに転送されます。

シナリオ:オリジンサーバーが静的ファイル (画像、JS、CSS) に対して Cache-Control: max-age=0 または Cache-Control: no-cache を送信するため、POP はこれらのリソースをキャッシュできません。

方法 1 (推奨):オリジンサーバーの設定を変更して、静的リソースのレスポンスから no-cache ヘッダーを削除し、適切なキャッシュ期間 (例: Cache-Control: max-age=2592000) を設定します。これにより、オリジンレベルで根本原因に対処し、CDN が正しいキャッシュディレクティブを確実に受信できるようになります。

方法 2:CDN コンソールで、[ドメイン名] > ターゲットドメイン名をクリック > [キャッシュ] タブ > [キャッシュ有効期間] に移動します。キャッシュルールを追加し、レスポンスヘッダーを無視 を有効にします。有効にすると、CDN はオリジンサーバーの no-cache ヘッダーを無視し、CDN コンソールで設定されたキャッシュ有効期間ルールに従ってリソースをキャッシュします。方法 2 は、オリジンサーバーの設定を変更できない場合にのみ使用してください。

警告:オリジンの no-cache ヘッダーを無視すると、オリジンサーバーが意図的にキャッシュ不可としてマークしたコンテンツを CDN がキャッシュしてしまい、古いファイルが提供される可能性があります。この機能は、オリジンサーバーの no-cache ヘッダーが誤って設定されていると確信できる場合にのみ有効にしてください。



その他の最適化戦略

上記の戦略に加えて、CDN は特定のシナリオ向けに追加の最適化機能を提供します。

中央 302 リダイレクト:中央のディスパッチサーバーからの 302 リダイレクトを介して、ユーザーリクエストを最適なオリジンノードにスケジューリングします。
エッジ 302 リダイレクト:エッジ POP からの 302 リダイレクトを介して、ユーザーリクエストを最も近く、最適なオリジンにスケジューリングします。
共有キャッシュ:同じ Alibaba Cloud アカウント配下の複数の高速化ドメイン名が、POP 上のキャッシュリソースを共有できるようにします。複数のドメイン名 (A.example.com や B.example.com など) が同じ JS または CSS ファイルを必要とし、オリジンのコンテンツが同一である場合、共有キャッシュを使用すると、これらのドメイン名が単一のキャッシュコピーを共有でき、キャッシュヒット率が向上します。新しい Web サイトを追加する際には、そのリソースパスを既存の高速化ドメイン名のリソース構造に合わせるだけで済みます。



中央 302 リダイレクト、エッジ 302 リダイレクト、およびオリジンフェッチ集約は、Alibaba Cloud のアフターセールスエンジニアによって設定されます。これらの機能を有効にするには、サポートにお問い合わせください。

共有キャッシュ:CDN コンソールで、[ドメイン名] > ターゲットドメイン名をクリック > [キャッシュ] > [共有キャッシュ] に移動します。[変更] をクリックし、アカウント配下のオンラインの高速化ドメイン名のリストからターゲットドメイン名を選択 (検索も可能です) し、確定します。設定後、現在のドメイン名は選択したドメイン名とキャッシュを共有し、そのオリジンフェッチパスにマージされます。設定を削除するには、[設定を削除] をクリックして確定します。

注意:キャッシュを共有するドメイン名が同一のコンテンツを提供していることを確認してください。共有キャッシュは、パスが重複している場合、あるドメインのコンテンツを別のドメインのユーザーに公開する可能性があります。



説明

上記の表で説明されているキャッシュ設定の変更を元に戻すには、CDN コンソールの同じ設定ページに戻り、ルールを削除または無効にします。

ログでのキャッシュヒットステータスの表示

CDN リクエストログには、各リクエストのキャッシュヒットステータスが記録されます。

ログのキャッシュヒットステータスフィールドは、次のいずれかを示します。

  • HIT — リクエストは POP キャッシュから提供されました。

  • MISS — リクエストは POP キャッシュから提供されず、オリジンからフェッチされました。

説明

ヒットステータスは L1 POP のみを反映します。リクエストが L1 POP でキャッシュミスした場合でも、L2 POP のキャッシュにヒットした場合、ログには引き続き MISS と表示されます。

ログエントリの例:

[26/Jun/2019:10:38:19 +0800] 192.168.53.146 - 1542 "-" "GET http://example.aliyundoc.com/index.html" 200 191 2830 MISS "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://example.com/robot/)" "text/html"

この例では、MISS ステータスは、リソースが L1 POP にキャッシュされていなかったことを示します。ログに MISS エントリの割合が高い場合は、キャッシュヒット率の向上セクションの戦略を参照して、原因を特定し対処してください。

また、DescribeCdnDomainLogs API 操作を呼び出して、アクセラレーションドメインのログダウンロード URL を取得することもできます。

最適化の検証

最適化戦略を適用した後、キャッシュヒット率が向上したことを確認します。

  1. キャッシュが伝播するまで待ちます。キャッシュ設定の変更は通常 5 分以内に有効になります。キャッシュの TTL を延長した場合は、変更をすぐに適用するために古いキャッシュコンテンツをパージする必要がある場合があります。

  2. キャッシュヒット率を確認します。CDN コンソールの [リアルタイムモニタリング] 機能を使用するか、DescribeDomainRealTimeByteHitRateData を呼び出して現在のバイトヒット率を確認します。結果を最適化前のベースラインと比較します。

  3. ログを確認します。最近のログエントリで HIT ステータスのエントリの割合が増加していることを確認します。適切に最適化された CDN は、通常、静的コンテンツが多いワークロードで 80% 以上のバイトヒット率を達成します。