Eseguire il deployment di Model Garden su un endpoint PSC

1. Introduzione

Sfrutta Private Service Connect per stabilire un accesso sicuro e privato per i modelli di cui è stato eseguito il deployment da Vertex AI Model Garden. Anziché esporre un endpoint pubblico, questo metodo ti consente di eseguire il deployment del modello in un endpoint Vertex AI privato accessibile solo all'interno di Virtual Private Cloud (VPC).

Private Service Connect crea un endpoint con un indirizzo IP interno all'interno del VPC, che si connette direttamente al servizio Vertex AI gestito da Google che ospita il modello. In questo modo, le applicazioni nel tuo VPC e negli ambienti on-premise (tramite Cloud VPN o Interconnect) possono inviare richieste di inferenza utilizzando IP privati. Tutto il traffico di rete rimane sulla rete di Google, il che migliora la sicurezza, riduce la latenza e isola completamente l'endpoint di servizio del modello dalla rete internet pubblica.

4a78228d4197997c.png

Cosa creerai

In questo tutorial, scaricherai Gemma 3 da Model Garden, ospitato in Vertex AI Online Inference come endpoint privato accessibile tramite Private Service Connect. La configurazione end-to-end includerà:

  1. Modello Model Garden: selezionerai Gemma 3 da Vertex AI Model Garden ed eseguirai il deployment in un endpoint Private Service Connect.
  2. Private Service Connect: configurerai un endpoint consumer in Virtual Private Cloud (VPC) costituito da un indirizzo IP interno all'interno della tua rete.
  3. Connessione sicura a Vertex AI: l'endpoint PSC ha come target l'allegato di servizio generato automaticamente da Vertex AI per il deployment del modello privato. In questo modo viene stabilita una connessione privata, garantendo che il traffico tra il VPC e l'endpoint di servizio del modello non attraversi la rete internet pubblica.
  4. Configurazione client all'interno del VPC: configurerai un client (ad es. Compute Engine) all'interno del tuo VPC per inviare richieste di inferenza al modello di cui è stato eseguito il deployment utilizzando l'indirizzo IP interno dell'endpoint PSC.

Alla fine, avrai un esempio funzionale di un modello Model Garden pubblicato in modalità privata, accessibile solo dall'interno della rete VPC designata.

Obiettivi didattici

In questo tutorial imparerai a eseguire il deployment di un modello da Vertex AI Model Garden e a renderlo accessibile in modo sicuro dalla tua Virtual Private Cloud (VPC) utilizzando Private Service Connect (PSC). Questo metodo consente alle tue applicazioni all'interno del VPC (il consumer) di connettersi privatamente all'endpoint del modello Vertex AI (il servizio producer) senza attraversare la rete internet pubblica.

Nello specifico, imparerai:

  1. Informazioni su PSC per Vertex AI: come PSC consente connessioni private e sicure da consumer a producer. Il tuo VPC può accedere al modello Model Garden di cui è stato eseguito il deployment utilizzando indirizzi IP interni.
  2. Deployment di un modello con accesso privato: come configurare un endpoint Vertex AI per il modello Model Garden in modo che utilizzi PSC, rendendolo un endpoint privato.
  3. Il ruolo del collegamento al servizio: quando esegui il deployment di un modello in un endpoint Vertex AI privato, Google Cloud crea automaticamente un collegamento al servizio in un progetto tenant gestito da Google. Questo collegamento del servizio espone il servizio di pubblicazione del modello alle reti consumer.
  4. Creazione di un endpoint PSC nel tuo VPC:
  • Come ottenere l'URI dell'allegato di servizio univoco dai dettagli dell'endpoint Vertex AI di cui hai eseguito il deployment.
  • Come prenotare un indirizzo IP interno all'interno della subnet scelta nel VPC.
  • Come creare una regola di forwarding nel VPC che funge da endpoint PSC, indirizzando il collegamento al servizio Vertex AI. Questo endpoint rende il modello accessibile tramite l'IP interno riservato.
  1. Stabilire la connettività privata: in che modo l'endpoint PSC nel tuo VPC si connette al collegamento al servizio, collegando la tua rete al servizio Vertex AI in modo sicuro.
  2. Invio privato di richieste di inferenza: come inviare richieste di previsione da risorse (come le VM Compute Engine) all'interno della tua rete VPC all'indirizzo IP interno dell'endpoint PSC.
  3. Convalida: passaggi per testare e confermare che puoi inviare correttamente richieste di inferenza dal tuo VPC al modello Model Garden di cui è stato eseguito il deployment tramite la connessione privata.

In questo modo, potrai ospitare modelli di Model Garden raggiungibili solo dalla tua infrastruttura di rete privata.

Che cosa ti serve

Progetto Google Cloud

Autorizzazioni IAM

2. Prima di iniziare

Aggiorna il progetto per supportare il tutorial

Questo tutorial utilizza le variabili $per facilitare l'implementazione della configurazione di gcloud in Cloud Shell.

In Cloud Shell, esegui le seguenti operazioni:

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

Abilitazione dell'API

In Cloud Shell, esegui le seguenti operazioni:

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

3. Esegui il deployment del modello

Segui i passaggi riportati di seguito per eseguire il deployment del modello da Model Garden

Nella console Google Cloud, vai a Model Garden, cerca e seleziona Gemma 3.

10c7ce35cfc571dc.png

Fai clic su Opzioni di deployment e seleziona Vertex AI.

ed9280fcc5f4c3fa.png

Nel riquadro Esegui il deployment su Vertex AI, seleziona Avanzate. La regione e le specifiche della macchina precompilate vengono selezionate in base alla capacità disponibile. Puoi modificare questi valori, anche se il codelab è personalizzato per us-central1.

3f7e4cefdc06488a.png

Nel riquadro Esegui il deployment su Vertex AI, assicurati che l'accesso all'endpoint sia configurato come Private Service Connect, quindi seleziona il tuo progetto.

d0f0d9bc49205fb3.png

Lascia invariate tutte le impostazioni predefinite per le altre opzioni, quindi seleziona Implementa in basso e controlla le notifiche per lo stato dell'implementazione.

9bd3b10256b7b2cc.png

In Model Garden, seleziona la regione us-central1, che fornisce il modello e l'endpoint Gemma 3. Il deployment del modello richiede circa 5 minuti.

e998ee6288a8a7a.png

Tra 30 minuti, l'endpoint passerà allo stato "Attivo" al termine dell'operazione

9dcc7c56dbe0e88a.png

Ottieni e annota l'ID endpoint selezionando l'endpoint.

6e3e2feef82fadd5.png

Apri Cloud Shell ed esegui le seguenti operazioni per ottenere l'URI del collegamento al servizio Private Service Connect. Questa stringa URI viene utilizzata dal consumer quando viene implementato un endpoint consumer PSC.

In Cloud Shell, aggiorna l'ID endpoint, quindi esegui il comando seguente.

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

Di seguito è riportato un esempio:

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

Copia i contenuti dopo serviceAttachment in una variabile denominata "Service_attachment", ti servirà in un secondo momento per creare la connessione PSC.

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

4. Configurazione consumatore

Crea il VPC consumer

In Cloud Shell, esegui le seguenti operazioni:

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

Crea la subnet della VM consumer

In Cloud Shell, esegui le seguenti operazioni:

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

Crea la subnet dell'endpoint PSC

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

5. Abilitare IAP

Per consentire a IAP di connettersi alle tue istanze VM, crea una regola firewall che:

  • Si applichi a tutte le istanze VM a cui vuoi accedere tramite IAP.
  • Consente il traffico in entrata dall'intervallo IP 35.235.240.0/20. Questo intervallo contiene tutti gli indirizzi IP che utilizzati da IAP per l'inoltro TCP.

In Cloud Shell, crea la regola firewall IAP.

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

6. Crea istanze VM consumer

In Cloud Shell, crea l'istanza VM consumer, 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. Endpoint di Private Service Connect

Il consumer crea un endpoint consumer (regola di forwarding) con un indirizzo IP interno all'interno del VPC. Questo endpoint PSC ha come target il collegamento del servizio del producer. I client all'interno della rete VPC consumer o ibrida possono inviare traffico a questo indirizzo IP interno per raggiungere il servizio del producer.

Prenota un indirizzo IP per l'endpoint consumer.

In Cloud Shell, crea la regola di forwarding.

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

Verifica che l'indirizzo IP sia riservato

In Cloud Shell, elenca l'indirizzo IP prenotato.

gcloud compute addresses list 

Dovresti vedere l'indirizzo IP 10.10.10.6 riservato.

edb5661bea25cd14.png

Crea l'endpoint consumer specificando l'URI del collegamento al servizio, target-service-attachment, che hai acquisito nel passaggio precedente, sezione Deploy Model.

In Cloud Shell, descrivi il collegamento di rete.

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

Verifica che l'allegato del servizio accetti l'endpoint

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

Nella risposta, verifica che nel campo pscConnectionStatus venga visualizzato lo stato "ACCEPTED".

6c66347ede9d4c7d.png

8. Test dalla VM consumer

In Cloud Shell, esegui i seguenti passaggi per fornire l'accesso alla VM consumer per accedere all'API Vertex Model Garden

Accedere tramite SSH alla VM consumer

f0984d9e60530cb2.png

Esegui nuovamente l'autenticazione con le credenziali predefinite dell'applicazione e specifica gli ambiti di Vertex AI.

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

Utilizza la tabella seguente per generare un comando CURL, modificandolo in base al tuo ambiente

Attributo

Valore

Protocollo

HTTP

Località

us-central1

Endpoint di previsione online

2133539641536544768

ID progetto

test4-473419

Modello

gemma-3-12b-it

IP endpoint Private Service Connect

10.10.10.6

Messaggi

[{"role": "user","content": "Cosa pesa di più, un chilo di piume o di sassi?"}]

Aggiorna ed esegui il comando curl in base ai dettagli dei tuoi ambienti:

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

Esempio:

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

RISULTATO FINALE: RIUSCITO!!!

Il risultato che dovresti vedere è la previsione di Gemma 3 in fondo all'output, il che dimostra che sei riuscito a raggiungere l'endpoint API in privato tramite l'endpoint 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. Esegui la pulizia

Da Cloud Shell, elimina i componenti del 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. Complimenti

Congratulazioni, hai configurato e convalidato correttamente l'accesso privato all'API Gemma 3 ospitata su Vertex AI Prediction utilizzando un endpoint Private Service Connect.

Hai creato l'infrastruttura consumer, inclusa la prenotazione di un indirizzo IP interno e la configurazione di un endpoint Private Service Connect (una regola di forwarding) all'interno del VPC. Questo endpoint si connette in modo sicuro al servizio Vertex AI scegliendo il collegamento del servizio associato al modello Gemma 3 di cui è stato eseguito il deployment. Questa configurazione consente alle tue applicazioni all'interno del VPC o delle reti connesse di interagire con l'API Gemma 3 in modo privato e sicuro, utilizzando un indirizzo IP interno, senza richiedere che il traffico attraversi la rete internet pubblica.

Ulteriori letture e video

Documenti di riferimento