에이전트 검색 할당량

Google Cloud 는 공정성을 유지하고 리소스 사용 및 가용성의 급증을 줄이기 위해 할당량을 사용합니다. 할당량은 Google Cloud 프로젝트에서 사용할 수 있는Google Cloud 리소스 양을 제한합니다. 할당량은 하드웨어, 소프트웨어, 네트워크 구성요소를 포함하여 다양한 리소스 유형에 적용됩니다. 예를 들어 할당량에 따라 서비스에 대한 API 호출 수, 프로젝트에서 동시에 사용하는 부하 분산기 수, 만들 수 있는 프로젝트 수가 제한될 수 있습니다. 할당량은 서비스 과부하를 방지하여Google Cloud 사용자 커뮤니티를 보호합니다. 또한 할당량은 자체 Google Cloud 리소스를 관리하는 데 도움이 됩니다.

Cloud Quotas 시스템은 다음을 수행합니다.

대부분의 경우 할당량이 허용하는 것보다 더 많은 리소스를 소비하려고 하면 시스템에서 리소스에 대한 액세스를 차단하고 수행하려는 작업이 실패합니다.

할당량은 일반적으로 Google Cloud 프로젝트 수준에서 적용됩니다. 한 프로젝트의 리소스를 사용해도 다른 프로젝트에서 사용 가능한 할당량에는 영향을 미치지 않습니다. Google Cloud 프로젝트 내에서 할당량은 모든 애플리케이션과 IP 주소에 공유됩니다.

자세한 내용은 Cloud Quotas 개요를 참고하세요.

에이전트 검색 (이전의 벡터 검색 2.0)에서는 서비스를 보호하고, 프로젝트 간에 용량을 공정하게 공유하고, 보다 예측 가능한 성능과 비용을 제공하기 위해 할당량이 적용됩니다. 할당량은 리전별로 독립적으로 추적됩니다. 예를 들어 us-central의 사용량은 europe-west4의 할당량에 영향을 미치지 않습니다.

측정항목

모든 측정항목 이름에는 vectorsearch.googleapis.com/ 프리픽스가 붙습니다.

비율 할당량 (요청/분 및 바이트/분)

데이터 비율 할당량의 경우 할당량은 분당 평가되며 프로젝트별 및 리전별 (또는 멀티 리전별), 선택적으로 컬렉션별로 적용됩니다.

수락된 각 API 호출은 카운터를 요청 1개(또는 바이트 할당량의 경우 N바이트)만큼 증가시킵니다. 카운터는 캘린더 분당이며 슬라이딩 윈도우 평가를 사용합니다(:00에서 하드 재설정 없음).

'리필' 효과 없이 한도까지 계속 실행할 수 있습니다.

카운터가 한도를 초과하면 추가 요청은 RESOURCE_EXHAUSTED (HTTP 429)를 reason="RATE_LIMIT_EXCEEDED" 및 quota_metric 필드의 정확한 측정항목 이름과 함께 반환합니다.

컨트롤 플레인 비율 할당량

다음 할당량은 특정 프로젝트 및 리전의 컬렉션 및 색인에 대한 리소스 수명 주기, 읽기 및 나열 작업에 적용됩니다.

범위: 리전별 프로젝트당

단위: 1/min

한도: 분당 요청 수

측정항목 개수
collection_management_requests collections.create
collections.update
collections.delete
collection_read_requests collections.get
collection_list_requests collections.list
index_management_requests indexes.create
indexes.update
indexes.delete
index_read_requests indexes.get
index_list_requests indexes.list

장기 실행 작업 (LRO) 요청

다음 할당량은 특정 프로젝트 및 리전의 장기 실행 읽기, 나열, 취소, 삭제 작업에 적용됩니다.

범위: 리전별 프로젝트당

단위: 1/min

한도: 분당 요청 수

측정항목 개수
lro_requests operations.get
operations.list
operations.cancel
operations.delete

데이터 영역 비율 할당량

다음 할당량은 특정 프로젝트, 리전, 컬렉션의 데이터 객체, 쿼리, 검색 트래픽에 적용됩니다.

참고: 검색 요청 할당량 (search_requests)은 텍스트 검색 및 시맨틱 검색에 사용됩니다.

범위: 프로젝트별, 리전별, 컬렉션별

단위: 1/min

한도: 컬렉션별 분당 요청 수

측정항목 개수
data_object_writes dataObjects.create
dataObjects.update
dataObjects.delete
batchCreate
에 포함된 각 데이터 객체
batchUpdate
batchDelete
data_object_writes_us data_object_writes과 동일하지만 us 멀티 리전에 적용됩니다.
data_object_reads dataObjects.get
data_object_reads_us data_object_reads과 동일하지만 us 멀티 리전에 적용됩니다.
query_requests dataObjects.query (메타데이터 전용 필터 쿼리)
query_requests_us query_requests과 동일하지만 us 멀티 리전에 적용됩니다.
search_requests 밀집 또는 희소 ANN을 실행할 때 dataObjects.search
search_requests_us search_requests과 동일하지만 us 멀티 리전에 적용됩니다.
knn_search_requests dataObjects.search: 전체 KNN 검색을 실행할 때 사용됩니다.
batch_search_requests_us batch_search_requests과 동일하지만 us 멀티 리전에 적용됩니다.
batch_search_requests dataObjects.batchSearch (하위 검색과 관계없이 요청 1개)
batch_search_requests_us batch_search_requests과 동일하지만 us 멀티 리전에 적용됩니다.

데이터 영역 처리량 할당량

다음 할당량은 특정 프로젝트, 리전, 컬렉션에 대해 분당 작성된 바이트 수에 적용됩니다.

범위: 프로젝트별, 리전별, 컬렉션별

단위: 1/min

한도: 컬렉션별 분당 요청 수

측정항목 개수
data_object_write_bytes 컬렉션, 데이터 객체, 색인에 대한 모든
create, update, delete, batchCreate, batchUpdate,
batchDelete 호출로 작성된 직렬화된 데이터와 벡터 바이트의 합계입니다.
data_object_write_bytes_us data_object_write_bytes과 동일하지만 us 멀티 리전에 적용됩니다.

일괄 작업

  • batchCreate, batchUpdate, batchDelete dataObjects: 요청의 각 개별 데이터 객체는 data_object_writes에 대해 쓰기 1회로 계산되며 직렬화된 크기(바이트)를 data_object_write_bytes에 제공합니다.

  • batchSearch dataObjects: 번들로 묶인 하위 검색 수에 관계없이 batch_search_requests에 대해 요청 1개로 계산됩니다. 일괄 검색으로 인해 하위 검색 할당량도 계산됩니다.

배정 할당량 (현재 수)

배정 할당량은 현재 개수입니다.

카운터는 프로젝트가 소유한 리소스 또는 진행 중인 작업의 실시간 수입니다.

리소스 생성 또는 작업 시작 시 개수가 증가하고 삭제 또는 작업 완료 시 감소합니다.

한도에 도달하면 다음 만들기 호출에서 RESOURCE_EXHAUSTED를 반환합니다. 기존 리소스를 삭제하거나 LRO가 완료될 때까지 기다려 할당량을 확보하세요.

컨트롤 플레인 배정 할당량

다음 할당량은 프로젝트가 특정 프로젝트 및 리전에 보유할 수 있는 리소스 수 또는 진행 중인 작업 수에 적용됩니다.

  • 컬렉션
  • 색인
  • 컬렉션, 데이터 객체, 색인에 대한 동시 생성, 가져오기, 내보내기 작업

범위: 리전별 프로젝트당

단위: 1

한도: 절대 수치 (정확한 할당량)

측정항목 개수
collections 프로젝트/리전에 있는 컬렉션 수입니다.
collections_us collections과 동일하지만 us 멀티 리전에 적용됩니다.
indexes 프로젝트/리전의 색인 수 (모든 컬렉션의 합계)입니다.
indexes_us indexes과 동일하지만 us 멀티 리전에 적용됩니다.
concurrent_index_operations 진행 중인 색인 LRO (만들기/업데이트/삭제)입니다.
concurrent_index_operations_us concurrent_index_operations과 동일하지만 us 멀티 리전에 적용됩니다.
concurrent_collection_operations 진행 중인 컬렉션 LRO (만들기/업데이트/삭제)
concurrent_collection_operations_us concurrent_collection_operations과 동일하지만 us 멀티 리전에 적용됩니다.
concurrent_data_object_imports 진행 중인 dataObjects.import LRO입니다.
concurrent_data_object_imports_us concurrent_data_object_imports과 동일하지만 us 멀티 리전에 적용됩니다.
concurrent_data_object_exports 진행 중인 dataObjects.export LRO입니다.
concurrent_data_object_exports_us concurrent_data_object_exports과 동일하지만 us 멀티 리전에 적용됩니다.

자동 임베딩

자동 임베딩은 Gemini Enterprise Agent Platform(aiplatform.googleapis.com)의 Gemini API를 사용합니다. 각 API 요청은 search_requests 또는 data_object_writes에 반영되며 그리고 임베딩 호출은 예측 할당량에 반영됩니다. 두 API 모두에 여유 공간이 있는지 확인합니다.

사용 예시

다음 섹션에서는 다양한 사용 시나리오가 할당량에 미치는 영향을 설명합니다.

지속적인 쓰기 워크로드

us-central1의 단일 컬렉션에 문서 (데이터와 768차원 밀집 벡터, 약 4KB)를 수집하고 있습니다. 두 가지 할당량이 동시에 적용됩니다.

data_object_writes        (requests per minute, per collection)
data_object_write_bytes   (bytes per minute, per collection)

먼저 도달하는 한도에 따라 제한됩니다. 작은 객체의 경우 요청 비율 할당량이 일반적으로 바인딩됩니다. 큰 객체의 경우 바이트 할당량이 적용됩니다.

Google Cloud 콘솔에서 두 측정항목을 모두 확인하여 한도에 가장 가까운 측정항목을 확인합니다.

검색 집약적인 워크로드

단일 컬렉션에 ANN 쿼리를 전송하는 서빙 워크로드는 search_requests를 사용합니다. 초당 최대 쿼리 수 (QPS)가 컬렉션별 한도에 근접하면 한도 상향을 요청하거나 동일한 리전의 여러 컬렉션에 트래픽을 분산하세요.

소규모 컬렉션 여러 개

프로젝트의 collections 한도보다 많은 컬렉션을 만들려면 만들기 전에 한도 상향을 요청하세요. 그렇지 않으면 한도를 초과하는 만들기 호출이 RESOURCE_EXHAUSTED로 인해 실패합니다.

하위 검색 10개가 포함된 batchSearch는 정확히 하나의 batch_search_requests를 사용하지만 각 하위 검색은 외부 배치의 수준에서만 각 하위 검색당 측정항목에 반영됩니다. 이에 따라 일괄 팬아웃을 계획합니다.

할당량 보기

할당량을 보려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 IAM 및 관리자 > 할당량 페이지를 엽니다.
  2. Vector Search API 서비스에 대한 필터입니다.
  3. 측정기준 (예: 위치) 열을 사용하여 리전별 및 데이터 영역 할당량의 컬렉션별로 필터링합니다.

모든 측정항목의 현재 유효 한도는 Google Cloud 콘솔 할당량 페이지에서 측정항목 이름 옆에 표시되며, 리전별로 필터링되고 데이터 영역 할당량의 경우 컬렉션별로 필터링됩니다.

할당량 알림 설정

워크로드가 사용하는 할당량의 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)

할당량 상향을 요청하려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 IAM 및 관리자 > 할당량 페이지를 엽니다.
  2. 늘리려는 행을 선택합니다.
  3. 할당량 수정을 클릭하고 새 값과 간단한 비즈니스 근거를 입력한 후 제출합니다. 다음을 포함합니다.
    • 측정항목 이름 (예: vectorsearch.googleapis.com/search_requests)
    • 리전 및 (데이터 영역의 경우) 컬렉션 ID
    • 목표 처리량 및 워크로드에 대한 간단한 설명(안정적 또는 급증, 예상 최대 QPS, 예상 데이터 세트 크기 등)

요청은 검토를 위해 상담사 검색팀으로 라우팅됩니다. 기본값의 최대 2배까지 증가하는 대부분의 요청은 자동으로 승인됩니다. 큰 폭의 상향 요청은 추가 검토가 필요할 수 있습니다.

더보기