キャッシュ

このページでは、Cloud Storage の組み込みキャッシュについて説明します。Cloud Storage はサードパーティの CDN とも互換性があります。

概要

Cloud Storage オブジェクトがキャッシュに保存されると、オブジェクト データのコピーは Google またはインターネット キャッシュに保存されるため、将来のリクエストではオブジェクトが迅速に処理されます。キャッシュに保存するとパフォーマンスが向上する可能性がありますが、オブジェクトを更新しても、キャッシュに保存されている失効済みコンテンツが引き続き配信されるリスクもあります。

Cloud Storage の組み込みキャッシュ

オブジェクトの Cache-Control メタデータがキャッシュ保存を許可するように設定され、次の条件が満たされている場合は、オブジェクトのデータが Cloud Storage ネットワークのキャッシュに保存されるため、何も行わなくても、Cloud Storage はコンテンツ配信ネットワーク(CDN)のように動作します。

Cloud Storage は、次のような Cache-Control標準値を遵守します。

  • public: オブジェクトはキャッシュに保存できます。

  • private: オブジェクトは、Cloud Storage によってキャッシュ保存されることはありませんが、リクエスト元のローカル キャッシュに保存されます。

  • no-cache: オブジェクトは、キャッシュに保存されますが、Cloud Storage によって最初に検証されない限り、将来のリクエストには使用されません。

  • no-store: オブジェクトはキャッシュに保存されません。

  • max-age=TIME_IN_SECONDS: キャッシュに保存されたオブジェクトが古くなったとみなされるまでの時間。max-age には任意の長さの時間を設定できます。特別な状況を除いて、古くなったオブジェクトは、キャッシュから提供されません。

オブジェクトの Cache-Control メタデータを設定するには、オブジェクトのメタデータの編集をご覧ください。

IAM 拒否ポリシーを使用した組み込みキャッシュの動作

プリンシパル ID allUsers からオブジェクトへの読み取りアクセスを制限する組織レベルの IAM 拒否ポリシーがある場合、allUsers にオブジェクトの読み取りアクセス権を付与するバケットレベルの IAM ポリシーがあったとしても、そのオブジェクトの組み込みキャッシュは無効になります。ただし、IAM 拒否ポリシーが個々のユーザーのみを制限する場合、オブジェクトに対する組み込みキャッシュは有効なままになります。

パフォーマンスに関する注意事項

公開キャッシュ可能なオブジェクトに対しては、パフォーマンスがかなり向上することがあります。多数のクライアントを制御するオブジェクトを使用している場合、キャッシュを無効にして最新のデータを提供するには、次のようにします。

  • オブジェクトの Cache-Control メタデータを public に設定し、max-age を 15~60 秒に設定することを検討してください。ほとんどのアプリケーションでは、パフォーマンスの向上と引き換えに、オブジェクトが数秒間古い状態になることは許容できます。

  • オブジェクトの Cache-Control: no-store を使用して、後続のリクエストでオブジェクトがキャッシュに保存されないようにします。

次のステップ