Déployer Model Garden sur un point de terminaison PSC

1. Introduction

Utilisez Private Service Connect pour établir un accès privé et sécurisé aux modèles déployés depuis 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 vos environnements VPC et sur site (via Cloud VPN ou Interconnect) d'envoyer des requêtes d'inférence à l'aide d'adresses IP privées. L'ensemble du trafic réseau reste sur le réseau de Google, ce qui renforce 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

Ce que vous allez faire

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 inclura les éléments suivants :

  1. Modèle Model Garden : vous allez sélectionner Gemma 3 dans Vertex AI Model Garden et le déployer 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 allez configurer un client (par exemple, 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 ce tutoriel, vous disposerez d'un exemple fonctionnel de modèle Model Garden diffusé de manière privée et accessible uniquement depuis votre réseau VPC désigné.

Points abordés

Dans ce tutoriel, vous allez apprendre à déployer un modèle depuis 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 au sein de votre VPC (le consommateur) de se connecter de manière privée au point de terminaison du modèle Vertex AI (le service de production) sans transiter par l'Internet public.

Plus précisément, vous allez apprendre à :

  1. Comprendre PSC pour Vertex AI : comment PSC permet des connexions privées et sécurisées entre les clients et les producteurs. 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é : découvrez 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 de modèle aux réseaux consommateurs.
  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é.
  • Découvrez 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 sert 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 de manière privée : découvrez comment envoyer des requêtes de prédiction à partir de ressources (comme des VM Compute Engine) dans votre VPC vers 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 depuis votre VPC vers le modèle Model Garden déployé via la connexion privée.

Vous pourrez ainsi héberger des modèles Model Garden qui ne sont accessibles que depuis votre infrastructure réseau privée.

Prérequis

Projet Google Cloud

Autorisations IAM

2. Avant de commencer

Mettre à jour le projet pour prendre en charge 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 depuis 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, mais l'atelier de programmation est 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 les valeurs par défaut pour les autres options, puis sélectionnez "Déployer" en bas de l'écran 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

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

9dcc7c56dbe0e88a.png

Obtenez et notez l'ID du point de terminaison 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 URI est utilisée par le consommateur lors du déploiement d'un point de terminaison consommateur 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 plus tard pour créer la connexion PSC.

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

4. Configuration du client

Créer le VPC consommateur

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 VM consommateur

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 auxquelles vous souhaitez être accessible à l'aide d'IAP.
  • Autorise le trafic entrant à partir de la plage d'adresses IP 35.235.240.0/20. Cette plage 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 consommateur

Dans Cloud Shell, créez l'instance de VM du consommateur, 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 réseau VPC ou hybride du consommateur peuvent envoyer du trafic vers cette adresse IP interne pour accéder au service du producteur.

Réservez une adresse IP pour le point de terminaison consommateur.

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érifiez que l'adresse IP est réservée.

Dans Cloud Shell, listez 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 du consommateur 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 de 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érifiez 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 qu'un état "ACCEPTED" (ACCEPTÉ) s'affiche dans le champ pscConnectionStatus.

6c66347ede9d4c7d.png

8. Tester à partir de la VM consommateur

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

Se connecter en SSH à la VM Consumer

f0984d9e60530cb2.png

Réauthentifiez-vous avec les 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 CURL, en l'ajustant 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": "Qu'est-ce qui pèse le plus : un kilo de plumes ou un kilo de pierres ?"}]

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 accéder au point de terminaison de l'API de manière privée 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 du consommateur, y compris en réservant une adresse IP interne et en configurant un point de terminaison Private Service Connect (une 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 au sein 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 et vidéos complémentaires

Documents de référence