Cloud de Confiance by S3NS では、割り当てを使用して公平性を確保し、リソースの使用量と可用性の急増を抑えます。割り当ては、 Cloud de Confiance プロジェクトで使用できるCloud de Confiance リソースの量を制限します。割り当ては、ハードウェア、ソフトウェア、ネットワーク コンポーネントなど、さまざまなリソースタイプに適用されます。たとえば、割り当てによって、サービスへの API 呼び出しの数、プロジェクトで同時に使用されるロードバランサの数、作成可能なプロジェクトの数を制限できます。割り当てを適用することで、サービスの過負荷を防ぎ、Cloud de Confiance ユーザーのコミュニティを保護します。割り当ては、自組織で使用している Cloud de Confiance リソースの管理にも役立ちます。
Cloud Quotas システムは次のことを行います。
- Cloud de Confiance のプロダクトとサービスの消費量をモニタリングする
- これらのリソースの消費量を制限する
- 割り当て値の変更をリクエストし、割り当ての調整を自動化する手段を提供する
ほとんどの場合、割り当ての許容量を超えるリソースを消費しようとすると、システムによってリソースへのアクセスがブロックされ、実行しようとしているタスクは失敗します。
割り当ては通常、 Cloud de Confiance プロジェクト レベルで適用されます。あるプロジェクトでリソースを使用しても、別のプロジェクトで使用可能な割り当てに影響することはありません。 Cloud de Confiance プロジェクト内では、すべてのアプリケーションと IP アドレスで割り当てが共有されます。
詳細については、 Cloud Quotas の概要をご覧ください。
Agent Retrieval(以前の Vector Search 2.0)では、サービスの保護、プロジェクト間の容量の公平な共有、パフォーマンスと費用の予測可能性の向上を目的として、割り当てが適用されます。割り当てはリージョンごとに個別に追跡されます。たとえば、us-central での使用量は europe-west4 の割り当てに影響しません。
指標
すべての指標名には接頭辞 vectorsearch.googleapis.com/ が付きます。
レートに基づく割り当て(リクエスト/分とバイト/分)
データレートの割り当ての場合、割り当ては 1 分ごとに評価され、 プロジェクトごと、リージョンごと(または マルチリージョンごと)に適用されます。必要に応じて、 コレクションごとに適用することもできます。
受け入れられた API 呼び出しごとに、カウンタが 1 リクエスト (バイト割り当ての場合は N バイト)ずつ増加します。カウンタは 1 暦分ごと で、スライディング ウィンドウ評価を使用します(:00 でのハードリセットはありません)。
上限に達しても、「補充」効果は発生しません。
カウンタが上限を超えると、追加のリクエストは
RESOURCE_EXHAUSTED(HTTP 429)を返し、reason="RATE_LIMIT_EXCEEDED" と
正確な指標名が quota_metric フィールドに返されます。
コントロール プレーンのレートに基づく割り当て
次の割り当ては、特定プロジェクトとリージョンのリソース ライフサイクル、コレクションとインデックスの読み取りオペレーションとリスト オペレーションに適用されます。
スコープ: プロジェクトごと、リージョンごと
ユニット: 1/min
上限: 1 分あたりのリクエスト数。
| 指標 | カウント |
|---|---|
collection_management_requests
|
collections.createcollections.updatecollections.delete |
collection_read_requests |
collections.get |
collection_list_requests |
collections.list |
index_management_requests
|
indexes.createindexes.updateindexes.delete |
index_read_requests |
indexes.get |
index_list_requests |
indexes.list |
長時間実行オペレーション(LRO)リクエスト
次の割り当ては、特定のプロジェクトとリージョンの長時間実行の読み取り、リスト、キャンセル、削除オペレーションに適用されます。
スコープ: プロジェクトごと、リージョンごと
ユニット: 1/min
上限: 1 分あたりのリクエスト数。
| 指標 | カウント |
|---|---|
lro_requests
|
operations.getoperations.listoperations.canceloperations.delete |
データプレーンのレートに基づく割り当て
次の割り当ては、特定のプロジェクト、リージョン、コレクションのデータ オブジェクト、クエリ、検索トラフィックに適用されます。
注: 検索リクエストの割り当て(search_requests)は、
テキスト検索とセマンティック検索で使用されます。
スコープ: プロジェクトごと、リージョンごと、コレクションごと
ユニット: 1/min
上限: 1 分あたりのリクエスト数、コレクションごと
| 指標 | カウント |
|---|---|
data_object_writes
|
dataObjects.createdataObjects.updatedataObjects.delete\ に含まれる各データ オブジェクト batchCreatebatchUpdatebatchDelete |
data_object_reads |
dataObjects.get |
query_requests |
dataObjects.query(メタデータのみのフィルタ クエリ) |
search_requests |
高密度またはスパース ANN を実行する場合の dataObjects.search。 |
knn_search_requests |
網羅的な KNN 検索を実行する場合の dataObjects.search。 |
batch_search_requests |
dataObjects.batchSearch(サブ検索に関係なく 1 つのリクエスト) |
データプレーンのスループット割り当て
次の割り当ては、特定のプロジェクト、リージョン、コレクションの 1 分あたりの書き込みバイト数に適用されます。
スコープ: プロジェクトごと、リージョンごと、コレクションごと
ユニット: 1/min
上限: 1 分あたりのリクエスト数、コレクションごと
| 指標 | カウント |
|---|---|
data_object_write_bytes
|
すべてのcreate、update、delete、batchCreate、batchUpdate、およびbatchDeleteコレクション、データ オブジェクト、インデックスの呼び出しによって書き込まれたシリアル化データとベクトル バイトの合計。 |
バッチ オペレーション
batchCreate, batchUpdate, batchDelete dataObjects: リクエスト内の個々のデータ オブジェクトは、data_object_writesに対して 1 回の書き込み としてカウントされ、シリアル化されたサイズ(バイト単位)がdata_object_write_bytesに加算されます。batchSearch dataObjects: バンドルされているサブ検索の数に関係なく、batch_search_requestsに対して 1 つのリクエスト としてカウントされます。 バッチ検索を行うと、サブ検索の割り当てもカウントされます。
割り当て(現在のカウント)
割り当ては現在のカウントです。
カウンタは、プロジェクトが所有するリソースまたは処理中のオペレーションのライブカウントです。
カウントは、リソースの作成時またはオペレーションの開始時に増加し、削除時またはオペレーションの完了時に減少します。
上限に達すると、次の作成呼び出しは RESOURCE_EXHAUSTED を返します。
既存のリソースを削除するか、LRO が完了するまで待って割り当てを解放します。
コントロール プレーンの割り当て
次の割り当ては、特定のプロジェクトとリージョンでプロジェクトが保持できるリソースまたは処理中のオペレーションの数に適用されます。
- コレクション
- インデックス
- コレクション、データ オブジェクト、インデックスに対する同時作成、インポート、エクスポート オペレーション
スコープ: プロジェクトごと、リージョンごと
ユニット: 1
上限: 絶対数(正確な割り当て)
| 指標 | カウント |
|---|---|
collections |
プロジェクト/リージョンに存在するコレクションの数。 |
indexes |
プロジェクト/リージョンのインデックスの数(すべてのコレクションで合計)。 |
concurrent_index_operations |
処理中のインデックス LRO(作成/更新/削除)。 |
concurrent_collection_operations |
処理中のコレクション LRO(作成/更新/削除)。 |
concurrent_data_object_imports |
処理中の dataObjects.import LRO。 |
concurrent_data_object_exports |
処理中の dataObjects.export LRO。 |
自動埋め込み
自動埋め込みでは、Vertex AI の Gemini API(aiplatform.googleapis.com)を使用します。各 API リクエストは search_requests または data_object_writes に対してカウントされ、埋め込み呼び出しは予測割り当てに対してカウントされます。 両方の API に十分な余裕があることを確認してください。
使用例
以降のセクションでは、さまざまな使用シナリオが割り当てに与える影響について説明します。
持続的な書き込みワークロード
us-central1 の単一のコレクションにドキュメント(データと 768 次元の高密度ベクトル、約 4 KB)を取り込んでいます。2 つの割り当てが同時に適用されます。
data_object_writes (requests per minute, per collection)
data_object_write_bytes (bytes per minute, per collection)
上限は、最初に到達した上限 によって決まります。オブジェクトが小さい場合は、通常、リクエストレートの割り当てが適用されます。オブジェクトが大きい場合は、バイト割り当てが適用されます。
コンソールで両方の指標を確認して、上限に最も近い指標を確認します。 Cloud de Confiance
検索負荷の高いワークロード
単一のコレクションに ANN クエリを送信するサービング ワークロードは、search_requests を消費します。1 秒あたりのピーク秒間クエリ数(QPS)がコレクションごとの上限に近づいている場合は、上限の引き上げをリクエストするか、同じリージョン内の複数のコレクションにトラフィックを分散します。
多数の小さなコレクション
プロジェクトの collections 上限を超えるコレクションを作成する場合は、作成を開始する前に 上限の引き上げをリクエストしてください。そうしないと、上限を超える作成呼び出しは RESOURCE_EXHAUSTED で失敗します。
バッチ検索
10 個のサブ検索を含む batchSearch は、batch_search_requests を 1 つ 消費しますが、各サブ検索は、外側のバッチのレベルでのみ、それぞれのサブ検索ごとの指標に対してカウントされます。
それに応じてバッチ ファンアウトを計画します。
割り当ての表示
割り当てを表示するには:
- [IAM と管理] > [割り当て] ページ をコンソールで開きます。 Cloud de Confiance
Vector Search APIサービスでフィルタします。- [ディメンション(ロケーションなど)] 列を使用して、データプレーンの割り当てのリージョンとコレクションでフィルタします。
各指標の現在の有効な上限は、 Cloud de Confiance コンソールの [割り当て] ページで指標名の横に表示されます。これは、リージョンとデータプレーンの 割り当て(コレクション)でフィルタされます。
割り当てアラートを設定する
ワークロードが依存する割り当てに対して、使用率 80% でアラートを設定することをおすすめします。詳細については、 割り当てアラートを設定する とアラート ポリシーで割り当て指標を使用するをご覧ください。
失敗
割り当てを超過したために拒否されたリクエストは、割り当て自体に対してカウントされません 。
他の理由(INVALID_ARGUMENT, NOT_FOUND など)で失敗したリクエストは、サービスが評価する必要があるため、レートに基づく割り当てに対してカウントされます 。
vector_schema の検証エラーはカウントされます 。レートに基づく割り当てのチェックが行われた後、API レイヤで拒否されます。
割り当ての超過
リクエストがスロットリングされると、API は次のものを返します。
gRPC: RESOURCE_EXHAUSTED (8)
HTTP: 429 Too Many Requests
エラー メッセージには、超過した正確な指標が含まれています。
次に例を示します。
Quota exceeded for quota metric 'vectorsearch.googleapis.com/search_requests'
and limit 'SearchRequestsPerMinutePerProjectPerRegionPerCollection' of service
'vectorsearch.googleapis.com' for consumer 'project_number:123456789012'.
この場合は、割り当ての増加をリクエストできます。
推奨されるクライアントの動作
クライアントは次のことを行う必要があります。
- 一時的なレート制限エラーの場合は、指数バックオフとジッターを使用して再試行 します。約 1 秒から開始し、約 32 秒までバックオフします。
- 割り当て(
"too many collections"など)が原因で発生したエラーは**再試行しません**。代わりに、リソースを削除するか、 上限の引き上げをリクエストします。 - 単一のコレクションで
data_object_writesまたはdata_object_write_bytesの割り当てがホットスポットになっている場合は、コレクションまたはリージョン間で書き込みを分散 します。 - 事前ウォーミング 。起動が現在の上限を超えることがわかっている場合は、少なくとも数営業日前に上限の引き上げをリクエストしてください。
割り当て増加リクエスト(QIR)
割り当ての増加をリクエストするには:
- [IAM と管理] > [割り当て] ページ をコンソールで開きます。 Cloud de Confiance
- 上限を引き上げる行を選択します。
- [**割り当てを編集**] をクリックし、新しい値と簡単なビジネス上の正当性を入力して、
送信します。以下を含めます。
- 指標名 (例:
vectorsearch.googleapis.com/search_requests)。 - リージョン と(データプレーンの場合)コレクション ID 。
- 目標スループット とワークロードの簡単な説明(安定しているか、スパイクが発生するか、予想されるピーク QPS、予想されるデータセット サイズなど)。
- 指標名 (例:
リクエストは、審査のために Agent Retrieval チームに転送されます。デフォルトの 2 倍までの上限引き上げは、ほとんどの場合、自動的に承認されます。上限を大幅に引き上げる場合は、追加の審査が必要になることがあります。