Les hôtes sur site peuvent accéder à l'IA générative sur Vertex AI via l'Internet public ou de manière privée via une architecture de mise en réseau hybride qui utilise Private Service Connect (PSC) via Cloud VPN ou Cloud Interconnect. Les deux options proposent le chiffrement SSL/TLS. Toutefois, l'option privée offre de bien meilleures performances et est donc recommandée pour les applications critiques.
Dans ce tutoriel, vous allez utiliser un VPN haute disponibilité pour accéder à l'IA générative sur Vertex AI, à la fois publiquement via Cloud NAT et de manière privée entre deux réseaux VPC (cloud privé virtuel), qui peuvent servir de base pour une connectivité privée multicloud et sur site.
Ce tutoriel est destiné aux administrateurs réseau d'entreprise, aux data scientists et aux chercheurs qui connaissent déjà Vertex AI, le VPC, la console Google Cloud et Cloud Shell. Une connaissance de l'IA générative sur Vertex AI est utile, mais pas obligatoire.
Objectifs
- Créez deux réseaux VPC, comme illustré dans le schéma précédent :
- L'un (
onprem-vpc) représente un réseau sur site. - L'autre (
vertex-networking-vpc) permet d'accéder à l'API REST pour l'IA générative sur Vertex AI.
- L'un (
- Déployer des passerelles VPN haute disponibilité, des tunnels Cloud VPN et des routeurs Cloud Router pour connecter
vertex-networking-vpcetonprem-vpc. - Créer un point de terminaison Private Service Connect (PSC) pour transférer les requêtes vers l'API REST GenAI.
- Configurer une route annoncée personnalisée Cloud Router dans
vertex-networking-vpcpour annoncer les routes du point de terminaison Private Service Connect àonprem-vpc. - Créer une instance de VM Compute Engine dans
onprem-vpcpour représenter une application cliente qui envoie des requêtes à l'API REST GenAI via un VPN haute disponibilité
Coûts
Dans ce document, vous utilisez les composants facturables de Google Cloudsuivants :
Vous pouvez obtenir une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, supprimez les ressources que vous avez créées pour éviter que des frais vous soient facturés. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Si vous n'êtes pas le propriétaire du projet, le propriétaire doit vous accorder le rôle IAM
roles/resourcemanager.projectIamAdmin. Vous devez disposer de ce rôle pour accorder des rôles et des autorisations IAM à vous-même ainsi qu'à des comptes de service. - Ouvrez Cloud Shell pour exécuter les commandes répertoriées dans ce tutoriel. Cloud Shell est un environnement shell interactif pour Google Cloud qui vous permet de gérer vos projets et vos ressources depuis un navigateur Web.
- Dans Cloud Shell, définissez le projet actuel sur votre ID de projet Google Cloud , puis stockez le même ID de projet dans la variable de shell
projectid: Remplacez PROJECT_ID par l'ID de votre projet. Si nécessaire, vous pouvez trouver l'ID de votre projet dans la console Google Cloud . Pour en savoir plus, consultez Trouver votre ID de projet.projectid="PROJECT_ID" gcloud config set project ${projectid} -
Make sure that you have the following role or roles on the project: roles/compute.instanceAdmin.v1, roles/compute.networkAdmin, roles/compute.securityAdmin, roles/dns.admin, roles/iap.tunnelResourceAccessor, roles/iam.serviceAccountCreator, roles/iam.serviceAccountUser, roles/iam.serviceAccountDeleter, roles/resourcemanager.projectIamAdmin, roles/servicedirectory.editor, roles/servicemanagement.quotaAdmin, roles/aiplatform.user
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Accéder à IAM - Sélectionnez le projet.
- Cliquez sur Accorder l'accès.
-
Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.
- Dans la liste Sélectionner un rôle, sélectionnez un rôle.
- Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez tous les rôles supplémentaires.
- Cliquez sur Enregistrer.
Enable the DNS, IAM, Compute Engine, Service Usage, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Créer deux réseaux VPC : vertex-networking-vpc et onprem-vpc
Dans cette section, vous allez créer deux réseaux VPC : l'un pour accéder au réseau principal de Vertex AI (également appelé GenAI), et l'autre pour simuler le réseau sur site.
Créer les réseaux VPC
Créez le réseau VPC permettant d'accéder à l'API GenAI (
vertex-networking-vpc) :gcloud compute networks create vertex-networking-vpc --subnet-mode customCréez le réseau VPC pour simuler le réseau sur site (
onprem-vpc) :gcloud compute networks create onprem-vpc --subnet-mode customDans le réseau
onprem-vpc, créez un sous-réseau nomméonprem-vpc-subnet1, avec172.16.10.0/24comme plage d'adresses IPv4 principale :gcloud compute networks subnets create onprem-vpc-subnet1 \ --range 172.16.10.0/24 \ --network onprem-vpc \ --region us-central1Dans la console Google Cloud , accédez à l'onglet Réseaux du projet en cours sur la page Réseau VPC.
Dans la liste des réseaux VPC, vérifiez que les deux réseaux ont été créés :
vertex-networking-vpcetonprem-vpc.Sur la page Réseau VPC, cliquez sur l'onglet Sous-réseaux dans le projet actuel.
Dans la liste des sous-réseaux VPC, vérifiez que le sous-réseau
onprem-vpc-subnet1a été créé dans le réseauonprem-vpc.
Configurer la connectivité hybride
Dans cette section, vous allez créer deux passerelles VPN haute disponibilité connectées l'une à l'autre. L'une réside dans le réseau VPC vertex-networking-vpc. L'autre réside dans le réseau VPC onprem-vpc.
Chaque passerelle contient un routeur Cloud Router et une paire de tunnels VPN.
Créer des passerelles VPN haute disponibilité
Dans Cloud Shell, créez la passerelle VPN haute disponibilité pour le réseau VPC
vertex-networking-vpc:gcloud compute vpn-gateways create vertex-networking-vpn-gw1 \ --network vertex-networking-vpc \ --region us-central1Créez la passerelle VPN haute disponibilité pour le réseau VPC
onprem-vpc:gcloud compute vpn-gateways create onprem-vpn-gw1 \ --network onprem-vpc \ --region us-central1Dans la console Google Cloud , accédez à l'onglet Passerelles Cloud VPN sur la page VPN.
Dans la liste des passerelles VPN, vérifiez que les deux passerelles (
vertex-networking-vpn-gw1etonprem-vpn-gw1) ont été créées et que chacune dispose de deux adresses IP.
Créer des routeurs cloud
Dans Cloud Shell, créez un routeur Cloud Router pour le réseau VPC
vertex-networking-vpc:gcloud compute routers create vertex-networking-vpc-router1 \ --region us-central1\ --network vertex-networking-vpc \ --asn 65001Créez un routeur Cloud Router pour le réseau VPC
onprem-vpc:gcloud compute routers create onprem-vpc-router1 \ --region us-central1\ --network onprem-vpc\ --asn 65002
Ajouter une passerelle Cloud NAT au réseau VPC onprem-vpc
Au cours de cette étape, vous allez ajouter une passerelle Cloud NAT au routeur Cloud Router pour le réseau VPC onprem-vpc.
Une passerelle Cloud NAT fournit une connectivité sortante pour les instances de machines virtuelles (VM) Compute Engine sans adresse IP externe.
Dans Cloud Shell, ajoutez une passerelle Cloud NAT au routeur Cloud Router
onprem-vpc-router1:gcloud compute routers nats create us-central-cloudnat-onprem \ --router=onprem-vpc-router1 \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges \ --region us-central1Dans la console Google Cloud , accédez à la page Routeurs cloud.
Dans la liste des routeurs Cloud Router, vérifiez que
vertex-networking-vpc-router1etonprem-vpc-router1ont été créés. Vous devrez peut-être actualiser l'onglet du navigateur de la console Google Cloud pour afficher les nouvelles valeurs.Dans la liste des routeurs Cloud Router, cliquez sur
onprem-vpc-router1.Sur la page Détails du routeur, vérifiez que la passerelle Cloud NAT
us-central-cloudnat-onprema été créée.
Créer des tunnels VPN
Dans le réseau
vertex-networking-vpc, créez un tunnel VPN appelévertex-networking-vpc-tunnel0:gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel0 \ --peer-gcp-gateway onprem-vpn-gw1 \ --region us-central1 \ --ike-version 2 \ --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \ --router vertex-networking-vpc-router1 \ --vpn-gateway vertex-networking-vpn-gw1 \ --interface 0Dans le réseau
vertex-networking-vpc, créez un tunnel VPN appelévertex-networking-vpc-tunnel1:gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel1 \ --peer-gcp-gateway onprem-vpn-gw1 \ --region us-central1 \ --ike-version 2 \ --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \ --router vertex-networking-vpc-router1 \ --vpn-gateway vertex-networking-vpn-gw1 \ --interface 1Dans le réseau
onprem-vpc, créez un tunnel VPN appeléonprem-vpc-tunnel0:gcloud compute vpn-tunnels create onprem-vpc-tunnel0 \ --peer-gcp-gateway vertex-networking-vpn-gw1 \ --region us-central1\ --ike-version 2 \ --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \ --router onprem-vpc-router1 \ --vpn-gateway onprem-vpn-gw1 \ --interface 0Dans le réseau
onprem-vpc, créez un tunnel VPN appeléonprem-vpc-tunnel1:gcloud compute vpn-tunnels create onprem-vpc-tunnel1 \ --peer-gcp-gateway vertex-networking-vpn-gw1 \ --region us-central1\ --ike-version 2 \ --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \ --router onprem-vpc-router1 \ --vpn-gateway onprem-vpn-gw1 \ --interface 1Dans la console Google Cloud , accédez à la page VPN.
Dans la liste des tunnels VPN, vérifiez que les quatre tunnels VPN ont été créés.
Établir des sessions BGP
Cloud Router utilise le protocole BGP (Border Gateway Protocol) pour échanger des routes entre votre réseau VPC (dans ce cas, vertex-networking-vpc) et votre réseau sur site (représenté par onprem-vpc). Sur Cloud Router, vous configurez une interface et un pair BGP pour votre routeur sur site.
Ensemble, l'interface et la configuration du pair BGP forment une session BGP.
Dans cette section, vous allez créer deux sessions BGP pour vertex-networking-vpc et deux pour onprem-vpc.
Une fois que vous avez configuré les interfaces et les pairs BGP entre vos routeurs, ils commencent automatiquement à échanger des routes.
Établir des sessions BGP pour vertex-networking-vpc
Dans Cloud Shell, dans le réseau
vertex-networking-vpc, créez une interface BGP pourvertex-networking-vpc-tunnel0:gcloud compute routers add-interface vertex-networking-vpc-router1 \ --interface-name if-tunnel0-to-onprem \ --ip-address 169.254.0.1 \ --mask-length 30 \ --vpn-tunnel vertex-networking-vpc-tunnel0 \ --region us-central1Dans le réseau
vertex-networking-vpc, créez un pair BGP pourbgp-onprem-tunnel0:gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \ --peer-name bgp-onprem-tunnel0 \ --interface if-tunnel0-to-onprem \ --peer-ip-address 169.254.0.2 \ --peer-asn 65002 \ --region us-central1Dans le réseau
vertex-networking-vpc, créez une interface BGP pourvertex-networking-vpc-tunnel1:gcloud compute routers add-interface vertex-networking-vpc-router1 \ --interface-name if-tunnel1-to-onprem \ --ip-address 169.254.1.1 \ --mask-length 30 \ --vpn-tunnel vertex-networking-vpc-tunnel1 \ --region us-central1Dans le réseau
vertex-networking-vpc, créez un pair BGP pourbgp-onprem-tunnel1:gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \ --peer-name bgp-onprem-tunnel1 \ --interface if-tunnel1-to-onprem \ --peer-ip-address 169.254.1.2 \ --peer-asn 65002 \ --region us-central1
Établir des sessions BGP pour onprem-vpc
Dans le réseau
onprem-vpc, créez une interface BGP pouronprem-vpc-tunnel0:gcloud compute routers add-interface onprem-vpc-router1 \ --interface-name if-tunnel0-to-vertex-networking-vpc \ --ip-address 169.254.0.2 \ --mask-length 30 \ --vpn-tunnel onprem-vpc-tunnel0 \ --region us-central1Dans le réseau
onprem-vpc, créez un pair BGP pourbgp-vertex-networking-vpc-tunnel0:gcloud compute routers add-bgp-peer onprem-vpc-router1 \ --peer-name bgp-vertex-networking-vpc-tunnel0 \ --interface if-tunnel0-to-vertex-networking-vpc \ --peer-ip-address 169.254.0.1 \ --peer-asn 65001 \ --region us-central1Dans le réseau
onprem-vpc, créez une interface BGP pouronprem-vpc-tunnel1:gcloud compute routers add-interface onprem-vpc-router1 \ --interface-name if-tunnel1-to-vertex-networking-vpc \ --ip-address 169.254.1.2 \ --mask-length 30 \ --vpn-tunnel onprem-vpc-tunnel1 \ --region us-central1Dans le réseau
onprem-vpc, créez un pair BGP pourbgp-vertex-networking-vpc-tunnel1:gcloud compute routers add-bgp-peer onprem-vpc-router1 \ --peer-name bgp-vertex-networking-vpc-tunnel1 \ --interface if-tunnel1-to-vertex-networking-vpc \ --peer-ip-address 169.254.1.1 \ --peer-asn 65001 \ --region us-central1
Valider la création de la session BGP
Dans la console Google Cloud , accédez à la page VPN.
Dans la liste des tunnels VPN, vérifiez que la valeur du champ État de la session BGP pour chacun des tunnels est passée de Configurer la session BGP à BGP établi. Vous devrez peut-être actualiser l'onglet du navigateur de la console Google Cloud pour afficher les nouvelles valeurs.
Créer le point de terminaison Private Service Connect (PSC)
Dans cette section, vous allez créer un point de terminaison Private Service Connect (PSC) pour les API Google que les instances de VM du réseau onprem-vpc utiliseront pour accéder à l'API GenAI à partir de votre réseau onprem-vpc.
Le point de terminaison Private Service Connect (PSC) est une adresse IP interne du réseau onprem-vpc qui est accessible directement aux clients de ce réseau. Ce point de terminaison est créé en déployant une règle de transfert qui dirige le trafic réseau correspondant à l'adresse IP du point de terminaison PSC vers un groupe d'API Google : plus particulièrement le bundle all-apis.
L'adresse IP du point de terminaison PSC (192.168.0.1) sera annoncée ultérieurement à partir du routeur Cloud Router vertex-networking-vpc-router, en tant que route annoncée personnalisée pointant vers le réseau onprem-vpc.
Réservez une adresse IP interne globale à attribuer au point de terminaison :
gcloud compute addresses create psc-googleapi-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=192.168.0.1 \ --network=vertex-networking-vpcCréez le point de terminaison, ainsi qu'une règle de transfert qui le connecte aux API et services Google :
gcloud compute forwarding-rules create pscvertex \ --global \ --network=vertex-networking-vpc\ --address=psc-googleapi-ip \ --target-google-apis-bundle=all-apisRéférencez les points de terminaison configurés PSC et vérifiez que le point de terminaison
pscvertexa été créé :gcloud compute forwarding-rules list \ --filter target="(all-apis OR vpc-sc)" --globalObtenez les détails du point de terminaison PSC configuré et vérifiez que l'adresse IP est
192.168.0.1:gcloud compute forwarding-rules describe \ pscvertex --global
Créer des annonces de routage personnalisées pour vertex-networking-vpc
Dans cette section, vous allez créer une route annoncée personnalisée pour vertex-networking-vpc-router1 (le routeur Cloud Router pour vertex-networking-vpc) afin d'annoncer l'adresse IP du point de terminaison PSC au réseau onprem-vpc.
Dans la console Google Cloud , accédez à la page Routeurs cloud.
Dans la liste des routeurs Cloud Router, cliquez sur
vertex-networking-vpc-router1.Sur la page Détails du routeur, cliquez sur Modifier.
Dans la section Routes annoncées, sélectionnez Créer des routes personnalisées pour le paramètre Routes.
Sélectionnez Diffuser tous les sous-réseaux visibles par Cloud Router pour continuer à annoncer les sous-réseaux disponibles pour le routeur cloud. Cette option imite le comportement de Cloud Router en mode d'annonce par défaut.
Cliquez sur Ajouter une route personnalisée.
Dans Source, sélectionnez Plage d'adresses IP personnalisée.
Dans le champ Plage d'adresses IP, saisissez l'adresse IP suivante :
192.168.0.1Dans le champ Description, saisissez le texte suivant :
Custom route to advertise Private Service Connect endpoint IP addressCliquez sur OK, puis sur Enregistrer.
Vérifier que onprem-vpc a appris les routes annoncées
Dans la console Google Cloud , accédez à la page Routes.
Dans l'onglet Routes effectives, procédez comme suit :
- Pour Réseau, choisissez
onprem-vpc. - Dans le champ Région, choisissez
us-central1 (Iowa). - Cliquez sur Afficher.
Dans la liste des routes, vérifiez qu'il existe des entrées dont le nom commence par
onprem-vpc-router1-bgp-vertex-networking-vpc-tunnel0etonprem-vpc-router1-bgp-vfertex-networking-vpc-tunnel1, et qu'elles utilisent toutes deux192.168.0.1/32comme Plage d'adresses IP de destination. (192.168.0.1est l'adresse IP du point de terminaison PSC).Si ces entrées n'apparaissent pas immédiatement, attendez quelques minutes, puis actualisez l'onglet de navigateur de la console Google Cloud .
- Pour Réseau, choisissez
Configurer une instance de VM dans le réseau sur site
Dans cette section, vous créez une instance de VM Compute Engine dans le réseau VPC onprem-vpc. Cette instance de VM simule un client sur site qui se connecte au point de terminaison PSC et accède à l'API GenAI.
Créer un compte de service géré par l'utilisateur
Dans ce tutoriel, vous allez créer un compte de service géré par l'utilisateur en suivant les bonnes pratiques Compute Engine et IAM.
Dans Cloud Shell, exécutez les commandes suivantes, en remplaçant PROJECT_ID par votre ID de projet :
projectid=PROJECT_ID gcloud config set project ${projectid}Créez le compte de service :
gcloud iam service-accounts create user-managed-saAttribuez le rôle IAM Utilisateur Vertex AI (
roles/aiplatform.user) au compte de service :gcloud projects add-iam-policy-binding $projectid \ --member="serviceAccount:user-managed-sa@$projectid.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"
Créer l'instance de VM on-prem-client
Au cours de cette étape, vous allez créer l'instance de VM qui utilise l'adresse IP Private Service Connect (192.168.0.1) pour accéder aux API Google via un VPN haute disponibilité.
Pour autoriser Identity-Aware Proxy (IAP) à se connecter à vos instances de VM, vous devez créer une règle de pare-feu qui :
- S'applique à toutes les instances de VM que vous souhaitez rendre accessibles via IAP. (Dans le cas présent, il n'y a que
on-prem-client.) - Autorise le trafic TCP via le port 22 à partir de la plage d'adresses IP
35.235.240.0/20. Contient toutes les adresses IP qu'IAP utilise pour le transfert TCP.
Créer l'instance de VM
on-prem-clientLa commande suivante installe également les packagestcpdumpetdnsutils, qui contiennent les utilitairestcpdumpetdigque vous utiliserez plus tard pour valider vos requêtes API :gcloud compute instances create on-prem-client \ --zone=us-central1-a \ --image-family=debian-11 \ --image-project=debian-cloud \ --subnet=onprem-vpc-subnet1 \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --no-address \ --shielded-secure-boot \ --service-account=user-managed-sa@$projectid.iam.gserviceaccount.com \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install tcpdump dnsutils -y"Créez une règle de pare-feu IAP nommée
ssh-iap-on-prem-vpc:gcloud compute firewall-rules create ssh-iap-on-prem-vpc \ --network onprem-vpc \ --allow tcp:22 \ --source-ranges=35.235.240.0/20
Valider l'accès à l'Internet public pour l'IA générative sur Vertex AI
Dans cette section, vous vous connectez à l'instance de VM on-prem-client à l'aide d'Identity-Aware Proxy, puis vous validez la connectivité publique aux API Vertex AI (y compris GenAI) en exécutant la commande dig sur le domaine public Vertex AI (us-central1-aiplatform.googleapis.com).
Dans Cloud Shell (onglet 1), exécutez les commandes suivantes, en remplaçant PROJECT_ID par votre ID de projet :
projectid=PROJECT_ID gcloud config set project ${projectid}Connectez-vous à l'instance de VM
on-prem-clientà l'aide d'IAP :gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iapExécutez la commande
dig:dig us-central1-aiplatform.googleapis.comUn résultat
digsemblable à ce qui suit doit s'afficher, où les adresses IP de la section de réponse sont des adresses IP publiques :; <<>> DiG 9.16.44-Debian <<>> us-central1.aiplatfom.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42506 ;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;us-central1.aiplatfom.googleapis.com. IN A ;; ANSWER SECTION: us-central1.aiplatfom.googleapis.com. 300 IN A 173.194.192.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.152.95 us-central1.aiplatfom.googleapis.com. 300 IN A 172.217.219.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.146.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.147.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.125.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.136.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.148.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.200.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.234.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.251.171.95 us-central1.aiplatfom.googleapis.com. 300 IN A 108.177.112.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.128.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.251.6.95 us-central1.aiplatfom.googleapis.com. 300 IN A 172.217.212.95 us-central1.aiplatfom.googleapis.com. 300 IN A 74.125.124.95 ;; Query time: 8 msec ;; SERVER: 169.254.169.254#53(169.254.169.254) ;; WHEN: Wed Sep 27 04:10:16 UTC 2023 ;; MSG SIZE rcvd: 321
Configurer et valider un accès privé à l'IA générative sur Vertex AI
Dans cette section, vous configurez l'accès privé à l'IA générative sur Vertex AI de sorte que, lorsque vous envoyez des requêtes au point de terminaison de service public (us-central1-aiplatform.googleapis.com), elles sont redirigées vers votre point de terminaison PSC. Le point de terminaison PSC transfère à son tour la requête
Mettre à jour le fichier /etc/hosts pour qu'il pointe vers le point de terminaison PSC
Au cours de cette étape, vous allez ajouter une ligne au fichier /etc/hosts qui entraîne la redirection des requêtes envoyées au point de terminaison du service public (us-central1-aiplatform.googleapis.com) vers le point de terminaison PSC (192.168.0.1).
Dans l'instance de VM
on-prem-client(onglet 1), utilisez un éditeur de texte tel quevimounanopour ouvrir le fichier/etc/hosts:sudo vim /etc/hostsAjoutez la ligne suivante au fichier :
192.168.0.1 us-central1-aiplatform.googleapis.comCette ligne attribue l'adresse IP du point de terminaison PSC (
192.168.0.1) au nom de domaine complet de l'API Google Vertex AI (us-central1-aiplatform.googleapis.com).Le fichier modifié doit se présenter comme suit :
127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.0.1 us-central1-aiplatform.googleapis.com # Added by you 172.16.10.6 on-prem-client.us-central1-a.c.vertex-genai-400103.internal on-prem-client # Added by Google 169.254.169.254 metadata.google.internal # Added by GoogleEnregistrez le fichier comme suit :
- Si vous utilisez
vim, appuyez sur la toucheEsc, puis saisissez:wqpour enregistrer le fichier et quitter. - Si vous utilisez
nano, saisissezControl+Oet appuyez surEnterpour enregistrer le fichier, puis saisissezControl+Xpour quitter.
- Si vous utilisez
Pinguez le point de terminaison Vertex AI comme suit :
ping us-central1-aiplatform.googleapis.comLa commande
pingdoit renvoyer le résultat suivant.192.168.0.1correspond à l'adresse IP du point de terminaison PSC :PING us-central1-aiplatform.googleapis.com (192.168.0.1) 56(84) bytes of data.Saisissez
Control+Cpour quitterping.Exécutez la commande
tcpdumpsuivante pour valider la résolution DNS et le chemin d'accès aux données IP lorsque vous envoyez une requête de prédiction en ligne au point de terminaison :sudo tcpdump -i any port 53 -n or host 192.168.0.1
Créer la requête privée
Au cours de cette étape, vous allez créer un fichier texte nommé request.json contenant la charge utile d'un exemple de requête curl que vous envoyez à l'API REST GenAI.
Pour en savoir plus sur les exemples de requêtes, consultez la page Exemple de requête.
Si vous exécutez la commande
tcpdumpdans l'onglet 1, ouvrez une nouvelle session Cloud Shell (onglet 2) en cliquant sur Ouvrir un nouvel onglet dans Cloud Shell.Dans la nouvelle session Cloud Shell (onglet 2), exécutez les commandes suivantes, en remplaçant PROJECT_ID par votre ID de projet :
projectid=PROJECT_ID gcloud config set project ${projectid}Connectez-vous à l'instance de VM
on-prem-clientà l'aide d'IAP :gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iapExécutez les commandes suivantes en remplaçant PROJECT_ID par l'ID de votre projet :
projectid=PROJECT_ID gcloud config set project ${projectid}Utilisez un éditeur de texte tel que
vimounanopour créer un fichier nommérequest.jsonet contenant le texte suivant :{ "instances": [ { "prompt": "Give me ten interview questions for the role of program manager."} ], "parameters": { "temperature": 0.2, "maxOutputTokens": 256, "topK": 40, "topP": 0.95 } }Exécutez la commande suivante pour envoyer une requête au point de terminaison PSC, qui transfère la requête à l'API GenAI. Lorsque le point de terminaison reçoit la réponse, il la transmet à la VM
on-prem-client:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/publishers/google/models/text-bison:predict"Un résultat semblable à l'exemple suivant doit s'afficher :
{ "predictions": [ { "content": " 1. **What is your experience in managing programs?**\n2. **What are your strengths and weaknesses as a program manager?**\n3. **What is your approach to managing a program?**\n4. **How do you handle risks and challenges in a program?**\n5. **How do you communicate with stakeholders in a program?**\n6. **How do you measure the success of a program?**\n7. **What is your experience in working with cross-functional teams?**\n8. **What is your experience in managing budgets and resources?**\n9. **What is your experience in managing change in a program?**\n10. **What are your career goals as a program manager?**", "citationMetadata": { "citations": [] }, "safetyAttributes": { "categories": [ "Finance", "Health" ], "blocked": false, "scores": [ 0.6, 0.1 ] } } ], "metadata": { "tokenMetadata": { "outputTokenCount": { "totalBillableCharacters": 505, "totalTokens": 153 }, "inputTokenCount": { "totalBillableCharacters": 54, "totalTokens": 12 } } } }Dans l'onglet 1, vérifiez que l'adresse IP du point de terminaison PSC (
192.168.0.1) a été utilisée pour accéder aux API Vertex AI à partir de l'instance de VMon-prem-client(sous-réseau172.16.10.0/28).Depuis le terminal
tcpdumpdans Cloud Shell (onglet 1), vous constatez qu'une résolution DNS versus-central1-aiplatform.googleapis.comn'est pas nécessaire, car la ligne que vous avez ajoutée à/etc/hostsest prioritaire, et l'adresse IP du point de terminaison PSC (192.168.0.1) est utilisée dans le chemin d'accès aux données.Vous devriez voir une sortie
tcpdumpsimilaire à ce qui suit :23:48:49.938797 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2054:2093, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 39 23:48:49.938947 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2093:2117, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 24 23:48:49.939839 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [F.], seq 2117, ack 6264, win 501, options [nop,nop,TS val 2943864306 ecr 2340789954], length 0 23:48:49.940292 ens4 In IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0 23:48:49.940437 ens4 In IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [F.], seq 6264, ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0 23:48:49.940442 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [.], ack 6265, win 501, options [nop,nop,TS val 2943864307 ecr 2340789958], length 0 23:48:49.941193 ens4 In IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2118, win 272, options [nop,nop,TS val 2340789959 ecr 2943864306], length 0
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans ce tutoriel ne soient facturées sur votre compte Google Cloud , supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Vous pouvez supprimer les ressources individuelles du projet en exécutant les commandes suivantes dans Cloud Shell :
projectid=PROJECT_ID
gcloud config set project ${projectid}
gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet
gcloud compute instances delete on-prem-client --zone=us-central1-a --quiet
gcloud iam service-accounts delete user-managed-sa@$projectid.iam.gserviceaccount.com --quiet
gcloud compute forwarding-rules delete pscvertex --global --quiet
gcloud compute addresses delete psc-googleapi-ip --global --quiet
gcloud compute vpn-tunnels delete vertex-networking-vpc-tunnel0 vertex-networking-vpc-tunnel1 onprem-vpc-tunnel0 onprem-vpc-tunnel1 --region=us-central1 --quiet
gcloud compute routers nats delete us-central-cloudnat-onprem --router=onprem-vpc-router1 --region=us-central1 --quiet
gcloud compute routers delete vertex-networking-vpc-router1 onprem-vpc-router1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete vertex-networking-vpn-gw1 onprem-vpn-gw1 --region=us-central1 --quiet
gcloud compute networks subnets delete onprem-vpc-subnet1 --region=us-central1 --quiet
gcloud compute networks delete onprem-vpc --quiet
gcloud compute networks delete vertex-networking-vpc --quiet
Étapes suivantes
- Découvrez les options de mise en réseau d'entreprise pour accéder aux points de terminaison et aux services Vertex AI.
- Découvrez comment accéder aux services publiés via des points de terminaison.
- Découvrez comment fonctionne Private Service Connect et ses avantages significatifs en termes de performances.
- Découvrez comment accéder aux API Google via des points de terminaison.
- Découvrez comment et pourquoi utiliser une zone de transfert DNS plutôt que de modifier le fichier
/etc/hostsdans des environnements de production à grande échelle. - En savoir plus sur les routes annoncées personnalisées.