セグメントキャッシュ

      Last updated September 27, 2019

    Fastly の セグメントキャッシュ を利用するとファイルサイズに関わらずキャッシュさせることが出来ます。セグメントキャッシュはファイルを 1MB の小さなセグメントに分割してからキャッシュを行い、キャッシュしたオブジェクトをクライアントからの byte-range リクエストの内容に応じて再結合、分割します。

    セグメントキャッシュを有効化することで range-get リクエストに対するパフォーマンスを改善し、サイズに関わらず Fastly 上に効果的にキャッシュを行うことが可能となります。 セグメントキャッシュが有効化されていない場合にはストリーミングミスを利用時で 5GB、ストリーミングミス非利用時で 2GB 以上のサイズのファイルに対するリクエストはエラーとなります。

    セグメントキャッシュの仕組み

    エンドユーザーがセグメントキャッシュが有効化されているファイルに range リクエストを送信し、キャッシュミスが発生した(リクエストされたレンジの一部分でもキャッシュに存在しない)場合、Fastly はオリジンに対して適切な range リクエストを送ります。 この際にセグメントキャッシュが有効な場合はファイル全体を取得するのではなく、エンドユーザーからリクエストされた range を満たすために必要な部分のみを取得してキャシュします。 キャッシュが部分的にヒットした場合、キャッシュヒットした部分はキャッシュから取得され足りない部分がオリジンから取得されます。(ファイル全体の取得リクエストは 0 からファイルの最後までの byte range リクエストとして処理されます。)

    エンドユーザーに返答するのに必要なオブジェクトがすべて揃うと、セグメントキャッシュ機能がオブジェクトの必要な部分を結合してエンドユーザーへのレスポンスを作成します。 オリジンへのリクエストは "inner request(インナーリクエスト)"と呼ばれ、segmented_caching.is_inner_req 変数に true が設定されます。一方エンドユーザーからのリクエストは "outer request(アウターリクエスト)"と呼ばれ segmented_caching.is_outer_req 変数に true が設定されます。セグメントキャッシュが有効化されていないオブジェクトに対するリクエストには両方の変数に対して FALSE が設定されます。

    制約事項と注意点

    本機能を利用するにあたっては以下のような制約事項と注意点を考慮する必要があります。

    セグメントキャッシュの有効化

    セグメントキャッシュは以下の手順で有効化することが出来ます。

    1. セグメントキャッシュを有効化する対象を決定します。

    2. サービスメニューから設定対象のサービスを選択します。
    3. Edit configuration ボタンをクリックし、Clone active を選択すると設定画面が開きます。
    4. VCL Snippets をクリックして下さい。VCL Snippets ページが表示されます。
    5. Create your first VCL snippet ボタンをクリックして下さい。Create a VCL snippet ページが表示されます。
    6. Name フィールドに適当な名前を入力して下さい。(例, Enable segmented caching).
    7. Type (placement of the snippets) から within subroutine を選択して下さい。
    8. Select Subroutine リストから recv (vcl_recv) を選択して下さい。
    9. VCL フィールドに、req.enable_segmented_caching VCL 変数 true を設定する VCL スニペットを追加して下さい。例えば MPEG-2 ビデオデータを対象とした場合、追加するコードは以下のようになります:

      1
      2
      3
      4
      
      # my custom enabled Segmented Caching code
      if (req.url.ext == "ts") {
         set req.enable_segmented_caching = true;
      }
      

      このコードでは拡張子が ts のファイルを対象としてセグメントキャッシュを有効化します。

    10. Create をクリックして下さい。
    11. Activate ボタンをクリックしてサービスをデプロイします。
    Back to Top