Los hosts on-premise pueden acceder a la IA generativa en Vertex AI a través de Internet público o de forma privada mediante una arquitectura de red híbrida que utilice Private Service Connect (PSC) a través de Cloud VPN o Cloud Interconnect. Ambas opciones ofrecen cifrado SSL/TLS. Sin embargo, la opción privada ofrece un rendimiento mucho mejor y, por lo tanto, se recomienda para aplicaciones críticas.
En este tutorial, usarás VPN de alta disponibilidad (HA VPN) para acceder a la IA generativa en Vertex AI de forma pública, a través de Cloud NAT, y de forma privada, entre dos redes de nube privada virtual (VPC) que pueden servir de base para la conectividad privada multicloud y on-premise.
Este tutorial está dirigido a administradores de redes empresariales, científicos de datos e investigadores que estén familiarizados con Vertex AI, VPC, la consola de Google Cloud y Cloud Shell. Tener conocimientos sobre IA generativa en Vertex AI es útil, pero no obligatorio.
Objetivos
- Crea dos redes de VPC, tal como se muestra en el diagrama anterior:
- Una (
onprem-vpc
) representa una red local. - La otra (
vertex-networking-vpc
) es para acceder a la API REST de IA generativa en Vertex AI.
- Una (
- Implementa pasarelas de VPN de alta disponibilidad, túneles de Cloud VPN y Cloud Routers para conectar
vertex-networking-vpc
yonprem-vpc
. - Crea un endpoint de Private Service Connect (PSC) para reenviar solicitudes a la API REST de GenAI.
- Configura una ruta anunciada personalizada de Cloud Router en
vertex-networking-vpc
para anunciar rutas del punto final de Private Service Connect aonprem-vpc
. - Crea una instancia de VM de Compute Engine en
onprem-vpc
para representar una aplicación cliente que envía solicitudes a la API REST de GenAI a través de una VPN de alta disponibilidad.
Costes
En este documento, se utilizan los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costes basada en el uso previsto,
utiliza la calculadora de precios.
Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.
Antes de empezar
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Si no eres el propietario del proyecto, este debe concederte el rol de gestión de identidades y accesos
roles/resourcemanager.projectIamAdmin
. Necesitas este rol para conceder roles y permisos de gestión de identidades y accesos a ti mismo y a las cuentas de servicio. - Abre Cloud Shell para ejecutar los comandos que se indican en este tutorial. Cloud Shell es un entorno de shell interactivo para Google Cloud que te permite gestionar tus proyectos y recursos desde el navegador web.
- En Cloud Shell, define el proyecto actual como tu Google Cloud ID de proyecto y almacena el mismo ID de proyecto en la variable de shell
projectid
: Sustituye PROJECT_ID por el ID de tu proyecto. Si es necesario, puedes encontrar el ID de tu proyecto en la Google Cloud consola. Para obtener más información, consulta Buscar el ID de un proyecto.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.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Conceder acceso.
-
En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.
- En la lista Selecciona un rol, elige un rol.
- Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
- Haz clic en Guardar.
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.enable
permission. Learn how to grant roles. -
Crea dos redes de VPC: vertex-networking-vpc
y onprem-vpc
.
En esta sección, crearás dos redes de VPC: una será la red principal para acceder a la API de IA generativa de Vertex AI (también conocida como GenAI) y la otra simulará la red local.
Crear las redes de VPC
Crea la red de VPC para acceder a la API GenAI (
vertex-networking-vpc
):gcloud compute networks create vertex-networking-vpc --subnet-mode custom
Crea la red de VPC para simular la red local (
onprem-vpc
):gcloud compute networks create onprem-vpc --subnet-mode custom
En la red
onprem-vpc
, crea una subred llamadaonprem-vpc-subnet1
con un intervalo IPv4 principal de172.16.10.0/24
:gcloud compute networks subnets create onprem-vpc-subnet1 \ --range 172.16.10.0/24 \ --network onprem-vpc \ --region us-central1
En la consola, ve a la pestaña Redes del proyecto actual de la página Red de VPC. Google Cloud
En la lista de redes de VPC, comprueba que se hayan creado las dos redes:
vertex-networking-vpc
yonprem-vpc
.En la página Red de VPC, haz clic en la pestaña Subredes del proyecto actual.
En la lista de subredes de VPC, comprueba que la subred
onprem-vpc-subnet1
se ha creado en la redonprem-vpc
.
Configurar la conectividad híbrida
En esta sección, creará dos pasarelas de VPN de alta disponibilidad que estarán conectadas entre sí. Una de ellas se encuentra en la red de vertex-networking-vpc
VPC. La otra se encuentra en la red de VPC onprem-vpc
.
Cada pasarela contiene un Cloud Router y un par de túneles VPN.
Crear las pasarelas de VPN de alta disponibilidad
En Cloud Shell, crea la pasarela de VPN de alta disponibilidad para la red de VPC
vertex-networking-vpc
:gcloud compute vpn-gateways create vertex-networking-vpn-gw1 \ --network vertex-networking-vpc \ --region us-central1
Crea la pasarela de VPN de alta disponibilidad para la red VPC
onprem-vpc
:gcloud compute vpn-gateways create onprem-vpn-gw1 \ --network onprem-vpc \ --region us-central1
En la Google Cloud consola, ve a la pestaña Pasarelas de Cloud VPN de la página VPN.
En la lista de pasarelas VPN, comprueba que se hayan creado las dos pasarelas (
vertex-networking-vpn-gw1
yonprem-vpn-gw1
) y que cada una tenga dos direcciones IP.
Crear routers de Cloud Router
En Cloud Shell, crea un Cloud Router para la red de VPC
vertex-networking-vpc
:gcloud compute routers create vertex-networking-vpc-router1 \ --region us-central1\ --network vertex-networking-vpc \ --asn 65001
Crea un Cloud Router para la red de VPC
onprem-vpc
:gcloud compute routers create onprem-vpc-router1 \ --region us-central1\ --network onprem-vpc\ --asn 65002
Añadir una pasarela de Cloud NAT a la red de VPC onprem-vpc
En este paso, añade una pasarela de Cloud NAT al Cloud Router de la red de VPC onprem-vpc
.
Una pasarela Cloud NAT proporciona conectividad saliente a las instancias de máquina virtual (VM) de Compute Engine que no tienen direcciones IP externas.
En Cloud Shell, añade una pasarela de Cloud NAT al
onprem-vpc-router1
Cloud Router: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-central1
En la Google Cloud consola, ve a la página Cloud Routers.
En la lista de Cloud Router, comprueba que se hayan creado
vertex-networking-vpc-router1
yonprem-vpc-router1
. Puede que tengas que actualizar la pestaña del navegador de la consola Google Cloud para ver los nuevos valores.En la lista de Cloud Routers, haga clic en
onprem-vpc-router1
.En la página Detalles del router, comprueba que se ha creado la pasarela
us-central-cloudnat-onprem
Cloud NAT.
Crear túneles de VPN
En la red
vertex-networking-vpc
, crea un túnel VPN llamadovertex-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 0
En la red
vertex-networking-vpc
, crea un túnel VPN llamadovertex-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 1
En la red
onprem-vpc
, crea un túnel VPN llamadoonprem-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 0
En la red
onprem-vpc
, crea un túnel VPN llamadoonprem-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 1
En la Google Cloud consola, ve a la página VPN.
En la lista de túneles VPN, comprueba que se han creado los cuatro túneles VPN.
Establecer sesiones de BGP
Cloud Router usa el protocolo de pasarela fronteriza (BGP) para intercambiar rutas entre tu red de VPC (en este caso, vertex-networking-vpc
) y tu red on‐premise (representada por onprem-vpc
). En Cloud Router, configura una interfaz y un par BGP para tu router on‐premise.
La interfaz y la configuración del par de BGP forman una sesión de BGP.
En esta sección, crearás dos sesiones de BGP para vertex-networking-vpc
y dos para onprem-vpc
.
Una vez que hayas configurado las interfaces y los peers de BGP entre tus routers, empezarán a intercambiar rutas automáticamente.
Establecer sesiones de BGP para vertex-networking-vpc
En Cloud Shell, en la red
vertex-networking-vpc
, crea una interfaz BGP paravertex-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-central1
En la red
vertex-networking-vpc
, crea un peer de BGP parabgp-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-central1
En la red
vertex-networking-vpc
, crea una interfaz de BGP paravertex-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-central1
En la red
vertex-networking-vpc
, crea un peer de BGP parabgp-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
Establecer sesiones de BGP para onprem-vpc
En la red
onprem-vpc
, crea una interfaz de BGP paraonprem-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-central1
En la red
onprem-vpc
, crea un peer de BGP parabgp-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-central1
En la red
onprem-vpc
, crea una interfaz de BGP paraonprem-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-central1
En la red
onprem-vpc
, crea un peer de BGP parabgp-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
Validar la creación de la sesión de BGP
En la Google Cloud consola, ve a la página VPN.
En la lista de túneles VPN, comprueba que el valor de la columna Estado de la sesión de BGP de cada túnel haya cambiado de Configurar sesión de BGP a BGP establecido. Puede que tengas que actualizar la pestaña del navegador de la consola Google Cloud para ver los nuevos valores.
Crea el endpoint de Private Service Connect (PSC)
En esta sección, crearás un endpoint de Private Service Connect (PSC) para las APIs de Google que usarán las instancias de VM de la red onprem-vpc
para acceder a la API GenAI desde tu red onprem-vpc
.
Un punto final de Private Service Connect (PSC) es una dirección IP interna de la red onprem-vpc
a la que pueden acceder directamente los clientes de esa red. Este endpoint se crea implementando una regla de reenvío que dirige el tráfico de red que coincide con la dirección IP del endpoint de PSC a un paquete de APIs de Google, concretamente, el paquete all-apis.
La dirección IP del endpoint de PSC (192.168.0.1
) se anunciará desde el router de Cloud Router vertex-networking-vpc-router
como una ruta anunciada personalizada a la red onprem-vpc
en un paso posterior.
Reserva una dirección IP interna global para asignarla al endpoint:
gcloud compute addresses create psc-googleapi-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=192.168.0.1 \ --network=vertex-networking-vpc
Crea el endpoint junto con una regla de reenvío que conecte el endpoint a las APIs y los servicios de Google:
gcloud compute forwarding-rules create pscvertex \ --global \ --network=vertex-networking-vpc\ --address=psc-googleapi-ip \ --target-google-apis-bundle=all-apis
Lista los endpoints de PSC configurados y comprueba que se ha creado el endpoint
pscvertex
:gcloud compute forwarding-rules list \ --filter target="(all-apis OR vpc-sc)" --global
Obtén los detalles del endpoint de PSC configurado y comprueba que la dirección IP sea
192.168.0.1
:gcloud compute forwarding-rules describe \ pscvertex --global
Crear anuncios de ruta personalizados para vertex-networking-vpc
En esta sección, creará una ruta anunciada personalizada para vertex-networking-vpc-router1
(el Cloud Router de vertex-networking-vpc
) para anunciar la dirección IP del endpoint de PSC a la red onprem-vpc
.
En la Google Cloud consola, ve a la página Cloud Routers.
En la lista de Cloud Routers, haga clic en
vertex-networking-vpc-router1
.En la página Detalles del router, haz clic en
Editar.En la sección Rutas anunciadas, en Rutas, seleccione Crear rutas personalizadas.
Marca la casilla Anunciar todas las subredes que pueda ver el router de Cloud Router para seguir anunciando las subredes disponibles para el router de Cloud Router. Si habilita esta opción, se imitará el comportamiento de Cloud Router en el modo de anuncio predeterminado.
Haz clic en Añadir una ruta personalizada.
En Origen, selecciona Intervalo de IP personalizado.
En Intervalo de direcciones IP, introduce la siguiente dirección IP:
192.168.0.1
En Descripción, introduce el siguiente texto:
Custom route to advertise Private Service Connect endpoint IP address
Haz clic en Hecho y, a continuación, en Guardar.
Validar que onprem-vpc
ha aprendido las rutas anunciadas
En la Google Cloud consola, ve a la página Rutas.
En la pestaña Rutas eficaces, haz lo siguiente:
- En Red, elige
onprem-vpc
. - En Región, elige
us-central1 (Iowa)
. - Haz clic en Ver.
En la lista de rutas, comprueba que haya entradas cuyos nombres empiecen por
onprem-vpc-router1-bgp-vertex-networking-vpc-tunnel0
yonprem-vpc-router1-bgp-vfertex-networking-vpc-tunnel1
, y que ambas tengan un intervalo de IPs de destino de192.168.0.1/32
. (192.168.0.1
es la dirección IP del endpoint de PSC).Si estas entradas no aparecen de inmediato, espera unos minutos y, a continuación, actualiza la pestaña del navegador de la consola Google Cloud .
- En Red, elige
Configurar una instancia de VM en la red local
En esta sección, crearás una instancia de VM de Compute Engine en la red de VPC onprem-vpc
. Esta instancia de VM simula un cliente local que se conecta al endpoint de PSC y accede a la API GenAI.
Crear una cuenta de servicio gestionada por el usuario
En este tutorial, crearás una cuenta de servicio gestionada por el usuario siguiendo las prácticas recomendadas de Compute Engine y de IAM.
En Cloud Shell, ejecuta los siguientes comandos y sustituye PROJECT_ID por el ID de tu proyecto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Crea la cuenta de servicio:
gcloud iam service-accounts create user-managed-sa
Asigna el rol de gestión de identidades y accesos Usuario de Vertex AI (
roles/aiplatform.user
) a la cuenta de servicio:gcloud projects add-iam-policy-binding $projectid \ --member="serviceAccount:user-managed-sa@$projectid.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"
Crear la instancia de VM de on-prem-client
En este paso, crearás la instancia de VM, que usa la dirección IP de Private Service Connect (192.168.0.1
) para acceder a las APIs de Google a través de la VPN de alta disponibilidad.
Para permitir que Identity-Aware Proxy (IAP) se conecte a tus instancias de VM, crea una regla de cortafuegos que haga lo siguiente:
- Se aplica a todas las instancias de VM a las que quieras acceder a través de IAP. En este caso, solo hay
on-prem-client
. - Permite el tráfico TCP a través del puerto 22 desde el intervalo de IPs
35.235.240.0/20
. Este intervalo contiene todas las direcciones IP que usa IAP para el reenvío de TCP.
Crea la instancia de VM
on-prem-client
. El siguiente comando también instala los paquetestcpdump
ydnsutils
, que contienen las utilidadestcpdump
ydig
que usarás más adelante para validar tus solicitudes de 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"
Crea una regla de cortafuegos de IAP llamada
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
Validar el acceso a Internet público a la IA generativa en Vertex AI
En esta sección, iniciarás sesión en la instancia de VM on-prem-client
mediante Identity-Aware Proxy y, a continuación, validarás la conectividad pública a las APIs de Vertex AI (incluida la IA generativa) ejecutando el comando dig
en el dominio público de Vertex AI (us-central1-aiplatform.googleapis.com
).
En Cloud Shell (pestaña 1), ejecuta los siguientes comandos. Sustituye PROJECT_ID por el ID de tu proyecto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Inicia sesión en la instancia de VM
on-prem-client
mediante IAP:gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Ejecuta el comando
dig
:dig us-central1-aiplatform.googleapis.com
Deberías ver un resultado
dig
similar al siguiente, donde las direcciones IP de la sección de respuesta son direcciones IP públicas:; <<>> 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
Configurar y validar el acceso privado a la IA generativa en Vertex AI
En esta sección, configurará el acceso privado a la IA generativa en Vertex AI para que, cuando envíe solicitudes al endpoint de servicio público (us-central1-aiplatform.googleapis.com
), se redirijan a su endpoint de PSC. El endpoint de la PSC, a su vez, reenvía la solicitud a
Actualiza el archivo /etc/hosts
para que apunte al endpoint de PSC
En este paso, añade una línea al archivo /etc/hosts
que hace que las solicitudes enviadas al endpoint del servicio público (us-central1-aiplatform.googleapis.com
) se redirijan al endpoint de PSC (192.168.0.1
).
En la instancia de VM
on-prem-client
(pestaña 1), usa un editor de texto comovim
onano
para abrir el archivo/etc/hosts
:sudo vim /etc/hosts
Añade la siguiente línea al archivo:
192.168.0.1 us-central1-aiplatform.googleapis.com
Esta línea asigna la dirección IP del endpoint de PSC (
192.168.0.1
) al nombre de dominio completo de la API de Google de Vertex AI (us-central1-aiplatform.googleapis.com
).El archivo editado debería tener este aspecto:
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 Google
Guarda el archivo de la siguiente manera:
- Si usas
vim
, pulsa la teclaEsc
y, a continuación, escribe:wq
para guardar el archivo y salir. - Si usas
nano
, escribeControl+O
y pulsaEnter
para guardar el archivo. A continuación, escribeControl+X
para salir.
- Si usas
Haga ping al endpoint de Vertex AI de la siguiente manera:
ping us-central1-aiplatform.googleapis.com
El comando
ping
debería devolver el siguiente resultado.192.168.0.1
es la dirección IP del endpoint de PSC:PING us-central1-aiplatform.googleapis.com (192.168.0.1) 56(84) bytes of data.
Escribe
Control+C
para salir deping
.Ejecuta el siguiente comando
tcpdump
para validar la resolución de DNS y la ruta de datos de IP cuando envíes una solicitud de predicción online al endpoint:sudo tcpdump -i any port 53 -n or host 192.168.0.1
Crear la solicitud privada
En este paso, creará un archivo de texto llamado request.json
que contenga la carga útil de una solicitud curl
de ejemplo que enviará a la API REST de IA generativa.
Para obtener más información sobre las solicitudes de ejemplo, consulta Solicitud de ejemplo.
Mantén el comando
tcpdump
en la pestaña 1 y abre una nueva sesión de Cloud Shell (pestaña 2) haciendo clic en abrir una pestaña nueva en Cloud Shell.En la nueva sesión de Cloud Shell (pestaña dos), ejecuta los siguientes comandos y sustituye PROJECT_ID por el ID de tu proyecto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Inicia sesión en la instancia de VM
on-prem-client
mediante IAP:gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Ejecuta los siguientes comandos, sustituyendo PROJECT_ID por el ID de tu proyecto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Usa un editor de texto como
vim
onano
para crear un archivo llamadorequest.json
que contenga el siguiente texto:{ "instances": [ { "prompt": "Give me ten interview questions for the role of program manager."} ], "parameters": { "temperature": 0.2, "maxOutputTokens": 256, "topK": 40, "topP": 0.95 } }
Ejecuta el siguiente comando para enviar una solicitud al endpoint de PSC, que reenvía la solicitud a la API GenAI. Cuando el endpoint recibe la respuesta, la reenvía a 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"
Debería ver una respuesta similar a la del siguiente ejemplo:
{ "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 } } } }
En la pestaña Uno, comprueba que la dirección IP del endpoint de PSC (
192.168.0.1
) se haya usado para acceder a las APIs de Vertex AI desde la instancia de VMon-prem-client
(subred172.16.10.0/28
).En la terminal
tcpdump
de la pestaña 1 de Cloud Shell, puedes ver que no es necesario buscar el DNS deus-central1-aiplatform.googleapis.com
, ya que la línea que has añadido al archivo/etc/hosts
tiene prioridad y se usa la dirección IP del endpoint de PSC (192.168.0.1
) en la ruta de datos.Debería ver un resultado de
tcpdump
similar al siguiente: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
Limpieza
Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en este tutorial, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.
Para eliminar los recursos individuales del proyecto, ejecuta los siguientes comandos en 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
Siguientes pasos
- Consulta las opciones de redes empresariales para acceder a los endpoints y servicios de Vertex AI.
- Consulta cómo acceder a servicios publicados a través de endpoints.
- Consulta cómo funciona Private Service Connect y por qué ofrece ventajas de rendimiento significativas.
- Más información sobre cómo acceder a las APIs de Google a través de endpoints
- Consulta cómo y por qué usar una zona de reenvío de DNS en lugar de actualizar el archivo
/etc/hosts
a gran escala y en entornos de producción. - Más información sobre las rutas anunciadas personalizadas