Implantar o Model Garden em um endpoint do PSC

1. Introdução

Aproveite o Private Service Connect para estabelecer acesso particular e seguro 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 o 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 veiculação do modelo da Internet pública.

4a78228d4197997c.png

O que você vai criar

Neste tutorial, você vai fazer o download do 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 do consumidor na sua nuvem privada virtual (VPC) que consiste em 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 a implantação do modelo particular. Isso estabelece uma conexão particular, garantindo que o tráfego entre a VPC e o endpoint de disponibilização do modelo não passe pela Internet pública.
  4. Configuração do cliente na VPC: você vai configurar um cliente (por exemplo, uma VM do Compute Engine) na 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 veiculado de forma particular, 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 os aplicativos na sua VPC (o consumidor) se conectem de forma particular ao endpoint do modelo da Vertex AI (o serviço do produtor) sem passar pela Internet pública.

Especificamente, você vai aprender:

  1. Como o PSC funciona na Vertex AI: como o PSC permite conexões particulares e seguras entre consumidor e produtor. Sua VPC pode acessar o modelo implantado do Model Garden usando endereços IP internos.
  2. Como implantar um modelo com acesso particular: como configurar um endpoint da Vertex AI para que o modelo do Model Garden use o PSC, tornando-o um endpoint particular.
  3. O papel do anexo de serviço: quando você implanta um modelo em um endpoint particular da Vertex AI, o Google Cloud cria automaticamente um anexo de serviço em um projeto de locatário gerenciado pelo Google. Este anexo de serviço expõe o serviço de disponibilização do modelo às redes de consumidores.
  4. Como criar um endpoint do PSC na sua VPC:
  • Como receber o URI exclusivo do anexo de serviço nos detalhes do endpoint implantado da Vertex AI.
  • Como reservar um endereço IP interno na sub-rede escolhida na sua 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. Como estabelecer conectividade particular: como o endpoint do PSC na sua VPC se conecta ao anexo de serviço, fazendo a ponte entre sua rede e o serviço da Vertex AI com segurança.
  2. Como enviar solicitações de inferência de forma particular: 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 você pode enviar solicitações de inferência da sua VPC para o modelo implantado do Model Garden pela conexão particular.

Ao concluir esse processo, 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 o 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, embora o codelab seja personalizado 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 as 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 fazer a transição para "Ativo" após a conclusão.

9dcc7c56dbe0e88a.png

Obtenha e anote o ID do endpoint selecionando o endpoint.

6e3e2feef82fadd5.png

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

No Cloud Shell, atualize o ID do endpoint e emita 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 da VM, crie uma regra de firewall que:

  • Se aplica a todas as instâncias de VM que você quer que sejam acessíveis 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 segmenta 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 para 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

Verificar 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 precisa estar 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, na 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

Verificar 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 um status "ACEITO" aparece no campo pscConnectionStatus.

6c66347ede9d4c7d.png

8. Testar na VM do consumidor

No Cloud Shell, siga estas etapas para conceder acesso à VM do consumidor para acessar a API do Model Garden da Vertex.

Conecte-se por SSH à VM do consumidor

f0984d9e60530cb2.png

Faça a autenticação novamente 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. 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": "What weighs more 1 pound of feathers or rocks?"}]

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ê precisa ver é a previsão do Gemma 3 na parte de baixo da saída. Isso mostra que você conseguiu acessar o endpoint de API de forma particular 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. Liberar espaço

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 previsão da Vertex AI 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 os aplicativos na VPC ou nas redes conectadas interajam com a API Gemma 3 de forma particular e segura, usando um endereço IP interno, sem exigir que o tráfego passe pela Internet pública.

Leituras e vídeos adicionais

Documentos de referência