Cloudflare、Origin Range Requestsを提供開始。キャッシュ効率を改善
この記事の要点
Cloudflareは、HTTPのRangeリクエストを最適化する新機能「Origin Range Requests」の提供を開始した。全プランで利用可能なセルフサービス機能として実装される。キャッシュストレージの固定サイズチャンクを直接利用することで、オリジンへのリクエスト数と不要なデータ転送を削減する。R2での導入時にはTTFBが約半分に短縮され、階層型キャッシュのトラフィックも約6%削減された。動画配信やAIモデルの転送など、大容量ファイルの処理に適している。
Cloudflareは、HTTPのRangeリクエストを処理する新機能「Origin Range Requests」の提供を開始した。全プランで利用可能なセルフサービス機能として実装される。
従来のキャッシュシステムでは、ゾーンごとに固定サイズの範囲設定が必要だった。範囲が小さいとオリジンへのリクエスト数が増え、大きいと不要なデータ転送が発生する課題があった。また、キャッシュキーにサイズが含まれるため、設定変更時にキャッシュが無効化される問題も生じていた。
新機能は、同社のプロキシサーバー「Pingora」の仕組みを活用する。キャッシュストレージで利用する固定サイズのチャンクを、そのままRangeリクエストの単位として扱う。リクエストを受けたエッジサーバーは、キャッシュ済みのバイトを直接提供し、不足分のみをオリジンから取得する。
エッジサーバーはアセットのヘッダーと範囲情報を確認し、ディスクやメモリから取得可能な部分を読み取る。不足分はオリジンから取得し、新しいバイトを書き込んでメタデータを更新する。これにより、キャッシュデータやオリジンからのレスポンス、進行中のダウンロードを調整し、クライアントには要求された範囲のみを返す。複数のリクエストが同じ範囲を要求した場合は、進行中のダウンロードを共有できる。
同社のオブジェクトストレージ「R2」でこの実装を導入した結果、p99のTime to First Byte(TTFB)が約半分に短縮された。また、R2および類似のワークロードにおいて、階層型キャッシュのトラフィックが約6%削減されている。
本機能はCache Rulesから有効化できる。動画配信や大容量ファイルのダウンロード、AIの学習や推論におけるモデルファイルの転送など、大容量オブジェクトの一部をリクエストする用途を想定している。なお、利用にはオリジンサーバー側もバイトレンジリクエストに対応している必要がある。
経営にとっての意味
本機能の導入は見送る。理由は、既存のキャッシュ設定で運用上の致命的な課題が生じていないためだ。
経営者は、本機能が「動画配信や大容量ファイル転送」に特化している点に留意すべきだ。AIのモデルファイル転送に有効とあるが、自社の基幹業務で扱うデータが、この機能で解決すべき「オリジンへのリクエスト過多」や「不要なデータ転送」に該当するかは不明だ。
開発者は、オリジンサーバー側がバイトレンジリクエストに対応しているかを確認する必要がある。対応済みであれば、Cache Rulesから有効化し、TTFBの短縮効果を検証する。まずは既存のキャッシュ設定と本機能の挙動を比較し、転送コスト削減の余地があるか精査してから判断する。
4人で読み解く
記事の内容だけをもとに、担当のちがう4人(経営・開発・聞き手・運用)が話します。 記事に書かれていないことは話しません。
出典
Cloudflare Blog「Origin Range Requests: Serving large files without range-request tuning」この記事は、出典元が公表した原文をもとに当社のAI編集部が日本語で再構成し、 公開前に人が確認したものです。原文の訳ではありません。 事実関係は出典(原文)で確認してください。
