Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Cache Reserve

最終更新 Markdown で表示Agent セットアップ

Cache Reserve は、R2 上に実装された 大規模で永続的なデータストアです。ダッシュボードでボタンを 1 つ押すと、サイトのキャッシュ可能なコンテンツが Cache Reserve に書き込まれます。

Tiered Cache が訪問者とオリジンの間にキャッシュの階層を作るのと同様に、Cache Reserve は最上位のキャッシュとして機能し、必要な期間だけアセットの保存領域を確保します。これにより、コンテンツがより長くキャッシュから配信され、不要なエグレス料金からオリジンを守れます。

オリジンから配信されたコンテンツが Cache Reserve とエッジキャッシュデータセンター(T1=アッパーティア、T2=ローワーティア)にキャッシュされ、クライアントへ戻る様子

Cache Reserve 内のコンテンツは、Edge Cache TTL の設定、または Edge Cache TTL が未設定の場合はオリジンの Cache-Control ヘッダーに基づいてフレッシュとみなされます。フレッシュ期間が切れたあと、次にアセットがリクエストされたときに Cloudflare がオリジンへ再検証します。通常の Cloudflare CDN と同じ動作です。

保持期間は、アセットが Cache Reserve に残る期間です。期限を過ぎると削除されます。Cache Reserve の保持期間は最初 30 日です。保持期間内にアセットがリクエストされなければ、Cache Reserve から削除されます。リクエストすると保持期間はリセットされます。

Cache Reserve を使うアセットは、一定の条件 を満たす必要があります。

Cache Reserve は従量課金のプロダクトです。料金 は以下のとおりです。Cache Reserve 自体は有料プランが必要ですが、Cache Reserve なしの Cloudflare CDN は引き続き無料で使えます。

Cache Reserve を有効にする

Cache Reserve の有料プランが必要です。

  1. Cloudflare ダッシュボードで Cache Reserve ページを開きます。

    Cache Reserve を開く ↗
  2. Enable storage sync を選択します。

詳しくは Change Cache Reserve setting API を参照してください。

Enterprise のお客様で Cache Reserve を使いたい場合は、アカウントチームに問い合わせて設定のサポートを受けてください。

Cache Reserve の対象アセット

すべてのアセットが Cache Reserve の対象になるわけではありません。Cache Reserve に入れるには、アセットが次の条件を満たす必要があります。

  • Cloudflare の標準的な キャッシュ可否の条件 に従ってキャッシュ可能であること
  • 鮮度の time-to-live(TTL)が 10 時間以上であること(Cache-Control / CDN-Cache-Control オリジンレスポンスヘッダー、Edge Cache TTLCache TTL By Status、または Cache Rules など、どの方法で設定しても構いません)
  • Content-Length レスポンスヘッダーがあること
  • Image transformations を使う場合、元のファイルは Cache Reserve の対象になりますが、リサイズしたファイルのバリアントは対象外です。変換はレスポンスフローで Cache Reserve のあとで行われるためです。

パージの動作

Cache Reserve からすべてのデータを削除するには、Cache Reserve のクリアボタン を参照してください。

Purge Everything は Cache Reserve に対してソフトパージを行い、Cache Response Rules が設定したメタデータ(キャッシュタグなど)は更新しません。そのメタデータを更新するには、個別のアセットをパージするか、完全に期限切れになるまで待ちます。

制限

  • Cache Reserve のファイル制限は R2 の制限 と同じです。CDN キャッシュの制限 も引き続き適用されます。標準制限を超えるアセットは通常の CDN キャッシュに保存されないため、Cache Reserve のオペレーション料金がより頻繁に発生します。
  • 現時点では、Cache Reserve からのオリジン Range リクエストはサポートされていません。
  • Vary for images は現在、Cache Reserve と互換性がありません。
  • ゾーンのドメインに紐づく R2 パブリックバケット へのリクエストでは、Cache Reserve は使われません。接続済みゾーンで Cache Reserve を有効にしても、R2 バケット向けではないリクエストにのみ Cache Reserve が使われます。
  • Cache Reserve は、非圧縮コンテンツをオリジンから直接リクエストします。通常の Cloudflare CDN と異なり、Cache Reserve はオリジンへのリクエストに Accept-Encoding: gzip ヘッダーを含めません。
  • Cloudflare の O2O 構成では、Cache Reserve はバイパスされます。

使用状況

通常の CDN と同様に、Cache Reserve も cf-cache-status ヘッダーで MISSHITREVALIDATED などの キャッシュ応答ステータス を示します。Cache Reserve のキャッシュミスとヒットは、ダッシュボードのキャッシュヒット率に含まれます。

Cache Reserve に書き込まれた、または Cache Reserve から配信された個別のサンプリングリクエストは、Logpush の CacheReserveUsed フィールドで確認できます。

Cache Reserve の月次オペレーションとストレージ使用量は、ダッシュボードで確認できます。

料金

Cache Reserve は、保存データの総量と、そのデータに対する 2 種類のオペレーションで課金します。

多くの場合、Cache Reserve のミスでは Class A と Class B が 1 回ずつ発生し、ヒットでは Class B が 1 回発生します。1 GB を超えるアセットは、サイズに比例してオペレーション数が増えます。

Cache Reserve の料金

料金
ストレージ$0.015 / GB-month
Class A オペレーション(書き込み)$4.50 / million requests
Class B オペレーション(読み取り)$0.36 / million requests

ストレージ使用量

ストレージは GB-month(ギガバイト月)を課金単位として計算します。GB-month は、その月のあいだ保存されていたバイト数の合計から求めます。

例:

  • 1 GB を 30 日保存すると、1 GB-month として課金されます。
  • 2 GB を 15 日保存すると、1 GB-month として課金されます。

オペレーション

オペレーションは、ユーザーに代わって Cache Reserve が実行します。オリジンから Cache Reserve へデータを書き込み、そのデータを Cloudflare ネットワークのほかの部分へ下流へ渡します。これらのオペレーションは Cloudflare が内部で管理します。

Class A オペレーション(書き込み)

Class A オペレーションは、Cloudflare CDN のキャッシュミスに基づいて実行されます。リクエストをキャッシュから返せない場合、オリジンから取得し、訪問者へ返す途中で Cache Reserve とエッジキャッシュの両方に書き込みます。

Class B オペレーション(読み取り)

Class B オペレーションは、エッジキャッシュのミスに応答するため、Cache Reserve からデータを取得するときに実行されます。

パージ

アセットのパージは無料のオペレーションです。

URL 指定のパージリクエストを送ると、Cache Reserve はエッジキャッシュと同時に即座にパージされます。詳細は キャッシュをパージする を参照してください。

タグ、ホスト、プレフィックスでのパージ、またはすべてをパージするなど、ほかのパージ方法では、その後の Cache Reserve アセットへのリクエストで 再検証 が試行されます。この方法でパージしたアセットは、保持 TTL が切れるまでストレージ料金が発生します。

Cache Reserve の請求例

例 1

月初に 1,000 個のアセット(各 1 GB)を Cache Reserve に書き込み、各アセットを 1,000 回読み取った場合の月額概算は次のとおりです。

使用量 請求対象数量 料金
Class B オペレーション (1,000 アセット)*(アセットあたり 1,000 回の読み取り) 1,000,000 $0.36
Class A オペレーション (1,000 アセット)*(アセットあたり 1 回の書き込み) 1,000 $4.50
ストレージ (1,000 アセット)*(アセットあたり 1 GB) 1,000 GB-months $15.00
合計 $19.86

例 2

1,000,000 個のアセット(各 1 MB)が Cache Reserve にあり、次の条件の場合:

  • 各アセットは 1 日 1 回期限切れになり、Cache Reserve へ再書き込みされる
  • 各アセットは 1 日 2 回読み取られる

月額概算は次のとおりです。

使用量 請求対象数量 料金
Class B オペレーション (1,000,000 アセット)*(1 日あたり 2 回の読み取り)*(30 日) 60,000,000 $21.60
Class A オペレーション (1,000,000 アセット)*(1 日あたり 1 回の書き込み)*(30 日) 30,000,000 $135.00
ストレージ (1,000,000 アセット)*(アセットあたり 1 MB) 1,000 GB-months $15.00
合計 $171.60

ヒントとベストプラクティス

Cache Reserve は、オリジンシールドを最大化するため Tiered Cache を有効にした状態での利用を想定しています。Tiered Cache なしで Cache Reserve を使うと、ストレージオペレーションのコストが高くなることがあります。Tiered Cache なしで Cache Reserve を有効にしようとすると、Cloudflare ダッシュボードが警告します。

Cache Reserve Analytics

Cache Reserve Analytics は、Cache Reserve の使用状況を把握するための機能です。何が保存されているか、どのくらいアクセスされているか、どのくらいの期間残っているか、オリジンからのエグレスをどれだけ削減しているかを確認できます。

OverviewCache Reserve では、次の指標を利用できます。

  • Egress savings (bandwidth) — Cache Reserve から配信され、オリジンサーバーから送る必要がなかったレスポンスバイト数の推定値です。キャッシュヒットとして扱われます。
  • Requests served by Cache Reserve — Cache Reserve が配信したリクエスト数(合計)です。
  • Data storage summary — 代表的なリクエストサンプルに基づきます。Cloudflare のサンプリング方法は Sampling を参照してください。
    • Current data stored — 時点ごとの保存データ量です。
    • Aggregate storage usage — 選択したタイムスタンプでのストレージ使用量の合計です。
  • Operations — 時点ごとの Class A(書き込み)と Class B(読み取り)のオペレーションです。

Cache Reserve のクリアボタン

ダッシュボードまたは API から、Cache Reserve に保存されているデータをすべて削除できます。Cache Reserve をクリアするには、次の条件が必要です。

  • そのゾーンで Cache Reserve がすでに有効になっていること。
  • Cache Reserve がオフになっていること。

削除の完了には最大 24 時間かかることがあります。

  1. Cloudflare ダッシュボードで Cache Reserve ページを開きます。

    Cache Reserve を開く ↗
  2. Delete Cache Reserve DataDelete Storage を選択します。

API で Cache Reserve のデータを削除するには、次のリクエスト例を使います。詳しくは API ドキュメント を参照してください。

リクエスト 1: Cache Reserve の状態を取得する

Required API token permissions

At least one of the following token permissions is required:
  • Zone Settings Write
  • Zone Settings Read
  • Zone Read
  • Zone Write
Get Cache Reserve settingbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/cache_reserve" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
レスポンスjson
{
	"result": {
		"editable": true,
		"id": "cache_reserve",
		"value": "off"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Cache Reserve がオフであれば、Cache Reserve Clear を実行できます。

リクエスト 2: Cache Reserve Clear を開始する

Required API token permissions

At least one of the following token permissions is required:
  • Zone Settings Write
  • Zone Write
Start Cache Reserve Clearbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/cache_reserve_clear" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
レスポンスjson
{
	"result": {
		"id": "cache_reserve_clear",
		"start_ts": "2024-06-02T10:00:00.12345Z",
		"state": "In-progress"
	},
	"success": true,
	"errors": [],
	"messages": []
}

役に立ちましたか?