Rapid Cache を使用してキャッシュ インスタンスを作成して管理し、レイテンシを短縮して、Cloud Storage に保存されているオブジェクトのデータアクセスを最適化できます。このキャッシュ保存ソリューションは、データ取得を高速化することで、アプリケーションのパフォーマンスを向上させます。
このページでは、Rapid Cache を使用してキャッシュ インスタンスを作成して管理する方法について説明します。Rapid Cache の非同期キャッシュ オペレーションから開始される長時間実行オペレーションの使用方法と管理方法については、長時間実行オペレーションを使用するをご覧ください。
Rapid Cache を使用する前に、制限事項をご確認ください。
始める前に
キャッシュの作成と管理を開始する前に、次のセクションを完了してください。
必要なロールを取得する
Rapid Cache キャッシュの作成と管理に必要な権限を取得するには、キャッシュを作成するバケットに対するストレージ管理者 (roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。
この事前定義ロールには、Rapid Cache キャッシュの作成と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Rapid Cache キャッシュを作成、管理するには、次の権限が必要です。
-
storage.anywhereCaches.create(キャッシュの作成に必要) -
storage.anywhereCaches.disable(キャッシュを無効にするために必要) -
storage.anywhereCaches.get(キャッシュの取得に必要) -
storage.anywhereCaches.list(キャッシュの一覧表示に必要) -
storage.anywhereCaches.resume(キャッシュの再開に必要) -
storage.anywhereCaches.update(キャッシュの更新に必要) -
storage.managedFolders.create(キャッシュの書き込み時取り込み動作を有効にする場合にのみ必要) -
storage.managedFolders.update(キャッシュの書き込み時取り込み動作の更新にのみ必要)
カスタムロールを使用して、これらの権限を取得することもできます。
バケットに対するロールの付与については、バケットでの IAM ポリシーの設定と管理をご覧ください。
Rapid Cache メソッドから開始される長時間実行オペレーションを管理するには、追加のロールと権限が必要になる場合があります。詳細については、長時間実行オペレーションに必要なロールをご覧ください。
書き込み時の取り込み設定について
キャッシュを作成または更新するときに、データがバケットに書き込まれた瞬間にデータを取り込むようにキャッシュを有効にできます。この機能は「書き込み時の取り込み」と呼ばれます。JSON API を使用して書き込み時の取り込みを有効にする場合は、まず書き込み時の取り込みに使用される構成設定の動作を理解することをおすすめします。
キャッシュを作成する
コンソール
既存のバケットのキャッシュを作成する
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
バケットのリストで、データをキャッシュに保存するバケットの名前をクリックします。
[バケットの詳細] ページで、[構成] タブをクリックします。
[Rapid Cache] セクションで、[キャッシュを構成] をクリックします。
バケットの [キャッシュを構成] ページが表示されます。
[キャッシュ リージョン] セクションで、キャッシュを作成するゾーンを含むリージョンをクリックします。
[キャッシュ ゾーン] セクションで、キャッシュを作成するゾーンを選択します。ゾーンに作成するキャッシュごとに、必要に応じて次の操作を行います。
省略可: 最後の読み取りからキャッシュからデータが削除されるタイミングを決定するカスタム有効期間(TTL)を設定できます。デフォルトでは、キャッシュの TTL は 1 日に設定されています。
カスタム TTL を設定するには:
[有効期間] 列で、期間の値(
48など)と時間の単位(hoursなど)を指定します。[設定を保存] をクリックします。
省略可: キャッシュを有効にして、初回読み取り時のデータ取り込みに加えて、書き込み時のデータ取り込みを行うことができます。デフォルトでは、キャッシュは最初の読み取り時にのみデータを取り込むように構成されています。
書き込み時にキャッシュがデータを取り込めるようにするには:
[取り込み条件] 列で、[キャッシュの取り込み条件を編集] をクリックします。
[取り込み条件を設定] ページが表示されます。
[書き込み時にデータを取り込む] チェックボックスをオンにします。
バケットに新しく書き込まれたすべてのオブジェクトに対して書き込み時の取り込みを有効にするには、[バケット全体] をクリックします。
名前の接頭辞が特定の新しいオブジェクトに対してのみ書き込み時の取り込みを有効にするには、[選択したフォルダ] をクリックして、オブジェクト名の接頭辞を入力します。オブジェクト名の接頭辞は「フォルダパス」とも呼ばれます。
[追加] 追加をクリックすると、複数のオブジェクト名の接頭辞を入力できます。
接頭辞を削除するには、[アイテムを削除] 削除 をクリックします。
[完了] をクリックします。
[設定を保存] をクリックします。
表示されるダイアログで [確認] をクリックします。
[バケットの詳細] ページの [オペレーション] タブが開き、キャッシュ作成オペレーションのジョブ ステータスが表示されます。
新しいバケットのキャッシュを作成する
新しいバケットの作成時にキャッシュを作成するには、新しいバケットを作成するの手順に沿って操作します。
[バケットリスト] ページからバケットのキャッシュのステータスを表示するには:
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
[列を表示] アイコン()をクリックし、[キャッシュ] を選択して [OK] をクリックします。
コマンドライン
gcloud storage buckets anywhere-caches create コマンドを使用します。
gcloud storage buckets anywhere-caches create gs://BUCKET_NAME CACHE_ZONE \ [--ttl=TTL] [--enable-ingest-on-write]
次のように置き換えます。
BUCKET_NAMEは、データをキャッシュに保存するバケットの名前に置き換えます。例:my-bucketCACHE_ZONEは、キャッシュを実行するゾーンに置き換えます。例:us-east1-b複数のキャッシュを一度に作成するには、複数のゾーンを指定します。例:
us-east1-b us-east1-c us-east1-dTTL(省略可)は、キャッシュ内のデータの有効期間(TTL)に置き換えます。値は 1 ~ 7 日の範囲で指定できます。値は、秒、分、時間、日単位で表すことができます。次に例を示します。86400s: 86,400 秒1440m: 1,440 分24h: 24 時間1d: 1 日
指定しない場合のデフォルトは
86400s(1 日)です。
データがバケットに書き込まれた瞬間にデータを取り込むようにキャッシュを構成するには、省略可能な --enable-ingest-on-write フラグを指定します。このフラグを使用すると、オブジェクトがバケットに書き込まれたときに、キャッシュがすべてのオブジェクトを取り込むことができます。
成功すると、このコマンドは AnywhereCache の作成オペレーションに関連付けられた長時間実行オペレーションの ID を返します。長時間実行オペレーションの詳細を取得したり、AnywhereCaches 作成オペレーションの完了前に長時間実行オペレーションをキャンセルできます。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Rust
Terraform
Terraform で Rapid Cache を使用する方法については、google_storage_anywhere_cache Terraform のドキュメントをご覧ください。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。次の情報が含まれる JSON ファイルを作成します。
{ "zone": "ZONE", "ttl": "TIME_TO_LIVE", "ingestOnWrite": INGEST_SETTING }次のように置き換えます。
ZONEは、キャッシュを実行するゾーンに置き換えます。例:us-east1-bTIME_TO_LIVEは、キャッシュ内のデータの有効期間(TTL)に置き換えます。値は、秒、分、時間、日単位で表すことができます。次に例を示します。86400s: 86,400 秒1440m: 1,440 分24h: 24 時間1d: 1 日
指定しない場合、デフォルトは
86400s(1 日)です。最大値は 7 日です。trueまたはfalseを使用してINGEST_SETTINGを指定し、キャッシュが書き込み時にデータを取り込むかどうかを指定します。trueに設定すると、バケットに書き込まれるすべてのオブジェクトで書き込み時の取り込みが有効になります。falseに設定すると、接頭辞の下に書き込まれたオブジェクトに対して書き込み時の取り込みを選択的に有効にしたり、バケット全体で無効にしたりできます。書き込み時取り込みの有効化を構成するために使用される設定については、書き込み時取り込みを有効にするための要件をご覧ください。
バケットレベルまたはプレフィックス レベルで書き込み時の取り込みを有効にするか、書き込み時の取り込みを完全に無効にするには、次のいずれかの手順を使用します。
バケットの書き込み時取り込みを有効にする
バケットに書き込まれたすべてのオブジェクトに対して書き込み時の取り込みを有効にするには、
INGEST_SETTINGSの値をtrueに設定します。ステップ 3 に沿ってキャッシュ リクエストを完了します。
接頭辞の下のオブジェクトに対して書き込み時の取り込みを選択的に有効にする
INGEST_SETTINGSの値はfalseに設定します。ステップ 3 に沿ってキャッシュ リクエストを完了します。
マネージド フォルダがまだ存在しない場合は、接頭辞を名前として使用するマネージド フォルダを作成します。
rapidCacheConfig構成を含むマネージド フォルダPATCHリクエストを送信します。書き込み時の取り込みの使用方法についてのガイダンスに沿って、構成でフィールド値を設定します。
rapidCacheConfig構成の使用方法の詳細については、マネージド フォルダで書き込み時の取り込みを更新するをご覧ください。書き込み時の取り込みを有効にせずにキャッシュを作成する
INGEST_SETTINGSの値はfalseに設定します。ステップ 3 に沿ってキャッシュ リクエストを完了します。
cURLを使用して、キャッシュの作成リクエストで JSON API を呼び出します。curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches"次のように置き換えます。
JSON_FILE_NAMEは、手順 2 で作成した JSON ファイルの名前に置き換えます。BUCKET_NAMEは、データをキャッシュに保存するバケットの名前に置き換えます。例:my-bucket
成功した場合、オペレーションは google.longrunning.Operation を返します。長時間実行オペレーションの詳細を取得したり、AnywhereCaches 作成オペレーションの完了前に長時間実行オペレーションをキャンセルできます。
キャッシュを表示する
コンソール
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
バケットのリストで、表示するキャッシュに関連付けられているバケットの名前をクリックします。
[バケットの詳細] ページで、[構成] タブをクリックします。
[Rapid Cache] セクションで、[キャッシュ] フィールドの横にある [編集] をクリックします。
表示された [構成を編集] ページで、リージョンを選択して、リージョンのゾーン内のすべてのキャッシュを表示します。
[キャッシュゾーン] ペインで、使用可能な各キャッシュの詳細を確認できます。
コマンドライン
gcloud storage buckets anywhere-caches describe コマンドを使用します。
gcloud storage buckets anywhere-caches describe CACHE_ID
次のように置き換えます。
CACHE_IDは、BUCKET_NAME/CACHE_ZONEとして記述されたキャッシュ インスタンスの ID に置き換えます。例:my-bucket/us-east1-b。
オプションの raw フラグを使用して、標準化された API レスポンスではなく、未加工の API レスポンスを出力します。
成功すると、コマンドは AnywhereCache リソースを返します。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Rust
Terraform
Terraform で Rapid Cache を使用する方法については、google_storage_anywhere_cache Terraform のドキュメントをご覧ください。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。cURLを使用して、 キャッシュの取得リクエストで JSON API を呼び出します。curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches/RAPID_CACHE_ID"
次のように置き換えます。
BUCKET_NAMEは、取得するキャッシュに関連付けられているバケットの名前に置き換えます。例:my-bucketRAPID_CACHE_IDは、キャッシュが配置されているゾーンに置き換えます。例:us-east1-b
成功すると、このオペレーションは AnywhereCache リソースを返します。
キャッシュの一覧表示
コンソール
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
バケットのリストで、表示するキャッシュに関連付けられているバケットの名前をクリックします。
[バケットの詳細] ページで、[構成] タブをクリックします。
[Rapid Cache] セクションで、[キャッシュ] フィールドの横にある [編集] をクリックします。
表示された [構成を編集] ページで、リージョンを選択して、リージョンのゾーン内のすべてのキャッシュを表示します。
リージョン内のゾーンで使用可能なすべてのキャッシュが [キャッシュゾーン] ペインに表示されます。
コマンドライン
gcloud storage buckets anywhere-caches list コマンドを使用します。
gcloud storage buckets anywhere-caches list gs://BUCKET_NAME
次のように置き換えます。
BUCKET_NAMEは、一覧表示するキャッシュに関連付けられているバケットの名前に置き換えます。例:my-bucket
成功すると、コマンドは AnywhereCache リソースのリストを返します。
必要に応じて --raw フラグを使用し、標準化されたレスポンスではなく未加工の API レスポンスを返すことができます。結果のページネーションなど、表示動作を制御する方法については、gcloud storage ls のドキュメントをご覧ください。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Rust
Terraform
Terraform で Rapid Cache を使用する方法については、google_storage_anywhere_cache Terraform のドキュメントをご覧ください。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。cURLを使用して、キャッシュを一覧表示するリクエストで JSON API を呼び出します。curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches"
次のように置き換えます。
BUCKET_NAMEは、取得するキャッシュに関連付けられているバケットの名前に置き換えます。例:my-bucket
複数のキャッシュを一覧表示する場合は、結果をページネーションできます。
成功すると、このオペレーションは AnywhereCache リソースのリストを返します。このレスポンスの構造の詳細については、AnywhereCaches リストのドキュメント内のレスポンスをご覧ください。
キャッシュを更新する
コンソール
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
バケットのリストで、更新するキャッシュに関連付けられているバケットの名前をクリックします。
[バケットの詳細] ページで、[構成] タブをクリックします。
[Rapid Cache] セクションで、 [キャッシュを管理] をクリックします。
[キャッシュの管理] ペインで、[ キャッシュを編集または作成] をクリックします。
表示された [構成を編集] ページで、キャッシュのプロパティを更新します。
キャッシュの TTL を更新するには、[有効期間] 列を見つけて、期間を指定し、時間単位(分など)を選択します。
書き込み時のキャッシュの取り込み動作(書き込まれたすべてのオブジェクトをキャッシュに保存するか、接頭辞の下に書き込まれた選択されたオブジェクトのみをキャッシュに保存するかなど)を構成するには:
[取り込み条件] 列を見つけて、 [キャッシュ取り込み条件を編集] をクリックします。
[取り込み条件を設定] ペインで、次の操作を行います。
書き込み時の取り込みを有効または無効にするには、[書き込み時にデータを取り込む] チェックボックスをオンまたはオフにして、[完了] をクリックします。
書き込み時にバケット内のすべてのオブジェクトを取り込むようにキャッシュを更新するには、[書き込み時にデータを取り込む] チェックボックスがオンになっていることを確認し、[バケット全体] を選択します。[完了] をクリックします。
キャッシュを更新して、名前に指定された接頭辞を含むオブジェクトのみを取り込むには、[書き込み時にデータを取り込む] チェックボックスがオンになっていることを確認し、[選択したフォルダ] を選択します。
接頭辞を指定するには、フォルダパス フィールドに 1 つ以上の接頭辞を入力し、[完了] をクリックします。
接頭辞を削除するには、接頭辞の横にある [アイテムを削除] をクリックします。
[構成の編集] ページで、[保存] をクリックします。
表示されるダイアログで [確認] をクリックします。
コマンドライン
gcloud storage buckets anywhere-caches update コマンドを使用します。
gcloud storage buckets anywhere-caches update CACHE_ID \ [--ttl=TTL] [--[no-]enable-ingest-on-write]
次のように置き換えます。
CACHE_IDは、BUCKET_NAME/CACHE_ZONEとして記述されたキャッシュ インスタンスの ID に置き換えます。例:my-bucket/us-east1-b。複数のキャッシュを一度に更新するには、複数の ID を指定します。例:
my-bucket/us-east1-b my-bucket/us-east1-cTTL(省略可)は、キャッシュ内のデータの有効期間(TTL)に置き換えます。値は 1 ~ 7 日の範囲で指定できます。値は、秒、分、時間、日単位で表すことができます。次に例を示します。86400s: 86,400 秒1440m: 1,440 分24h: 24 時間1d: 1 日
データがバケットに書き込まれた瞬間にデータをキャッシュに取り込むようにキャッシュを構成するには、--enable-ingest-on-write フラグを指定します。このフラグを使用すると、オブジェクトがバケットに書き込まれたときに、キャッシュがすべてのオブジェクトを取り込むことができます。書き込み時にキャッシュがデータを取り込まないようにするには、--no-enable-ingest-on-write フラグを指定します。
成功すると、このコマンドは AnywhereCache 更新オペレーションに関連付けられた未加工の長時間実行オペレーションの ID を返します。長時間実行オペレーションの詳細を取得できます。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。