Private Service Connect를 사용하면 다른 그룹, 팀, 프로젝트, 조직에 속하는 VPC 네트워크 간에 서비스의 비공개 소비가 가능합니다. 벡터 검색 엔드포인트가 벡터 유사성 검색을 수행할 수 있도록 사용자가 정의하고 VPC 네트워크 내부에 있는 IP 주소를 사용하여 서비스를 게시 및 소비할 수 있습니다.
벡터 검색 엔드포인트에서 Private Service Connect를 사용 설정하는 것은 다음 사용 사례에 적합합니다.
- 짧은 지연 시간과 벡터 검색 제공 백엔드에 대한 보안 연결이 필요합니다.
- 배타적 VPC 피어링 예약을 위한 IP 공간이 제한됩니다.
- 여러 사용자 VPC 네트워크에서 제공 백엔드에 액세스해야 합니다.
Private Service Connect 설정에 대한 자세한 내용은 Virtual Private Cloud (VPC) 문서의 Private Service Connect 개요를 참고하세요.
색인 엔드포인트 만들기
엔드포인트를 만들 때 Private Service Connect를 사용 설정해야 합니다. 이 절차는 Vertex AI에서 다른 엔드포인트를 만드는 것과 유사합니다.
REST
PROJECT: Vertex AI 리소스를 만드는 서비스 프로젝트의 ID입니다.
REGION: 네트워크 리전입니다.
DISPLAY_NAME: 엔드포인트에 지정할 표시 이름입니다. 이 이름은 엔드포인트의 ID를 만드는 데 사용되며 나중에 업데이트할 수 없습니다.
VPC_PROJECTS: 공유 VPC 설정의 경우 VPC 호스트 프로젝트의 쉼표로 구분된 목록입니다. 독립형 VPC 설정의 경우 PROJECT과 동일합니다.
PROJECT=PROJECT_ID
VPC_PROJECT=VPC_PROJECT_ID
REGION=us-central1
VERTEX_ENDPOINT=REGION-aiplatform.googleapis.com
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/REGION/indexEndpoints \
-d '{
"displayName": "DISPLAY_NAME",
"privateServiceConnectConfig": {
"enablePrivateServiceConnect": true,
"projectAllowlist": [ "VPC_PROJECT_1", "VPC_PROJECT_2", "VPC_PROJECT_N"]
}
}
콘솔
엔드포인트를 만들려면 다음 단계를 따르세요.
다음 버튼을 클릭하여 Google Cloud 콘솔에서 벡터 검색으로 이동합니다. 활성 색인 목록이 표시됩니다.
색인 엔드포인트 탭을 선택합니다. 색인 엔드포인트가 표시됩니다.
새 엔드포인트 만들기를 클릭합니다. 새 색인 엔드포인트 만들기 패널이 열립니다.
표시 이름에 색인 엔드포인트의 표시 이름을 입력합니다. 이 이름은 엔드포인트의 ID를 만드는 데 사용되며 나중에 업데이트할 수 없습니다.
리전 드롭다운에서 지역을 선택합니다.
액세스에서 Private Service Connect (미리보기)를 클릭합니다.
사용할 VPC 프로젝트를 지정할 수 있는 텍스트 필드가 표시됩니다. 사용하려는 VPC 프로젝트의 ID 또는 번호를 추가합니다.
만들기를 클릭합니다.
색인 배포 옵션 정보
자동 또는 수동 서비스 연결을 사용하여 색인을 배포할 수 있습니다.
- Private Service Connect 자동화를 사용하여 배포: 서비스 연결 정책을 설정하고 색인을 배포합니다. 서비스 연결 정책을 설정하면 매번 컴퓨팅 주소와 전달 규칙을 만들지 않고도 특정 네트워크에 배포할 수 있습니다.
- 수동 연결을 사용하여 배포: 색인을 배포하고 컴퓨팅 주소와 전달 규칙을 수동으로 만듭니다. 일반적인 사용 사례는 아니지만 동일한 서비스 첨부파일 URI에 여러 IP 주소를 사용해야 하는 경우 이 옵션을 선택할 수 있습니다.
Private Service Connect 자동화로 배포
각 색인 배포 후 컴퓨팅 주소와 전달 규칙을 수동으로 만들지 않아도 되도록 서비스 연결 정책을 설정할 수 있습니다.
- 먼저 색인을 배포할 네트워크, 서비스 클래스, 리전을 지정하는 서비스 연결 정책을 만듭니다. 이렇게 한 번만 설정합니다. 이미 이 작업을 완료했다면 다음 절차로 건너뜁니다.
- 색인을 배포합니다.
제한사항
자동화는 네트워크당 프로젝트당 IP 주소를 하나만 허용합니다. 여러 IP 주소를 사용해야 하는 경우 색인 수동 배포를 참조하세요.
서비스 연결 정책 만들기
색인 배포 자동화를 위한 서비스 연결 정책을 만들려면 네트워크 관리자여야 합니다.
색인 배포를 자동화하려면 다음 단계를 따르세요.
서비스 연결 정책을 만듭니다.
PROJECT: Vertex AI 리소스를 만드는 서비스 프로젝트입니다.
VPC_PROJECT: 클라이언트 VPC가 있는 프로젝트입니다. 단일 VPC 설정의 경우 $PROJECT와 동일합니다. 공유 VPC 설정의 경우 VPC 호스트 프로젝트입니다.
NETWORK_NAME: 배포할 네트워크의 이름으로,
projects/
형식입니다./global/networks/ REGION: 네트워크 리전입니다.
PSC_SUBNETS: 사용할 Private Service Connect 서브넷입니다.
gcloud network-connectivity service-connection-policies create <policy_name> \ --project=<vpc_project> --network=<network_name> # in the format projects/<project_id>/global/networks/<network_name> \ --service-class=gcp-vertexai --region=<region> --subnets=<psc subnets>
서비스 연결 정책을 확인합니다.
gcloud network-connectivity service-connection-policies list --project=<vpc_project> -–region=<region>
서비스 연결 정책에 관한 자세한 내용은 서비스 연결 정책 구성을 참고하세요.
색인 배포
REST
PROJECT: Vertex AI 리소스를 만드는 서비스 프로젝트입니다.
VPC_PROJECT: 클라이언트 VPC가 있는 프로젝트입니다. 공유 VPC 설정의 경우 VPC 호스트 프로젝트입니다.
DISPLAY_NAME: 엔드포인트에 지정할 표시 이름입니다. 이 이름은 엔드포인트의 ID를 만드는 데 사용되며 나중에 업데이트할 수 없습니다.
NETWORK_NAME: 배포할 네트워크의 이름으로,
projects/
형식입니다./global/networks/ REGION: 네트워크 리전입니다.
PSC_SUBNETS: 사용할 Private Service Connect 서브넷입니다.
PROJECT=PROJECT
VPC_PROJECTS=VPC_PROJECTS
REGION=REGION
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "Content-Type: application/json; charset=utf-8" "https://REGIONAL_ENDPOINT.googleapis.com/v1/projects/PROJECT_NUMBER/locations/REGION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex"
-d '{
"deployedIndex": {
"id": "DEPLOYED_INDEX_ID",
"index": "projects/PROJECT/locations/us-central1/indexes/INDEX_ID ",
"displayName": "DISPLAY_NAME",
"psc_automation_configs": [
{ "project_id": "PROJECT_1", "network": "NETWORK_NAME_1" },
{ "project_id": "PROJECT_2", "network": "NETWORK_NAME_2" },
{ "project_id": "PROJECT_N", "network": "NETWORK_NAME_N" }]
}
}'
콘솔
엔드포인트를 배포하려면 다음 안내를 따르세요.
다음 버튼을 클릭하여 Google Cloud 콘솔에서 벡터 검색으로 이동합니다. 활성 색인 목록이 표시됩니다.
배포하려는 Private Service Connect 지원 벡터 검색 엔드포인트의 배포 버튼을 클릭합니다. 색인 배포 슬라이드 아웃 패널이 나타납니다.
표시 이름에 배포된 색인의 표시 이름을 입력합니다. 이 이름은 ID를 만드는 데 사용되며 나중에 업데이트할 수 없습니다.
엔드포인트를 클릭하고 배포할 색인 엔드포인트를 선택합니다.
원하는 경우 머신 유형을 클릭하여 색인을 배포할 머신 유형을 수동으로 선택합니다. 기본적으로 머신 유형은 색인 샤드 크기를 기준으로 자동으로 선택됩니다.
이제 Private Service Connect 자동화 구성을 추가해야 합니다. 방법은 다음과 같습니다.
PSC 자동화 구성 섹션에서
새 구성 추가를 클릭합니다.연결할 VPC 프로젝트의 이름을 입력합니다.
연결할 VPC 프로젝트의 네트워크 이름을 입력합니다.
projects/
<project_number>
/global/networks/
<network_name>
형식이어야 합니다.원하는 경우
새 구성 추가를 클릭하고 Private Service Connect 자동화 구성을 계속 추가합니다.배포를 클릭하여 완료합니다.
서비스 연결 정책 삭제
서비스 연결 정책을 삭제해야 하는 경우 다음 명령어를 실행합니다.
gcloud network-connectivity service-connection-policies delete --project=<vpc_project> –-region=<region> <policy_name>
서비스 연결 정책에 관한 자세한 내용은 서비스 연결 정책 구성을 참고하세요.
수동 연결을 사용하여 배포
색인을 배포하고 VPC 프로젝트에서 전달 규칙을 만듭니다.
색인 배포
이제 색인이 준비되었으므로, 이 단계에서는 Private Service Connect가 사용 설정된 상태로 사용자가 만든 엔드포인트에 색인을 배포합니다.
gcloud
이 예시에서는gcloud ai index-endpoints deploy-index
명령어를 사용합니다.
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- INDEX_ENDPOINT_ID: 색인 엔드포인트 ID
- DEPLOYED_INDEX_ID: 배포된 색인을 고유하게 식별하기 위해 사용자가 지정한 문자열. 문자로 시작해야 하며 문자, 숫자, 밑줄만 포함할 수 있습니다. 형식 가이드라인은 DeployedIndex.id를 참조하세요.
- DEPLOYED_INDEX_ENDPOINT_NAME: 배포된 색인 엔드포인트의 표시 이름
- INDEX_ID: 색인 ID
- LOCATION: Vertex AI를 사용하는 리전
- PROJECT_ID: Google Cloud 프로젝트 ID
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID \ --deployed-index-id=DEPLOYED_INDEX_ID \ --display-name=DEPLOYED_INDEX_ENDPOINT_NAME \ --index=INDEX_ID \ --region=LOCATION \ --project=PROJECT_ID
Windows(PowerShell)
gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID ` --deployed-index-id=DEPLOYED_INDEX_ID ` --display-name=DEPLOYED_INDEX_ENDPOINT_NAME ` --index=INDEX_ID ` --region=LOCATION ` --project=PROJECT_ID
Windows(cmd.exe)
gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID ^ --deployed-index-id=DEPLOYED_INDEX_ID ^ --display-name=DEPLOYED_INDEX_ENDPOINT_NAME ^ --index=INDEX_ID ^ --region=LOCATION ^ --project=PROJECT_ID
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- INDEX_ENDPOINT_ID: 색인 엔드포인트 ID
- DEPLOYED_INDEX_ID: 배포된 색인을 고유하게 식별하기 위해 사용자가 지정한 문자열. 문자로 시작해야 하며 문자, 숫자, 밑줄만 포함할 수 있습니다. 형식 가이드라인은 DeployedIndex.id를 참조하세요.
- DEPLOYED_INDEX_ENDPOINT_NAME: 배포된 색인 엔드포인트의 표시 이름
- INDEX_ID: 색인 ID
- LOCATION: Vertex AI를 사용하는 리전
- PROJECT_ID: Google Cloud 프로젝트 ID
- PROJECT_NUMBER: 프로젝트의 자동으로 생성된 프로젝트 번호
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex
JSON 요청 본문:
{ "deployedIndex": { "id": "DEPLOYED_INDEX_ID", "index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID", "displayName": "DEPLOYED_INDEX_ENDPOINT_NAME" } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployIndexOperationMetadata", "genericMetadata": { "createTime": "2022-10-19T17:53:16.502088Z", "updateTime": "2022-10-19T17:53:16.502088Z" }, "deployedIndexId": "DEPLOYED_INDEX_ID" } }
Terraform
다음 샘플에서는 vertex_ai_index_endpoint_deployed_index
Terraform 리소스를 사용하여 배포된 색인 엔드포인트를 만듭니다.
Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.
Python용 Vertex AI SDK
Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
콘솔
다음 안내를 따라 색인을 배포합니다.
- 콘솔의 Vertex AI 섹션에서 Google Cloud 배포 및 사용 섹션으로 이동합니다. 벡터 검색을 선택합니다.
벡터 검색으로 이동합니다. 활성 색인 목록이 표시됩니다.
- 배포하려는 색인의 이름을 선택합니다. 색인 세부정보 페이지가 열립니다.
- 색인 세부정보 페이지에서 엔드포인트에 배포를 클릭합니다. 색인 배포 패널이 열립니다.
- 표시 이름을 입력합니다. 이 이름은 ID 역할을 하며 업데이트될 수 없습니다.
- 엔드포인트 드롭다운에서 이 색인을 배포할 엔드포인트를 선택합니다. 참고: 색인이 이미 엔드포인트에 배포된 경우 엔드포인트를 사용할 수 없습니다.
- (선택사항): 머신 유형 필드에서 표준 또는 높은 메모리를 선택합니다.
- 선택사항. 자동 확장 사용 설정을 선택하여 워크로드 수요에 따라 노드 수를 자동으로 조절합니다. 자동 확장이 사용 중지된 경우 기본 복제본 수는 2개입니다.
- 배포를 클릭하여 색인을 엔드포인트에 배포합니다. 참고: 배포되는 데 약 30분이 소요됩니다.
VPC 프로젝트에서 전달 규칙 만들기
색인 배포가 완료되면 색인 엔드포인트가 IP 주소 대신 서비스 연결 URI를 반환합니다. 생성된 컴퓨팅 주소를 사용하여 서비스 연결을 타겟팅하는 VPC 프로젝트에 컴퓨팅 주소와 전달 규칙을 만들어야 합니다. 컴퓨팅 주소를 만들려면 다음 예시를 사용합니다.
gcloud compute addresses create ${ADDRESS_NAME:?} \
--region=${REGION:?} \
--subnet=${SUBNET_NAME:?} \
--project=${VPC_PROJECT:?}
생성된 컴퓨팅 주소를 사용하여 서비스 연결 URI를 타겟팅하는 전달 규칙을 만들려면 다음 예시를 사용합니다.
SERVICE_ATTACHMENT_URI=`gcloud ai index-endpoints describe {INDEX_ENDPOINT_ID}
--format="value(deployedIndexes.privateEndpoints.serviceAttachment)"`
gcloud compute forwarding-rules create ${ENDPOINT_NAME:?} \
--network=${NETWORK_NAME:?} \
--address=${ADDRESS_NAME:?} \
--target-service-attachment=${SERVICE_ATTACHMENT_URI:?} \
--project=${VPC_PROJECT:?} \
--region=${REGION:?}
(선택사항) IP 주소에 대해 DNS 레코드 만들기
실제 IP 주소를 기억하지 않고 연결하여 로드하려면 DNS 레코드를 만들면 됩니다. 이 단계는 선택사항입니다.
DNS_NAME_SUFFIX=matchingengine.vertexai.goog. # Don't forget the "." in the end.
DNS_NAME=${INDEX_ENDPOINT_ID:?}.${REGION:?}.${DNS_NAME_SUFFIX:?}
gcloud dns managed-zones create ${DNS_ZONE_NAME:?} \
--dns-name=${DNS_NAME_SUFFIX:?} \
--visibility=private \
--project=${VPC_PROJECT:?} \
--region=${REGION:?}
gcloud dns record-sets create ${DNS_NAME:?} \
--rrdatas=${IP_ADDRESS:?} \
--type=A --ttl=60 \
--zone=${DNS_ZONE_NAME:?} \
--project=${VPC_PROJECT:?} \
--region=${REGION:?}
색인 엔드포인트에 쿼리 전송
이제 Private Service Connect에 엔드포인트를 만들었으므로 쿼리 실행을 시작할 수 있습니다.
색인을 쿼리하려면 색인 쿼리하여 최근접 이웃 가져오기를 참조하세요.
다음 단계
- 색인 업데이트 및 다시 빌드 방법 알아보기
- 색인 엔드포인트 모니터링 방법 알아보기