Los hosts locales pueden acceder a la IA generativa en Vertex AI, ya sea a través de la Internet pública o de forma privada a través de una arquitectura de red híbrida que usa Private Service Connect (PSC) a través de Cloud VPN o Cloud Interconnect. Ambas opciones ofrecen encriptación SSL/TLS. Sin embargo, la opción privada ofrece un rendimiento mucho mejor y, por lo tanto, se recomienda para aplicaciones esenciales.
En este instructivo, usarás una VPN de alta disponibilidad (VPN con alta disponibilidad) 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 (VPC) que pueden servir como base para la conectividad privada local y de múltiples nubes.
Este instructivo está dirigido a administradores de redes empresariales, investigadores y científicos de datos que estén familiarizados con Vertex AI, VPC, la consola de Google Cloud y Cloud Shell. Contar con conocimientos de IA generativa en Vertex AI es útil, pero no obligatorio.
Objetivos
- Crear dos redes de VPC, 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 de REST para la IA generativa en Vertex AI.
- Una (
- Implementa puertas de enlace de VPN con alta disponibilidad, túneles de Cloud VPN y Cloud Routers para conectar
vertex-networking-vpc
yonprem-vpc
. - Crear un extremo de Private Service Connect (PSC) para reenviar solicitudes a la API de REST de GenAI.
- Configura una ruta anunciada personalizada de Cloud Router en
vertex-networking-vpc
para anunciar rutas del extremo de Private Service Connect aonprem-vpc
. - Crear una instancia de VM de Compute Engine en
onprem-vpc
para representar una aplicación cliente que envíe solicitudes a la API de REST de GenAI a través de una VPN con alta disponibilidad.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.
Antes de comenzar
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Si no eres el propietario del proyecto, el propietario del proyecto debe otorgarte
el rol de IAM de
roles/resourcemanager.projectIamAdmin
. Debes tener este rol para otorgar roles y permisos de IAM a ti mismo y a las cuentas de servicio. - Abre Cloud Shell para ejecutar los comandos detallados en este instructivo. Cloud Shell es un entorno de shell interactivo para Google Cloud que te permite administrar proyectos y recursos desde el navegador web.
- En Cloud Shell, configura el proyecto actual como
el ID del proyecto de Google Cloud y almacénalo
en la variable de shell
projectid
:projectid="PROJECT_ID" gcloud config set project ${projectid}
Reemplaza PROJECT_ID por el ID del proyecto. Si es necesario, puedes ubicar el ID del proyecto en la consola de Google Cloud. Para obtener más información, consulta Encuentra el ID del proyecto. -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
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
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
-
Enable the DNS, IAM, Compute Engine, Service Usage, and Vertex AI APIs:
gcloud services enable dns.googleapis.com
iam.googleapis.com compute.googleapis.com serviceusage.googleapis.com aiplatform.googleapis.com
Crea dos redes de VPC: vertex-networking-vpc
y onprem-vpc
En esta sección, crearás dos redes de VPC: una para que sea la red principal para acceder a la API de IA generativa de Vertex AI (también conocida como GenAI) y la otra para simular la red local.
Crea las redes de VPC
Crea la red de VPC para acceder a la API de 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 rango 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 de Google Cloud, ve a la pestaña Redes en el proyecto actual en la página Red de VPC.
En la lista de redes de VPC, verifica 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, verifica que la subred
onprem-vpc-subnet1
se haya creado en la redonprem-vpc
.
Configura la conectividad híbrida
En esta sección, crearás dos puertas de enlace de VPN
con alta disponibilidad que están conectadas entre sí. Una reside en la
red de VPC vertex-networking-vpc
. La otra se encuentra en la
red de VPC onprem-vpc
.
Cada puerta de enlace contiene un Cloud Router y un par de túneles VPN.
Crea las puertas de enlace de VPN con alta disponibilidad
En Cloud Shell, crea la puerta de enlace de VPN con 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 puerta de enlace de VPN con alta disponibilidad para la red de VPC
onprem-vpc
:gcloud compute vpn-gateways create onprem-vpn-gw1 \ --network onprem-vpc \ --region us-central1
En la consola de Google Cloud, ve a la pestaña Puertas de enlace de CloudVPN en la página VPN.
En la lista de puertas de enlace de VPN, verifica que se hayan creado las dos puertas de enlace (
vertex-networking-vpn-gw1
yonprem-vpn-gw1
) y que cada una tenga dos direcciones IP.
Crea Cloud Routers
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
Agrega una puerta de enlace de Cloud NAT a la red de VPC onprem-vpc
En este paso, agregarás una puerta de enlace de Cloud NAT al
Cloud Router para la red de VPC onprem-vpc
.
Una puerta de enlace de Cloud NAT proporciona conectividad saliente para las instancias
de máquina virtual (VM) de Compute Engine que no tienen direcciones IP externas.
En Cloud Shell, agrega una puerta de enlace de Cloud NAT al 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-central1
En la consola de Google Cloud, ve a la página Cloud Routers.
En la lista de Cloud Router, verifica que se hayan creado
vertex-networking-vpc-router1
yonprem-vpc-router1
. Es posible que debas actualizar la pestaña del navegador de la consola de Google Cloud para ver los valores nuevos.En la lista de Cloud Router, haz clic en
onprem-vpc-router1
.En la página Detalles del router, verifica que se haya creado la puerta de enlace de Cloud NAT
us-central-cloudnat-onprem
.
Crea túneles 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 consola de Google Cloud, ve a la página VPN.
En la lista de túneles VPN, verifica que se hayan creado los cuatro túneles VPN.
Establece sesiones de BGP
Cloud Router usa el protocolo de puerta de enlace fronteriza (BGP) para intercambiar rutas entre
tu red de VPC (en este caso, vertex-networking-vpc
)
y tu red local (representada por onprem-vpc
). En Cloud Router,
configura una interfaz y un par de BGP para tu router local.
La interfaz y la configuración de par de BGP juntas 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 pares BGP entre tus routers, comenzarán automáticamente a intercambiar rutas.
Establece sesiones de BGP para vertex-networking-vpc
En Cloud Shell, en la red
vertex-networking-vpc
, crea una interfaz de 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 par 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 par 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
Establece 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 par 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 par 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
Valida la creación de sesiones de BGP
En la consola de Google Cloud, ve a la página VPN.
En la lista de túneles VPN, verifica que el valor en la columna Estado de la sesión de BGP para cada uno de los túneles haya cambiado de Configura la sesión de BGP a BGP establecida. Es posible que debas actualizar la pestaña del navegador de la consola de Google Cloud para ver los valores nuevos.
Crea el extremo de Private Service Connect (PSC)
En esta sección, crearás un extremo de Private Service Connect (PSC)
para las APIs de Google que las instancias de VM en la red onprem-vpc
usarán para
acceder a la API de GenAI desde tu red onprem-vpc
.
Un extremo de Private Service Connect (PSC) es una dirección IP
interna en la red onprem-vpc
a la que pueden acceder directamente los clientes
de esa red. Este extremo se crea a través de la implementación de una regla de reenvío
que dirige el tráfico de red que coincide con la dirección IP del extremo de PSC
en un paquete de APIs de Google: en particular, el paquete
all-apis.
La dirección IP del extremo de PSC (192.168.0.1
) se anunciará desde el
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 asignar al extremo:
gcloud compute addresses create psc-googleapi-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=192.168.0.1 \ --network=vertex-networking-vpc
Crea el extremo, junto con una regla de reenvío que conecte el extremo a los servicios y las APIs de Google:
gcloud compute forwarding-rules create pscvertex \ --global \ --network=vertex-networking-vpc\ --address=psc-googleapi-ip \ --target-google-apis-bundle=all-apis
Enumera los extremos configurados de PSC y verifica que se haya creado el extremo
pscvertex
:gcloud compute forwarding-rules list \ --filter target="(all-apis OR vpc-sc)" --global
Obtén los detalles del extremo de PSC configurado y verifica que la dirección IP sea
192.168.0.1
:gcloud compute forwarding-rules describe \ pscvertex --global
Crea anuncios de ruta personalizados para vertex-networking-vpc
En esta sección, crearás una
ruta anunciada personalizada
para vertex-networking-vpc-router1
(el Cloud Router de
vertex-networking-vpc
) para anunciar la dirección IP del extremo de
PSC a la red onprem-vpc
.
En la consola de Google Cloud, ve a la página Cloud Routers.
En la lista de Cloud Router, haz clic en
vertex-networking-vpc-router1
.En la página de detalles del router, haz clic en
Editar.En la sección Rutas anunciadas, en Rutas, selecciona Crear rutas personalizadas.
Selecciona la casilla de verificación Anunciar todas las subredes visibles para Cloud Router. Esto hará que continúe el anuncio de las subredes disponibles en el Cloud Router. Habilitar esta opción imita el comportamiento de Cloud Router en el modo de anuncio predeterminado.
Haz clic en Agregar una ruta personalizada.
En Fuente, selecciona Rango de IP personalizado.
En Rango de direcciones IP, ingresa la siguiente dirección IP:
192.168.0.1
En Descripción, ingresa el siguiente texto:
Custom route to advertise Private Service Connect endpoint IP address
Haz clic en Listo y, luego, en Guardar.
Valida que onprem-vpc
haya aprendido las rutas anunciadas
En la consola de Google Cloud, ve a la página Rutas.
En la pestaña Effective routes, haz lo siguiente:
- En Red, elige
onprem-vpc
. - En Región, elige
us-central1 (Iowa)
. - Haz clic en Ver.
En la lista de rutas, verifica que haya entradas cuyos nombres comiencen con
onprem-vpc-router1-bgp-vertex-networking-vpc-tunnel0
yonprem-vpc-router1-bgp-vfertex-networking-vpc-tunnel1
y que ambos tengan el rango de IP de destino de192.168.0.1/32
. (192.168.0.1
es la dirección IP del extremo de PSC).Si estas entradas no aparecen de inmediato, espera unos minutos y, luego, actualiza la pestaña del navegador de la consola de Google Cloud.
- En Red, elige
Configura 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 extremo de PSC y
accede a la API de GenAI.
Crea una cuenta de servicio administrada por el usuario.
En este instructivo, crearás una cuenta de servicio administrada por el usuario según las prácticas recomendadas de IAM y Compute Engine.
En Cloud Shell, ejecuta los siguientes comandos y reemplaza PROJECT_ID por el ID del proyecto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Cree la cuenta de servicio:
gcloud iam service-accounts create user-managed-sa
Asigna el rol de IAM de 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"
Crea la instancia de VM 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 VPN con alta disponibilidad.
Para permitir que Identity-Aware Proxy (IAP) se conecte a tus instancias de VM, crea una regla de firewall que cumpla con lo siguiente:
- Se aplica a todas las instancias de VM que deseas que sean accesibles a través
de IAP. (En este caso, solo hay
on-prem-client
). - Permite el tráfico de TCP a través del puerto 22 desde el rango de IP
35.235.240.0/20
. Este rango contiene todas las direcciones IP que IAP usa para el reenvío de TCP.
Crea la instancia de VM
on-prem-client
. Con el siguiente comando, también se instalan los paquetestcpdump
ydnsutils
, que contienen las utilidadestcpdump
ydig
que usarás más adelante para validar tus solicitudes a la 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 firewall 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
Valida el acceso a Internet pública para la IA generativa en Vertex AI
En esta sección, debes acceder a la instancia de VM on-prem-client
con
Identity-Aware Proxy y, luego, validar la conectividad
pública a las APIs de Vertex AI (incluida GenAI); para ello, ejecuta el comando dig
en el dominio público
de Vertex AI (us-central1-aiplatform.googleapis.com
).
En Cloud Shell (Tab One), ejecuta los siguientes comandos y reemplaza PROJECT_ID por el ID del proyecto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Accede a la instancia de VM
on-prem-client
con 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 de
dig
similar al siguiente, en el que las direcciones IP en 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
Configura y valida el acceso privado a la IA generativa en Vertex AI
En esta sección, debes configurar el acceso privado a la IA generativa en Vertex AI para
que, cuando envíes solicitudes al extremo de servicio público
(us-central1-aiplatform.googleapis.com
), se redireccionen a tu
extremo de PSC. El extremo de PSC, a su vez, reenvía la solicitud
Actualiza el archivo /etc/hosts
para que apunte al extremo de PSC
En este paso, agregarás una línea al archivo /etc/hosts
que hace que las solicitudes
enviadas al extremo del servicio público (us-central1-aiplatform.googleapis.com
)
se redireccionen al extremo de PSC (192.168.0.1
).
En la instancia de VM
on-prem-client
(pestaña uno), usa un editor de texto, comovim
onano
para abrir el archivo/etc/hosts
:sudo vim /etc/hosts
Agrega la siguiente línea al archivo:
192.168.0.1 us-central1-aiplatform.googleapis.com
Esta línea asigna la dirección IP del extremo de PSC (
192.168.0.1
) al nombre de dominio completamente calificado para la API de Google de Vertex AI (us-central1-aiplatform.googleapis.com
).El archivo editado debería verse de la siguiente manera:
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
, presiona la teclaEsc
y, a continuación, escribe:wq
para guardar el archivo y salir. - Si usas
nano
, escribeControl+O
y presionaEnter
para guardar el archivo y, luego, escribeControl+X
para salir.
- Si usas
Haz ping en el extremo 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 extremo 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 acceso de los datos IP cuando envíes una solicitud de predicción en línea al extremo:sudo tcpdump -i any port 53 -n or host 192.168.0.1
Crea la solicitud privada
En este paso, crearás un archivo de texto llamado request.json
que contenga la
carga útil para una solicitud curl
de muestra que envías a la API de REST de GenAI.
Para obtener más información sobre las solicitudes de muestra, consulta
Solicitud de ejemplo.
Con el comando
tcpdump
en ejecución en la pestaña uno, abre una sesión nueva de Cloud Shell (pestaña dos); para ello, haz clic en abrir una pestaña nueva en Cloud Shell.En la sesión nueva de Cloud Shell (pestaña dos), ejecuta los siguientes comandos y reemplaza PROJECT_ID por el ID del proyecto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Accede a la instancia de VM
on-prem-client
con IAP:gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Ejecuta los siguientes comandos y reemplaza PROJECT_ID por el ID del proyecto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Usa un editor de texto, como
vim
onano
, para crear un archivo nuevo 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 extremo de PSC, que reenvía la solicitud a la API de GenAI. Cuando el extremo 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ías ver una respuesta similar al 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, verifica que la dirección IP del extremo de PSC (
192.168.0.1
) se haya usado para acceder a las APIs de Vertex AI desde la instancia de VM deon-prem-client
(subred172.16.10.0/28
).En la terminal
tcpdump
en la pestaña uno de Cloud Shell, puedes ver que no es necesaria una búsqueda de DNS aus-central1-aiplatform.googleapis.com
, ya que la línea que agregaste al archivo/etc/hosts
tiene prioridad y se usa la dirección IP del extremo de PSC (192.168.0.1
) en la ruta de datos.Deberías ver un resultado
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
Limpia
Para evitar que se apliquen cargos a su cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Para borrar los recursos individuales del proyecto, puedes ejecutar 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
¿Qué sigue?
- Obtén información sobre las opciones de herramientas de redes empresariales para acceder a los extremos y servicios de Vertex AI.
- Obtén información sobre cómo acceder a los servicios publicados a través de extremos.
- Obtén información sobre cómo funciona Private Service Connect y por qué ofrece beneficios de rendimiento significativos.
- Más información sobre el acceso a las APIs de Google a través de extremos.
- Obtén más información sobre 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 los entornos de producción. - Obtén más información sobre rutas anunciadas personalizadas.