Déployer Model Garden sur un point de terminaison PSC

1. Introduction

Tirez parti de Private Service Connect pour établir un accès privé et sécurisé aux modèles déployés à partir de Vertex AI Model Garden. Au lieu d'exposer un point de terminaison public, cette méthode vous permet de déployer votre modèle sur un point de terminaison Vertex AI privé accessible uniquement dans votre cloud privé virtuel (VPC).

Private Service Connect crée un point de terminaison avec une adresse IP interne dans votre VPC, qui se connecte directement au service Vertex AI géré par Google qui héberge votre modèle. Cela permet aux applications de votre VPC et de vos environnements sur site (via Cloud VPN ou Interconnect) d'envoyer des requêtes d'inférence à l'aide d'adresses IP privées. Tout le trafic réseau reste sur le réseau de Google, ce qui améliore la sécurité, réduit la latence et isole complètement le point de terminaison de diffusion de votre modèle de l'Internet public.

4a78228d4197997c.png

Objectifs de l'atelier

Dans ce tutoriel, vous allez télécharger Gemma 3 depuis Model Garden, hébergé dans Vertex AI Online Inference en tant que point de terminaison privé accessible via Private Service Connect. Votre configuration de bout en bout comprendra les éléments suivants :

  1. Modèle Model Garden : vous sélectionnerez Gemma 3 dans Vertex AI Model Garden et le déploierez sur un point de terminaison Private Service Connect.
  2. Private Service Connect : vous configurerez un point de terminaison client dans votre cloud privé virtuel (VPC) composé d'une adresse IP interne dans votre propre réseau.
  3. Connexion sécurisée à Vertex AI : le point de terminaison PSC ciblera le rattachement de service généré automatiquement par Vertex AI pour le déploiement de votre modèle privé. Cela établit une connexion privée, garantissant que le trafic entre votre VPC et le point de terminaison de diffusion du modèle ne transite pas par l'Internet public.
  4. Configuration du client dans votre VPC : vous configurerez un client (par exemple, une VM Compute Engine) dans votre VPC pour envoyer des requêtes d'inférence au modèle déployé à l'aide de l'adresse IP interne du point de terminaison PSC.

À la fin de cet atelier, vous disposerez d'un exemple fonctionnel d'un modèle Model Garden diffusé en mode privé, accessible uniquement depuis votre réseau VPC désigné.

Points abordés

Dans ce tutoriel, vous apprendrez à déployer un modèle à partir de Vertex AI Model Garden et à le rendre accessible de manière sécurisée depuis votre cloud privé virtuel (VPC) à l'aide de Private Service Connect (PSC). Cette méthode permet à vos applications de votre VPC (le client) de se connecter en mode privé au point de terminaison du modèle Vertex AI (le service producteur) sans transiter par l'Internet public.

Plus précisément, vous apprendrez à :

  1. Comprendre PSC pour Vertex AI : comment PSC permet des connexions privées et sécurisées entre le client et le producteur. Votre VPC peut accéder au modèle Model Garden déployé à l'aide d'adresses IP internes.
  2. Déployer un modèle avec accès privé : comment configurer un point de terminaison Vertex AI pour que votre modèle Model Garden utilise PSC, ce qui en fait un point de terminaison privé.
  3. Rôle du rattachement de service : lorsque vous déployez un modèle sur un point de terminaison Vertex AI privé, Google Cloud crée automatiquement un rattachement de service dans un projet locataire géré par Google. Ce rattachement de service expose le service de diffusion du modèle aux réseaux clients.
  4. Créer un point de terminaison PSC dans votre VPC :
  • Comment obtenir l'URI unique du rattachement de service à partir des détails de votre point de terminaison Vertex AI déployé.
  • Comment réserver une adresse IP interne dans le sous-réseau de votre choix dans votre VPC.
  • Comment créer une règle de transfert dans votre VPC qui fait office de point de terminaison PSC, en ciblant le rattachement de service Vertex AI. Ce point de terminaison rend le modèle accessible via l'adresse IP interne réservée.
  1. Établir une connectivité privée : comment le point de terminaison PSC de votre VPC se connecte au rattachement de service, en reliant votre réseau au service Vertex AI de manière sécurisée.
  2. Envoyer des requêtes d'inférence en mode privé : comment envoyer des requêtes de prédiction à partir de ressources (telles que des VM Compute Engine) de votre VPC à l'adresse IP interne du point de terminaison PSC.
  3. Validation : étapes à suivre pour tester et confirmer que vous pouvez envoyer des requêtes d'inférence de votre VPC au modèle Model Garden déployé via la connexion privée.

Une fois cette procédure terminée, vous pourrez héberger des modèles à partir de Model Garden qui ne sont accessibles que depuis votre infrastructure de réseau privé.

Ce dont vous avez besoin

Projet Google Cloud

Autorisations IAM

2. Avant de commencer

Mettre à jour le projet pour qu'il soit compatible avec le tutoriel

Ce tutoriel utilise des $variables pour faciliter l'implémentation de la configuration gcloud dans Cloud Shell.

Dans Cloud Shell, procédez comme suit :

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

Activation de l'API

Dans Cloud Shell, procédez comme suit :

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

3. Déployer le modèle

Suivez les étapes ci-dessous pour déployer votre modèle à partir de Model Garden.

Dans la console Google Cloud, accédez à Model Garden, puis recherchez et sélectionnez Gemma 3.

10c7ce35cfc571dc.png

Cliquez sur "Options de déploiement", puis sélectionnez "Vertex AI".

ed9280fcc5f4c3fa.png

Dans le volet "Déployer sur Vertex AI", sélectionnez "Avancé". La région et la spécification de la machine préremplies sont sélectionnées en fonction de la capacité disponible. Vous pouvez modifier ces valeurs, bien que l'atelier de programmation soit conçu pour us-central1.

3f7e4cefdc06488a.png

Dans le volet "Déployer sur Vertex AI", assurez-vous que l'accès au point de terminaison est configuré sur "Private Service Connect", puis sélectionnez votre projet.

d0f0d9bc49205fb3.png

Conservez toutes les valeurs par défaut pour les autres options, puis sélectionnez "Déployer" en bas de la page et vérifiez l'état du déploiement dans vos notifications.

9bd3b10256b7b2cc.png

Dans Model Garden, sélectionnez la région us-central1, qui fournit le modèle et le point de terminaison Gemma 3. Le déploiement du modèle prend environ cinq minutes.

e998ee6288a8a7a.png

Dans 30 minutes, le point de terminaison passera à l'état "Actif" une fois l'opération terminée.

9dcc7c56dbe0e88a.png

Obtenez l'ID du point de terminaison et notez-le en le sélectionnant.

6e3e2feef82fadd5.png

Ouvrez Cloud Shell et procédez comme suit pour obtenir l'URI du rattachement de service Private Service Connect. Cette chaîne d'URI est utilisée par le client lors du déploiement d'un point de terminaison client PSC.

Dans Cloud Shell, mettez à jour l'ID du point de terminaison, puis exécutez la commande suivante.

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

Vous trouverez un exemple ci-dessous. :

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

Copiez le contenu après serviceAttachment dans une variable appelée "Service_attachment". Vous en aurez besoin ultérieurement lors de la création de la connexion PSC.

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

4. Configuration du client

Créer le VPC client

Dans Cloud Shell, procédez comme suit :

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

Créer le sous-réseau de la VM cliente

Dans Cloud Shell, procédez comme suit :

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

Créer le sous-réseau du point de terminaison PSC

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

5. Activer IAP

Pour permettre à IAP de se connecter à vos instances de VM, créez une règle de pare-feu qui :

  • s'applique à toutes les instances de VM que vous souhaitez rendre accessibles à l'aide d'IAP ;
  • autorise le trafic entrant à partir de la plage IP 35.235.240.0/20. qui contient toutes les adresses IP qu'IAP utilise pour le transfert TCP ;

Dans Cloud Shell, créez la règle de pare-feu IAP.

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

6. Créer des instances de VM clientes

Dans Cloud Shell, créez l'instance de VM cliente, 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. Points de terminaison Private Service Connect

Le client crée un point de terminaison client (règle de transfert) avec une adresse IP interne dans son VPC. Ce point de terminaison PSC cible le rattachement de service du producteur. Les clients du VPC client ou du réseau hybride peuvent envoyer du trafic à cette adresse IP interne pour atteindre le service du producteur.

Réserver une adresse IP pour le point de terminaison client.

Dans Cloud Shell, créez la règle de transfert.

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

Vérifier que l'adresse IP est réservée

Dans Cloud Shell, répertoriez l'adresse IP réservée.

gcloud compute addresses list 

L'adresse IP 10.10.10.6 doit être réservée.

edb5661bea25cd14.png

Créez le point de terminaison client en spécifiant l'URI du rattachement de service, target-service-attachment, que vous avez capturé à l'étape précédente, dans la section Déployer le modèle.

Dans Cloud Shell, décrivez le rattachement réseau.

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

Vérifier que le rattachement de service accepte le point de terminaison

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

Dans la réponse, vérifiez que l'état "ACCEPTED" s'affiche dans le champ pscConnectionStatus.

6c66347ede9d4c7d.png

8. Tester à partir de la VM cliente

Dans Cloud Shell, procédez comme suit pour autoriser la VM cliente à accéder à l'API Vertex Model Garden.

Connectez-vous en SSH à la VM cliente.

f0984d9e60530cb2.png

Authentifiez-vous à nouveau à l'aide des identifiants par défaut de l'application et spécifiez les champs d'application Vertex AI.

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

Utilisez le tableau ci-dessous pour générer une commande CURLl et ajustez-la en fonction de votre environnement.

Attribut

Valeur

Protocole

HTTP

Emplacement

us-central1

Point de terminaison de prédiction en ligne

2133539641536544768

ID du projet

test4-473419

Modèle

gemma-3-12b-it

Adresse IP du point de terminaison Private Service Connect

10.10.10.6

Messages

[{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}]

Mettez à jour et exécutez la commande curl en fonction des détails de vos environnements :

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

Exemple :

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

RÉSULTAT FINAL : SUCCÈS !

Le résultat que vous devriez voir est une prédiction de Gemma 3 en bas de la sortie. Cela montre que vous avez pu atteindre le point de terminaison de l'API en mode privé via le point de terminaison 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. Effectuer un nettoyage

Dans Cloud Shell, supprimez les composants du tutoriel.

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. Félicitations

Félicitations ! Vous avez configuré et validé l'accès privé à l'API Gemma 3 hébergée sur Vertex AI Prediction à l'aide d'un point de terminaison Private Service Connect.

Vous avez créé l'infrastructure client, y compris la réservation d'une adresse IP interne et la configuration d'un point de terminaison Private Service Connect (règle de transfert) dans votre VPC. Ce point de terminaison se connecte de manière sécurisée au service Vertex AI en ciblant le rattachement de service associé à votre modèle Gemma 3 déployé. Cette configuration permet à vos applications du VPC ou des réseaux connectés d'interagir avec l'API Gemma 3 de manière privée et sécurisée, à l'aide d'une adresse IP interne, sans que le trafic n'ait à transiter par l'Internet public.

Lectures complémentaires et vidéos

Documents de référence