バイトレンジセグメントを使用すると、Edge Security Acceleration (ESA) の POP (Point of Presence) は、オリジンへのHTTPリクエストに Range情報を含めることができます。オリジンサーバーがこのようなリクエストを受信すると、指定されたバイトレンジのコンテンツのみを ESA POP に返します。バイトレンジセグメントは、ファイル配信効率を向上させ、キャッシュヒット率を高め、オリジンへのトラフィックとオリジンサーバーの負荷を軽減し、リソース応答を高速化します。
仕組み
Range は、取得するコンテンツのバイトレンジを指定する HTTPリクエストヘッダーです。たとえば、Range: bytes=0-100 は、リクエストされたファイルの最初の 101 バイトをオリジンサーバーに返すように指示します。
バイトレンジセグメントを有効にすると、ESA が、ESA POP にキャッシュされていない、または期限切れになっているリソースに対するクライアントリクエストを受信した場合、ESA POP は Rangeリクエストを使用して、オリジンサーバーからリソースの必要なセグメントのみをフェッチします。その後、そのセグメントを ESA POP にキャッシュします。
バイトレンジセグメントの仕組みを次の図に示します。
前提条件
バイトレンジセグメントを有効にする前に、オリジンサーバーが Rangeリクエストをサポートしていることを確認してください。オリジンサーバーは、Rangeヘッダーを含む HTTPリクエストを受け入れ、HTTP 206 ステータスコードで応答する必要があります。オリジンサーバーが Rangeリクエストをサポートしていない場合、この機能を有効にすると、リソースがキャッシュされなくなります。
注意事項
クライアントが動的リソースにアクセスする場合、オリジンフェッチ中にそのリソースに対して Rangeリクエストは処理されません。リソースは、そのファイル拡張子が ESA POP のデフォルトのキャッシュファイルリストにない場合、ESA POP でリソースに対して明示的なキャッシュポリシーが構成されていない場合、および ESA POP の応答におけるキャッシュステータスが DYNAMIC である場合に、動的と見なされます。
セグメントサイズは、キャッシュされていないリソースの全体的なキャッシュヒット率とダウンロード速度に影響します。セグメントサイズは、ユースケースに基づいて設定する必要があります。次の 2 つのシナリオを考慮してください。
ESA POP とオリジンサーバー間のオリジンへのネットワークパフォーマンスが良好な場合 (ネットワーク遅延が低い場合など) は、オリジンへのダウンロードレートを高く保ち、キャッシュヒット率を向上させるために、より小さい Rangeリクエストセグメントサイズを使用することを推奨します。
ESA POP とオリジンサーバー間のオリジンフェッチネットワークパフォーマンスが中程度の場合 (ネットワーク遅延が高いクロスボーダーまたは大陸間オリジンフェッチシナリオなど) は、より大きい Rangeリクエストサイズを使用する必要があります。このアプローチでは最適なキャッシュヒット率を達成できない可能性がありますが、オリジンへのダウンロードレートを高く保つことができます。
Range リクエスト機能を有効にすると、オリジンフェッチのクエリ/秒 (QPS) が増加します。オリジンサーバーでレート制限が有効になっている場合、これによりトラフィック制限が発生する可能性があります。この問題を防止するには、オリジン保護 機能を ESA に対して有効化し、ESA のオリジンフェッチ POP の IP アドレスをオリジンサーバーの IP アドレスホワイトリストに追加できます。
操作手順
ESA コンソールで、[サイト管理] に移動します。サイト 列で、目的のサイトの名前をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
[ルールを追加]をクリックし、[ルール名]を指定します。
リクエストが以下のルールと一致する場合... セクションで、クライアントリクエストの一致条件を設定します。詳細については、「ルール式の構造」をご参照ください。
Range リクエスト セクションで、設定 をクリックします。次のいずれかのオプションを選択します。
— クライアントに一致 (デフォルト)— 無効
— 有効 (大容量ファイルの場合に推奨)クライアントに一致 (デフォルト) または 有効 (大容量ファイルの場合に推奨) を選択すると、セグメントサイズを 512 KB、1 MB、2 MB、または 4 MB に設定できます。デフォルトのセグメントサイズは 512 KB です。
パラメーター名
オプション
説明
例
Back-to-origin モード
クライアントに一致 (デフォルト)
デフォルトのオプションは クライアントに一致 (デフォルト) です。クライアントが ESA POP に Range リクエストを送信すると、POP はそのリクエストに基づいてオリジンサーバーからデータをフェッチします。最初のオリジンフェッチリクエストでは、ESA POP がクライアントリクエストの Range サイズを切り上げ(シャードサイズの整数倍に丸め上げ)、その後、オリジンサーバーにリクエストを送信します。 続くオリジンフェッチリクエストは、「Shard Size」パラメーターで指定されたシャードサイズに基づいてオリジンサーバーに送信されます。
たとえば、シャードサイズが 512 KB の場合、クライアントが
Range:bytes=0-614399(つまり 600 KB)を含むリクエストを ESA POP に送信し、かつ ESA POP 上にキャッシュファイルが存在しない場合、最初のオリジンリクエストでは 1024 KB のシャードでデータを取得します(600 KB は 1024 KB に切り上げられます)。このファイルの他の未キャッシュ済みシャードに対する後続のクライアントリクエストに対しては、ESA POP がオリジンサーバーから 512 KB のシャードでデータを取得します。無効
有効にすると、無効、クライアントが ESA POP に Range リクエストを送信するかどうかに関係なく、ESA POP はオリジンフェッチ中にファイル全体をリクエストするため、large ファイルのシナリオでのファイル配信効率が低下します。
たとえば、クライアントが
Range:bytes=0-100を含むリクエストを ESA POP に送信した場合、ESA POP はオリジンサーバーへのリクエストに Range パラメーターを含めません。オリジンサーバーは ESA POP に対してファイル全体を返します(ファイル全体が 10 MB である場合、オリジンサーバーは 10 MB のファイルを ESA POP に送信します)。オリジンサーバーからファイルを受信した後、ESA POP はそのファイルをキャッシュし、クライアントに対してrange:0-100リクエストで指定されたコンテンツを返します。有効 (大容量ファイルの場合に推奨)
有効 (大容量ファイルの場合に推奨)この設定を有効化すると、ESA POP は、クライアントが Range リクエストを送信するかどうかにかかわらず、オリジンサーバーからフェッチするために Range リクエストを使用します。ESA POP は、常にオリジンサーバーからフェッチするために Range リクエストを使用します。ESA POP は、ESA シャードサイズパラメーターで設定されたシャードサイズを使用して、オリジンサーバーへのすべてのフェッチ用 Range リクエストを送信します。
なし
シャードサイズ
512 KB
1 MB
2 MB
4 MB
セグメントサイズは、バックトゥオリジンモードが クライアントに一致 (デフォルト) または 有効 (大容量ファイルの場合に推奨) の場合にのみ設定できます。デフォルト値は 512 KB です。
1 MB
OK をクリックします 。
参照
ルールの特徴は、実行優先度、ルールの動作、構成範囲の点で異なります。詳細については、「ESA ルールが有効になる仕組み」をご参照ください。