Развертывание Model Garden на конечной точке PSC

1. Введение

Используйте Private Service Connect для обеспечения безопасного и приватного доступа к моделям, развернутым из Vertex AI Model Garden. Вместо предоставления доступа к общедоступной конечной точке этот метод позволяет развернуть вашу модель на частной конечной точке Vertex AI, доступной только внутри вашей виртуальной частной сети (VPC).

Private Service Connect создает конечную точку с внутренним IP-адресом внутри вашей VPC, которая напрямую подключается к управляемому Google сервису Vertex AI, на котором размещена ваша модель. Это позволяет приложениям в вашей VPC и локальных средах (через Cloud VPN или Interconnect) отправлять запросы на вывод данных, используя частные IP-адреса. Весь сетевой трафик остается в сети Google, что повышает безопасность, снижает задержку и полностью изолирует конечную точку обслуживания вашей модели от общедоступного интернета.

4a78228d4197997c.png

Что вы построите

В этом руководстве вы загрузите Gemma 3 из Model Garden, размещенную в Vertex AI Online Inference в качестве частной конечной точки, доступной через Private Service Connect. Ваша комплексная настройка будет включать в себя:

  1. Модель сада моделей: Вам нужно будет выбрать модель Gemma 3 из сада моделей Vertex AI и развернуть ее на конечной точке Private Service Connect.
  2. Подключение к частной службе: Вам потребуется настроить конечную точку потребителя в вашей виртуальной частной сети (VPC), используя внутренний IP-адрес в вашей собственной сети.
  3. Защищенное соединение с Vertex AI: конечная точка PSC будет использовать автоматически сгенерированное Vertex AI соединение Service Attachment для развертывания вашей частной модели. Это устанавливает частное соединение, гарантируя, что трафик между вашей VPC и конечной точкой, обслуживающей модель, не будет проходить через общедоступный интернет.
  4. Настройка клиента в вашей VPC: Вам потребуется настроить клиент (например, виртуальную машину Compute Engine) в вашей VPC для отправки запросов на вывод результатов развернутой модели, используя внутренний IP-адрес конечной точки PSC.

В итоге у вас будет функциональный пример модели сада-модели, работающей в приватном режиме и доступной только из вашей выделенной сети VPC.

Что вы узнаете

В этом руководстве вы узнаете, как развернуть модель из Vertex AI Model Garden и обеспечить к ней безопасный доступ из вашей виртуальной частной сети (VPC) с помощью Private Service Connect (PSC). Этот метод позволяет вашим приложениям внутри вашей VPC (потребителю) подключаться к конечной точке модели Vertex AI (сервису-производителю) в частном порядке, минуя общедоступный интернет.

В частности, вы узнаете:

  1. Понимание PSC для Vertex AI: как PSC обеспечивает частные и безопасные соединения между потребителем и производителем. Ваша VPC может получить доступ к развернутой модели Model Garden, используя внутренние IP-адреса.
  2. Развертывание модели с приватным доступом: как настроить конечную точку Vertex AI для вашей модели Model Garden, чтобы использовать PSC, сделав ее приватной конечной точкой.
  3. Роль сервисного подключения: При развертывании модели на частной конечной точке Vertex AI Google Cloud автоматически создает сервисное подключение в проекте, управляемом Google. Это сервисное подключение предоставляет доступ к сервису обслуживания модели для сетей потребителей.
  4. Создание конечной точки PSC в вашей VPC:
  • Как получить уникальный URI подключения сервиса из сведений о развернутой конечной точке Vertex AI.
  • Как зарезервировать внутренний IP-адрес в выбранной подсети вашей VPC.
  • Как создать правило переадресации в вашей VPC, которое будет выступать в качестве конечной точки PSC, ориентированной на подключение к сервису Vertex AI. Эта конечная точка делает модель доступной через зарезервированный внутренний IP-адрес.
  1. Установление частного соединения: как конечная точка PSC в вашей VPC подключается к сервисному соединению, обеспечивая безопасное соединение вашей сети с сервисом Vertex AI.
  2. Отправка запросов на вывод результатов в приватном режиме: как отправлять запросы на прогнозирование от ресурсов (например, виртуальных машин Compute Engine) внутри вашей VPC на внутренний IP-адрес конечной точки PSC.
  3. Проверка: Шаги для тестирования и подтверждения возможности успешной отправки запросов на вывод данных из вашей VPC к развернутой модели Model Garden через частное соединение.

Выполнив это, вы сможете размещать модели из Model Garden, доступ к которым будет возможен только из вашей частной сети.

Что вам понадобится

Проект Google Cloud

Разрешения IAM

2. Прежде чем начать

Обновите проект, чтобы он соответствовал учебному пособию.

В этом руководстве переменные `$variables` используются для упрощения настройки gcloud в Cloud Shell.

Внутри Cloud Shell выполните следующие действия:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid

Включение API

Внутри Cloud Shell выполните следующие действия:

gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"

3. Модель развертывания

Выполните следующие шаги, чтобы развернуть свою модель из Model Garden.

В консоли Google Cloud перейдите в раздел Model Garden , найдите и выберите Gemma 3.

10c7ce35cfc571dc.png

Нажмите «Параметры развертывания» и выберите Vertex AI.

ed9280fcc5f4c3fa.png

В панели «Развертывание на Vertex AI» выберите «Дополнительно». Предварительно заполненные регион и характеристики машины выбираются на основе доступной мощности. Вы можете изменить эти значения, хотя данный учебный материал разработан специально для региона us-central1.

3f7e4cefdc06488a.png

В панели «Развертывание на Vertex AI» убедитесь, что для параметра «Доступ к конечной точке» выбран режим «Частное подключение к службе», а затем выберите свой проект.

d0f0d9bc49205fb3.png

Оставьте все остальные параметры по умолчанию, затем выберите «Развернуть» внизу и проверьте уведомления о статусе развертывания.

9bd3b10256b7b2cc.png

В разделе «Сад моделей» выберите регион us-central1, который предоставляет модель и конечную точку Gemma 3. Развертывание модели занимает приблизительно 5 минут.

e998ee6288a8a7a.png

Через 30 минут после завершения процесса конечная точка перейдет в состояние "Активно".

9dcc7c56dbe0e88a.png

Получите и запишите идентификатор конечной точки, выбрав её.

6e3e2feef82fadd5.png

Откройте Cloud Shell и выполните следующие действия, чтобы получить URI подключения к службе Private Service Connect. Эта строка URI используется потребителем при развертывании конечной точки потребителя PSC.

Внутри Cloud Shell обновите идентификатор конечной точки, а затем выполните следующую команду.

gcloud ai endpoints describe [Endpoint ID] --region=us-central1  | grep -i serviceAttachment:

Ниже приведён пример:

user@cloudshell:$ gcloud ai endpoints describe 2124795225560842240 --region=us-central1 | grep -i serviceAttachment:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
    serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

Скопируйте содержимое после строки serviceAttachment в переменную с именем "Service_attachment"; она понадобится вам позже при создании подключения PSC.

user@cloudshell:$ Service_attachment=projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

4. Настройка потребителя

Создайте потребительскую VPC.

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom

Создайте подсеть виртуальных машин для потребителей.

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=us-central1 --enable-private-ip-google-access

Создайте подсеть конечных точек PSC.

gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1

5. Включите встроенные покупки (IAP).

Чтобы разрешить IAP подключаться к вашим виртуальным машинам, создайте правило брандмауэра, которое:

  • Применяется ко всем экземплярам виртуальных машин, к которым вы хотите обеспечить доступ с помощью IAP.
  • Разрешает входящий трафик из диапазона IP-адресов 35.235.240.0/20. Этот диапазон содержит все IP-адреса, которые IAP использует для пересылки TCP-трафика.

Внутри Cloud Shell создайте правило брандмауэра IAP.

gcloud compute firewall-rules create ssh-iap-consumer \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

6. Создайте экземпляры виртуальных машин для потребителей.

Внутри Cloud Shell создайте экземпляр виртуальной машины потребителя, consumer-vm.

gcloud compute instances create consumer-vm \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --shielded-secure-boot \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=consumer-vm-subnet 

7. Конечные точки подключения частных сервисов

Потребитель создает конечную точку потребителя (правило переадресации) с внутренним IP-адресом в пределах своей VPC. Эта конечная точка PSC нацелена на подключение к сервису производителя. Клиенты в VPC потребителя или гибридной сети могут отправлять трафик на этот внутренний IP-адрес для доступа к сервису производителя.

Зарезервировать IP-адрес для конечной точки потребителя.

Внутри Cloud Shell создайте правило переадресации.

gcloud compute addresses create psc-address \
    --project=$projectid \
    --region=us-central1 \
    --subnet=pscendpoint-subnet \
    --addresses=10.10.10.6

Убедитесь, что IP-адрес зарезервирован.

Внутри Cloud Shell выведите список зарезервированных IP-адресов.

gcloud compute addresses list 

Вы должны увидеть зарезервированный IP-адрес 10.10.10.6.

edb5661bea25cd14.png

Создайте конечную точку потребителя, указав URI подключения службы, target-service-attachment, который вы получили на предыдущем шаге в разделе «Развертывание модели».

Внутри Cloud Shell опишите сетевое подключение.

 gcloud compute forwarding-rules create psc-consumer-ep \
    --network=consumer-vpc \
    --address=psc-address \
    --region=us-central1 \
    --target-service-attachment=$Service_attachment \
    --project=$projectid

Убедитесь, что подключение к сервису принимает указанную конечную точку.

gcloud compute forwarding-rules describe psc-consumer-ep \
    --project=$projectid \
    --region=us-central1 \

В ответе убедитесь, что в поле pscConnectionStatus отображается статус "ACCEPTED".

6c66347ede9d4c7d.png

8. Тестирование с виртуальной машины потребителя.

В Cloud Shell выполните следующие действия, чтобы предоставить виртуальной машине-потребителю доступ к API Vertex Model Garden.

Подключение по SSH к виртуальной машине потребителя.

f0984d9e60530cb2.png

Повторно аутентифицируйтесь с использованием учетных данных приложения по умолчанию и укажите области действия Vertex AI.

gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform 

Используйте приведенную ниже таблицу для генерации команды CURLl, адаптируйте ее в соответствии с вашей средой.

Атрибут

Ценить

Протокол

HTTP

Расположение

us-central1

Конечная точка онлайн-прогнозирования

2133539641536544768

Идентификатор проекта

тест4-473419

Модель

gemma-3-12b-it

IP-адрес конечной точки Private Service Connect

10.10.10.6

Сообщения

[{"role": "user","content": "Что весит больше — 1 фунт перьев или камней?"}]

Обновите и выполните команду curl в соответствии с данными вашей среды:

curl -k -v -X POST   -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json"   http://[PSC-IP]/v1/projects/[Project-ID]/locations/us-central1/endpoints/[Predictions Endpoint]/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

Пример:

curl -k -v -X POST   -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json"   http://10.10.10.6/v1/projects/test4-473419/locations/us-central1/endpoints/2133539641536544768/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

ОКОНЧАТЕЛЬНЫЙ РЕЗУЛЬТАТ - УСПЕХ!!!

В нижней части вывода вы должны увидеть предсказание от Gemma 3, это означает, что вам удалось получить доступ к конечной точке API в приватном режиме через конечную точку PSC.

 Connection #0 to host 10.10.10.6 left intact
{"id":"chatcmpl-9e941821-65b3-44e4-876c-37d81baf62e0","object":"chat.completion","created":1759009221,"model":"google/gemma-3-12b-it","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"This is a classic trick question! They weigh the same. One pound is one pound, regardless of the material. 😊\n\n\n\n","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":106}],"usage":{"prompt_tokens":20,"total_tokens":46,"completion_tokens":26,"prompt_tokens_details":null},"prompt_logprobs":null

9. Уборка

В Cloud Shell удалите компоненты учебного пособия.

gcloud ai endpoints undeploy-model ENDPOINT_ID --deployed-model-id=DEPLOYED_MODEL_ID --region=us-central1 --quiet

gcloud ai endpoints delete $ENDPOINT_ID --project=$projectid --region=us-central1 --quiet

gcloud ai models delete $MODEL_ID --project=$projectid --region=us-central1 --quiet

gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-ep --region=us-central1 --project=$projectid --quiet

gcloud compute addresses delete psc-address --region=us-central1 --project=$projectid --quiet

gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid

gcloud compute networks delete consumer-vpc --project=$projectid --quiet

gcloud projects delete $projectid --quiet

10. Поздравляем!

Поздравляем, вы успешно настроили и подтвердили частный доступ к API Gemma 3, размещенному на платформе Vertex AI Prediction, используя конечную точку Private Service Connect.

Вы создали инфраструктуру для потребителей, включая резервирование внутреннего IP-адреса и настройку частной конечной точки подключения к сервису (правила переадресации) в вашей VPC. Эта конечная точка безопасно подключается к сервису Vertex AI, используя в качестве целевого адреса сервисное подключение, связанное с вашей развернутой моделью Gemma 3. Такая настройка позволяет вашим приложениям в VPC или подключенных сетях взаимодействовать с API Gemma 3 конфиденциально и безопасно, используя внутренний IP-адрес, без необходимости передачи трафика через общедоступный интернет.

Дополнительная литература и видеоматериалы

Справочная документация