このページでは、Cloud Storage の組み込みキャッシュについて説明します。Cloud Storage はサードパーティの CDN とも互換性があります。
概要
Cloud Storage オブジェクトがキャッシュに保存されると、オブジェクト データのコピーは Google またはインターネット キャッシュに保存されるため、将来のリクエストではオブジェクトが迅速に処理されます。キャッシュに保存するとパフォーマンスが向上する可能性がありますが、オブジェクトを更新しても、キャッシュに保存されている失効済みコンテンツが引き続き配信されるリスクもあります。
Cloud Storage の組み込みキャッシュ
オブジェクトの Cache-Control
メタデータがキャッシュ保存を許可するように設定され、次の条件が満たされている場合は、オブジェクトのデータが Cloud Storage ネットワークのキャッシュに保存されるため、何も行わなくても、Cloud Storage はコンテンツ配信ネットワーク(CDN)のように動作します。
- オブジェクトが一般公開されている。
- オブジェクトが、リクエスト元による支払いが有効になっているバケットに保存されておらず、Virtual Private Cloud サービス境界内に存在しない。
- オブジェクトが顧客管理の暗号鍵や顧客指定の暗号鍵で暗号化されていない。
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
を使用して、後続のリクエストでオブジェクトがキャッシュに保存されないようにします。
次のステップ
Cache-Control
メタデータについて詳細を確認する。- RFC の
Cache-Control
ディレクティブについて詳細を確認する。