Implantar o Model Garden em um endpoint do PSC

1. Introdução

Use o Private Service Connect para estabelecer acesso seguro e privado a modelos implantados no Model Garden da Vertex AI. Em vez de expor um endpoint público, esse método permite implantar o modelo em um endpoint particular da Vertex AI acessível apenas na sua nuvem privada virtual (VPC).

O Private Service Connect cria um endpoint com um endereço IP interno na sua VPC, que se conecta diretamente ao serviço da Vertex AI gerenciado pelo Google que hospeda seu modelo. Isso permite que aplicativos na sua VPC e em ambientes locais (via Cloud VPN ou Interconnect) enviem solicitações de inferência usando IPs particulares. Todo o tráfego de rede permanece na rede do Google, o que aumenta a segurança, reduz a latência e isola completamente o endpoint de serviço do modelo da Internet pública.

4a78228d4197997c.png

O que você vai criar

Neste tutorial, você vai baixar o Gemma 3 do Model Garden, hospedado na inferência on-line da Vertex AI como um endpoint particular acessível pelo Private Service Connect. A configuração completa vai incluir:

  1. Modelo do Model Garden: você vai selecionar o Gemma 3 no Model Garden da Vertex AI e implantá-lo em um endpoint do Private Service Connect.
  2. Private Service Connect: você vai configurar um endpoint de consumidor na sua nuvem privada virtual (VPC) com um endereço IP interno na sua própria rede.
  3. Conexão segura com a Vertex AI: o endpoint do PSC vai segmentar o anexo de serviço gerado automaticamente pela Vertex AI para sua implantação de modelo particular. Isso estabelece uma conexão particular, garantindo que o tráfego entre sua VPC e o endpoint de serviço do modelo não passe pela Internet pública.
  4. Configuração do cliente na sua VPC: você vai configurar um cliente (por exemplo, VM do Compute Engine) na sua VPC para enviar solicitações de inferência ao modelo implantado usando o endereço IP interno do endpoint do PSC.

Ao final, você terá um exemplo funcional de um modelo do Model Garden sendo veiculado de forma privada, acessível apenas na rede VPC designada.

O que você vai aprender

Neste tutorial, você vai aprender a implantar um modelo do Model Garden da Vertex AI e torná-lo acessível com segurança na sua nuvem privada virtual (VPC) usando o Private Service Connect (PSC). Esse método permite que seus aplicativos na VPC (o consumidor) se conectem de maneira privada ao endpoint do modelo da Vertex AI (o serviço produtor) sem passar pela Internet pública.

Especificamente, você vai aprender a:

  1. Entenda o PSC para a Vertex AI: como o PSC permite conexões particulares e seguras entre consumidor e produtor. Sua VPC pode acessar o modelo implantado da Model Garden usando endereços IP internos.
  2. Implantação de um modelo com acesso particular: como configurar um endpoint da Vertex AI para que o modelo do Model Garden use o PSC, transformando-o em um endpoint particular.
  3. A função do anexo de serviço: quando você implanta um modelo em um endpoint privado da Vertex AI, o Google Cloud cria automaticamente um anexo de serviço em um projeto de locatário gerenciado pelo Google. Esse anexo de serviço expõe o serviço de veiculação de modelos às redes de consumidores.
  4. Como criar um endpoint do PSC na sua VPC:
  • Como extrair o URI exclusivo do anexo de serviço dos detalhes do endpoint da Vertex AI implantado.
  • Como reservar um endereço IP interno na sub-rede escolhida da VPC.
  • Como criar uma regra de encaminhamento na sua VPC que atua como o endpoint do PSC, segmentando o anexo de serviço da Vertex AI. Esse endpoint torna o modelo acessível pelo IP interno reservado.
  1. Estabelecer conectividade privada: como o endpoint do PSC na sua VPC se conecta ao anexo de serviço, fazendo uma ponte entre sua rede e o serviço do Vertex AI de maneira segura.
  2. Envio particular de solicitações de inferência: como enviar solicitações de previsão de recursos (como VMs do Compute Engine) na sua VPC para o endereço IP interno do endpoint do PSC.
  3. Validação: etapas para testar e confirmar que é possível enviar solicitações de inferência da sua VPC para o modelo implantado do Model Garden usando a conexão particular.

Ao fazer isso, você poderá hospedar modelos do Model Garden que só podem ser acessados na sua infraestrutura de rede particular.

O que é necessário

Projeto do Google Cloud

Permissões do IAM

2. Antes de começar

Atualizar o projeto para oferecer suporte ao tutorial

Este tutorial usa $variables para ajudar na implementação da configuração do gcloud no Cloud Shell.

No Cloud Shell, faça o seguinte:

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

Ativação da API

No Cloud Shell, faça o seguinte:

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

3. Implantar o modelo

Siga as etapas abaixo para implantar seu modelo do Model Garden

No console do Google Cloud, acesse o Model Garden, pesquise e selecione Gemma 3.

10c7ce35cfc571dc.png

Clique em "Opções de implantação" e selecione "Vertex AI".

ed9280fcc5f4c3fa.png

No painel "Implantar na Vertex AI", selecione "Avançado". A região e a especificação da máquina pré-preenchidas são selecionadas com base na capacidade disponível. É possível mudar esses valores, mas o codelab foi criado para us-central1.

3f7e4cefdc06488a.png

No painel "Implantar na Vertex AI", verifique se o acesso ao endpoint está configurado como Private Service Connect e selecione seu projeto.

d0f0d9bc49205fb3.png

Deixe todos os padrões para outras opções e selecione "Implantar" na parte de baixo. Verifique suas notificações para conferir o status da implantação.

9bd3b10256b7b2cc.png

No Model Garden, selecione a região us-central1, que fornece o modelo e o endpoint do Gemma 3. A implantação do modelo leva aproximadamente 5 minutos.

e998ee6288a8a7a.png

Em 30 minutos, o endpoint vai passar para o status "Ativo" quando for concluído.

9dcc7c56dbe0e88a.png

Selecione o endpoint para receber e anotar o ID dele.

6e3e2feef82fadd5.png

Abra o Cloud Shell e faça o seguinte para acessar o URI do anexo de serviço do Private Service Connect. Essa string URI é usada pelo consumidor ao implantar um endpoint de consumidor do PSC.

No Cloud Shell, atualize o ID do endpoint e execute o comando a seguir.

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

Veja um exemplo abaixo:

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

Copie o conteúdo após "serviceAttachment" em uma variável chamada "Service_attachment". Você vai precisar dela mais tarde ao criar a conexão do PSC.

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

4. Configuração do consumidor

Criar a VPC do consumidor

No Cloud Shell, faça o seguinte:

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

Criar a sub-rede da VM do consumidor

No Cloud Shell, faça o seguinte:

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

Criar a sub-rede do endpoint do PSC

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

5. Ativar o IAP

Para permitir que o IAP se conecte às suas instâncias de VM, crie uma regra de firewall que:

  • Aplica-se a todas as instâncias de VM que você quer acessar usando o IAP.
  • Permite o tráfego de entrada do intervalo de IP 35.235.240.0/20. Esse intervalo contém todos os endereços IP que o IAP usa para o encaminhamento de TCP.

No Cloud Shell, crie a regra de firewall do IAP.

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

6. Criar instâncias de VM do consumidor

No Cloud Shell, crie a instância de VM do consumidor, 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. Endpoints do Private Service Connect

O consumidor cria um endpoint do consumidor (regra de encaminhamento) com um endereço IP interno na VPC. Esse endpoint do PSC tem como destino o anexo de serviço do produtor. Os clientes na VPC do consumidor ou na rede híbrida podem enviar tráfego para esse endereço IP interno e acessar o serviço do produtor.

Reserve um endereço IP para o endpoint do consumidor.

No Cloud Shell, crie a regra de encaminhamento.

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

Verifique se o endereço IP está reservado

No Cloud Shell, liste o endereço IP reservado.

gcloud compute addresses list 

O endereço IP 10.10.10.6 vai aparecer reservado.

edb5661bea25cd14.png

Crie o endpoint do consumidor especificando o URI do anexo de serviço, target-service-attachment, que você capturou na etapa anterior, seção "Implantar modelo".

No Cloud Shell, descreva o anexo de rede.

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

Verifique se o anexo de serviço aceita o endpoint

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

Na resposta, verifique se o status "ACCEPTED" aparece no campo "pscConnectionStatus".

6c66347ede9d4c7d.png

8. Teste da VM do consumidor

No Cloud Shell, siga estas etapas para dar acesso à VM do consumidor à API Vertex Model Garden.

SSH na VM do consumidor

f0984d9e60530cb2.png

Reautentique com o Application Default Credentials e especifique os escopos da Vertex AI.

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

Use a tabela abaixo para gerar um comando CURLl e ajuste com base no seu ambiente.

Atributo

Valor

Protocolo

HTTP

Local

us-central1

Endpoint de previsão on-line

2133539641536544768

ID do projeto

test4-473419

Modelo

gemma-3-12b-it

IP do endpoint do Private Service Connect

10.10.10.6

Mensagens

[{"role": "user","content": "O que pesa mais: 1 quilo de penas ou de pedras?"}]

Atualize e execute o comando curl com base nos detalhes dos seus ambientes:

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?"}] }'

Exemplo:

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?"}] }'

RESULTADO FINAL: SUCESSO!!!

O resultado que você vai ver é a previsão da Gemma 3 na parte de baixo da saída. Isso mostra que você conseguiu acessar o endpoint da API de maneira privada pelo endpoint do 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. Limpar

No Cloud Shell, exclua os componentes do tutorial.

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. Parabéns

Parabéns! Você configurou e validou o acesso particular à API Gemma 3 hospedada na Vertex AI Prediction usando um endpoint do Private Service Connect.

Você criou a infraestrutura do consumidor, incluindo a reserva de um endereço IP interno e a configuração de um endpoint do Private Service Connect (uma regra de encaminhamento) na sua VPC. Esse endpoint se conecta com segurança ao serviço da Vertex AI segmentando o anexo de serviço associado ao modelo Gemma 3 implantado. Essa configuração permite que seus aplicativos na VPC ou em redes conectadas interajam com a API Gemma 3 de maneira privada e segura, usando um endereço IP interno, sem exigir que o tráfego passe pela Internet pública.

Leituras e vídeos complementares

Documentos de referência