キャッシュ設定のベストプラクティス

需要の増加や計画的なサーバーメンテナンス時でもオリジンサーバーのパフォーマンスを維持するための、サービスのキャッシュ設定のベストプラクティスをご紹介します。

アプリケーションプラットフォームと Fastly の統合

ご利用のアプリケーションプラットフォームの設定をカスタマイズすることで、Fastly のキャッシュを最適化できます。手順については、サードパーティーサービスの統合および Web サーバーソフトウェアの設定を参照してください。また、Fastly とコンテンツ管理システムを直接統合するための各種プラグインもご用意しています。

キャッシュヒット率の確認

キャッシュサーバーによって配信されたリクエスト数をキャッシュ可能なリクエスト数 (ヒット+ミス) で割り算した値を「キャッシュヒット率」と呼びます。キャッシュヒット率が高いということは、リクエストトラフィックによる無駄なオリジンサーバーへのヒットを防ぎ、代わりに、リクエストはキャッシュから配信できていることになります。そのため、一般的には90%以上の高いキャッシュヒット率が好ましいです。ヒット率を確認するには、サービスの Stats ページをご覧ください。

フォールバック TTL の設定

キャッシュメモリにキャッシュを保持することができる有効期限のことを「time to live」 または TTL といいます。TTL はオリジンサーバーから返されるキャッシュ関連のヘッダー情報に基づいて設定されます。フォールバック TTL (まれに「デフォルト TTL」とも) を別途設定可能です。

デフォルトのフォールバック TTL は以下の方法でいつでも更新可能です。

  1. Fastly コントロールパネルにログインします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Settings をクリックします。Settings ページが表示されます。
  5. Fallback TTL にある TTL 設定の横にある鉛筆マークをクリックします。

    Fallback TTL quick config

  6. Fallback TTL (sec) の枠に新しい TTL を秒で入力してください。
  7. Save をクリックして設定を保存します。
  8. Activate ボタンをクリックして設定変更をデプロイします。

Fastly で一時的に失効済みコンテンツを配信する設定

もしオリジンサーバーが長時間利用不可能な状態になる場合 (例:メンテナンスの実施など)、一時的に失効済みコンテンツの配信をすることが有効です。失効済みコンテンツの配信は、高頻繁でコンテンツの更新・公開を実施するような場合にも有用です。

stale-while-revalidate または stale-if-error ステートメントを Cache-Control または Surrogate-Control ヘッダーに追加することで、Fastly に失効済みコンテンツを配信させることができます。詳細については、失効済みコンテンツの配信ガイドをご覧ください。

ファーストバイトタイムアウト時間を減らす

一時的に失効済みコンテンツの配信の設定をした後に、ファーストバイトタイムアウト時間を短く設定します。そうすることで、オリジンサーバーから新しいコンテンツを取得している間に、ユーザーに対してより迅速に失効済みコンテンツの配信をするようになります。ファーストバイトタイムアウト時間の削減と同時に失効済みコンテンツの配信を設定することで、503ファースト・バイト・タイムアウト・エラーを回避することができます。オリジンサーバーに対するファーストバイトタイムアウト時間を減らす方法は以下のとおりです。

  1. Fastly コントロールパネルにログインします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Origins をクリックします。Origins ページが表示されます。
  5. Hosts から対象オリジンサーバーを探したら、ホストを編集するために鉛筆マークをクリックします。Edit this host ページが表示されます。
  6. ページの下部にある Advanced options リンクをクリックします。Advanced options のオプションが表示されます。
  7. First byte timeout の枠に新しいファーストバイトタイムアウトをミリ秒で入力します。15000ミリ秒くらいが、初期値として十分な値です。
  8. Update をクリックして変更を保存します。
  9. Activate ボタンをクリックして設定変更をデプロイします。

Cache-Control ヘッダーの期間を長くする

Cache-Control ヘッダーに設定する期間を長くすることにより、需要が高い時などにより長時間 Fastly にコンテンツをキャッシュさせることができます。Cache-Control または Surrogate-Control ヘッダーの max-ageの変更をご検討ください。詳細については、キャッシュのフレッシュネスに関するドキュメントを参照してください。

特定のワークフローのキャッシュアクションを設定する

キャッシュ設定を作成する際、Action の設定によってリクエストの処理方法を決めることができます。Action 設定と、それぞれの一般的なワークフローは以下のとおりです。

  • Do nothing now - このオプションを選択するとリクエスト設定のオプションが適用されますが、ルックアップやパスアクションは強制されません。

  • Pass (do not cache) - このオプションを選択すると、リクエストとそれに続くレスポンスがキャッシュをバイパスしてオリジンに直接送られます。このオプションは、条件付きでページのキャッシュを禁止する必要がある場合、または条件を使用する場合に使用します。

  • Restart processing (not common) - このオプションを選択すると、リクエストの処理が再開します。このオプションは、1つのリクエストのために複数のバックエンドを確認する必要がある場合に使用します。

  • Deliver (not common) - このオプションを選択すると、オブジェクトをクライアントに配信します。このオプションは、オーバーライド条件を作成する必要がある場合に使用します。

カスタムエラーの処理

サイトのダウンタイムが避けられない場合、標準のエラーメッセージはユーザーにとって不十分である場合があります。ユーザーにとって適切で具体的な情報が記されたカスタムエラーメッセージの作成をご検討ください。詳細については、ガイドのカスタムレスポンス付きエラーページの作成を参照してください。

イベントに向けた Fastly のカスタマーサポートへの連絡

大規模なイベントを実施される場合には、事前にご連絡を頂くことでより的確なサポートをご提供できます。イベントの詳細について、あらかじめ カスタマーサポート までお知らせください。その際、以下の詳細情報をお伝えください。

  • イベント予定日時
  • 開催するイベントの種類
  • 予定期間 (計画されている場合)
  • 影響を受ける可能性がある Fastly のサービス

イベントが Fastly の背後にあるサービスのセキュリティの検証を実施する場合は、ペネトレーションテストのガイドを先にご確認ください。

Back to Top