1. Introduzione
Gli host on-premise possono raggiungere una previsione online in modo nativo attraverso la rete internet pubblica (opzione 1) o utilizzando Cloud VPN o Cloud Interconnect con Private Service Connect (PSC) (opzione 2) dalla rete on-premise, entrambi con crittografia SSL/TLS. La connettività ibrida alla previsione online sull'interconnessione è più efficiente di quella consigliata da Internet per le applicazioni critiche, come illustrato nella Figura 1.
In questo tutorial dimostreremo come utilizzare la VPN ad alta disponibilità (VPN ad alta disponibilità) per accedere privatamente a Previsione online tra due reti VPC che possono fungere da base per la connettività privata multi-cloud e on-premise.
Tieni presente che Vertex Online Prediction è un endpoint pubblico, quindi vuoi limitare l'accesso utilizzando Controlli di servizio VPC (VPC-SC) per creare perimetri sicuri per consentire o negare l'accesso a Vertex e ad altre API di Google. Questo tutorial non copre VPC-SC. Per ulteriori dettagli, fai riferimento a Controlli di servizio VPC con Vertex AI
Cosa creerai
Configurerai una rete VPC denominata on-prem-vpc
per rappresentare un ambiente on-premise. Per il tuo deployment, on-prem-vpc
non esisterebbe, ma verrebbe utilizzata una rete ibrida con il tuo data center on-premise o il tuo cloud provider.
In base ai dettagli riportati di seguito, creerai un'architettura completa di Private Service Connect che illustra l'accesso pubblico alle previsioni online tramite Cloud NAT e in privato utilizzando PSC su VPN ad alta disponibilità.
Una volta eseguito il deployment della previsione online nel progetto Google Cloud, verranno esplorati i seguenti casi d'uso:
L'accesso pubblico alla previsione online è costituito da:
- Crea un'istanza GCE (nat-client) che utilizza NAT per l'accesso a internet in uscita
- Utilizza CURL per l'inferenza rispetto al modello
- Utilizzare TCPDUMP per confermare che la previsione online sia accessibile tramite un VIP pubblico
L'accesso privato alla previsione online è costituito da:
- Esegui il deployment di un modello sull'endpoint di previsione online di Vertex AI nel progetto
- Crea un endpoint Private Service Connect (Googleapis) nell'aiml-vpc
- Esporta l'indirizzo IP PSC sul router Cloud come pubblicità personalizzata sul VPC on-prem
- Crea un'istanza GCE (client privato) e aggiorna il file etc/hosts con l'IP dell'endpoint PSC
- Utilizza CURL per l'inferenza rispetto al modello
- utilizza TCPDUMP per convalidare l'accesso alla previsione online tramite l'indirizzo IP dell'endpoint PSC
Cosa imparerai a fare
- Come stabilire un endpoint Private Service Connect
- Come pubblicizzare l'IP dell'endpoint PSC sul router Cloud
- Come utilizzare TCPDUMP per convalidare l'accesso alle previsioni online, sia pubblico che privato
Che cosa ti serve
- Progetto Google Cloud
Autorizzazioni IAM
2. Prima di iniziare
Aggiornare il progetto per supportare il tutorial
Questo tutorial utilizza $variables per facilitare l'implementazione della configurazione di gcloud in Cloud Shell.
All'interno di Cloud Shell, esegui queste operazioni:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Attiva i servizi
All'interno di Cloud Shell, esegui queste operazioni:
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable iam.googleapis.com
gcloud services enable compute.googleapis.com
gcloud services enable notebooks.googleapis.com
4. configurazione aiml-vpc
Crea aiml-vpc
All'interno di Cloud Shell, esegui queste operazioni:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
Crea la subnet del blocco note gestito dall'utente
All'interno di Cloud Shell, esegui queste operazioni:
gcloud compute networks subnets create workbench-subnet --project=$projectid --range=172.16.10.0/28 --network=aiml-vpc --region=us-central1 --enable-private-ip-google-access
Router Cloud e configurazione NAT
Nel tutorial viene utilizzato Cloud NAT per i download di pacchetti software per blocchi note perché l'istanza di blocco note gestita dall'utente non ha un indirizzo IP esterno. Cloud NAT offre inoltre funzionalità NAT in uscita, il che significa che agli host internet non è consentito avviare comunicazioni con un blocco note gestito dall'utente, rendendolo più sicuro.
All'interno di Cloud Shell, crea il router Cloud a livello di regione.
gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1
In Cloud Shell, crea il gateway Cloud Nat a livello di regione.
gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
5. Configurazione on-prem-vpc
Crea la VM on-prem-vpc
All'interno di Cloud Shell, esegui queste operazioni:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Crea la subnet nat
All'interno di Cloud Shell, esegui queste operazioni:
gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1
Crea la subnet private-ip
All'interno di Cloud Shell, esegui queste operazioni:
gcloud compute networks subnets create private-ip-subnet --project=$projectid --range=192.168.20.0/28 --network=on-prem-vpc --region=us-central1
Router Cloud e configurazione NAT
Cloud NAT viene utilizzato nel tutorial per il download dei pacchetti software. Cloud NAT offre inoltre funzionalità NAT in uscita, il che significa che agli host internet non è consentito avviare comunicazioni con il computing, rendendolo più sicuro.
All'interno di Cloud Shell, crea il router Cloud a livello di regione.
gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1
In Cloud Shell, crea il gateway Cloud Nat a livello di regione.
gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-on-prem-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
6. Crea l'endpoint Private Service Connect
Nella sezione seguente creerai un endpoint Private Service Connect (PSC) che verrà utilizzato per accedere all'API Vertex da on-prem-vpc. L'indirizzo IP PSC 100.100.10.10 verrà pubblicizzato da aiml-vpc-cloud-router-vpn come pubblicità di router personalizzata sulla rete on-premise in un passaggio successivo.
Da Cloud Shell
gcloud compute addresses create psc-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=100.100.10.10 \
--network=aiml-vpc
Crea l'endpoint PSC
Da Cloud Shell
gcloud compute forwarding-rules create pscvertex \
--global \
--network=aiml-vpc \
--address=psc-ip \
--target-google-apis-bundle=all-apis
Elenca gli endpoint di Private Service Connect configurati
Da Cloud Shell
gcloud compute forwarding-rules list \
--filter target="(all-apis OR vpc-sc)" --global
Descrivere gli endpoint di Private Service Connect configurati
Da Cloud Shell
gcloud compute forwarding-rules describe \
pscvertex --global
7. Connettività ibrida
Nella sezione seguente creerai un router Cloud che ti consente di scambiare dinamicamente le route tra il tuo virtual private cloud (VPC) e la rete peer utilizzando il Border Gateway Protocol (BGP).
Il router Cloud può configurare una sessione BGP su un tunnel Cloud VPN per connettere le tue reti. Apprende automaticamente i nuovi intervalli di indirizzi IP della subnet e li annuncia alla rete peer.
Nel tutorial eseguirai il deployment della VPN ad alta disponibilità tra aiml-vpc e on-prem-vpc.
Crea il gateway VPN ad alta disponibilità per aiml-vpc
Quando viene creato ciascun gateway, vengono automaticamente allocati due indirizzi IPv4 esterni, uno per ogni interfaccia del gateway.
In Cloud Shell, crea il gateway VPN ad alta disponibilità
gcloud compute vpn-gateways create aiml-vpn-gw \
--network=aiml-vpc\
--region=us-central1
Crea il gateway VPN ad alta disponibilità per on-prem-vpc
Quando viene creato ciascun gateway, vengono automaticamente allocati due indirizzi IPv4 esterni, uno per ogni interfaccia del gateway. Prendi nota di questi indirizzi IP da utilizzare in seguito durante la procedura di configurazione.
In Cloud Shell, crea il gateway VPN ad alta disponibilità.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
Convalida la creazione di gateway VPN ad alta disponibilità
Utilizzando la console, vai a HYBRID CONNECTIVITY → VPN → GATEWAY CLOUD VPN e verifica che gli IP del gateway vengano generati.
Crea il router Cloud per aiml-vpc
In Cloud Shell, crea il router Cloud che si trova in us-central1
gcloud compute routers create aiml-cr-us-central1 \
--region=us-central1 \
--network=aiml-vpc\
--asn=65001
Crea il router Cloud per la VPN on-prem-vpc
In Cloud Shell, crea il router Cloud che si trova in us-central1
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
Crea i tunnel VPN per aiml-vpc
Creerai due tunnel VPN su ciascun gateway VPN ad alta disponibilità.
Crea tunnel VPN0
In Cloud Shell, crea tunnel0:
gcloud compute vpn-tunnels create aiml-vpc-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router aiml-cr-us-central1 \
--vpn-gateway aiml-vpn-gw \
--interface 0
Crea tunnel VPN1
In Cloud Shell, crea tunnel1:
gcloud compute vpn-tunnels create aiml-vpc-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router aiml-cr-us-central1 \
--vpn-gateway aiml-vpn-gw \
--interface 1
Crea i tunnel VPN per on-prem-vpc
Creerai due tunnel VPN su ciascun gateway VPN ad alta disponibilità.
Crea tunnel VPN0
In Cloud Shell, crea tunnel0:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway aiml-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 0
Crea tunnel VPN1
In Cloud Shell, crea tunnel1:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway aiml-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 1
Convalida la creazione di tunnel VPN
Utilizzando la console, vai a IBRIDO CONNETTIVITÀ → VPN → TUNNEL CLOUD VPN.
8. Stabilisci vicini BGP
Crea sessioni BGP
In questa sezione configurerai le interfacce del router Cloud e i peer BGP.
Crea un'interfaccia BGP e il peering per aiml-vpc
In Cloud Shell, crea l'interfaccia BGP:
gcloud compute routers add-interface aiml-cr-us-central1 \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel aiml-vpc-tunnel0 \
--region us-central1
In Cloud Shell, crea il peer BGP:
gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region us-central1
In Cloud Shell, crea l'interfaccia BGP:
gcloud compute routers add-interface aiml-cr-us-central1 \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel aiml-vpc-tunnel1 \
--region us-central1
In Cloud Shell, crea il peer BGP:
gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region us-central1
Crea un'interfaccia BGP e il peering per on-prem-vpc
In Cloud Shell, crea l'interfaccia BGP:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel0-to-aiml-vpc\
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region us-central1
In Cloud Shell, crea il peer BGP:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-aiml-vpc-tunnel0 \
--interface if-tunnel1-to-aiml-vpc\
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region us-central1
In Cloud Shell, crea l'interfaccia BGP:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel1-to-aiml-vpc\
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region us-central1
In Cloud Shell, crea il peer BGP:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-aiml-vpc-tunnel1\
--interface if-tunnel2-to-aiml-vpc\
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region us-central1
Vai a CONNECTIVITY ibrida → VPN per visualizzare i dettagli del tunnel VPN.
Convalida le route apprese aiml-vpc su VPN ad alta disponibilità
Utilizzando la console, vai a Rete VPC → Reti VPC → aiml-vpc→ ROUTES → REGIONE → US-CENTRAL1 → VISUALIZZA
Osserva che aiml-vpc ha appreso le route dalle subnet nat-prem-vpc e private-ip-subnet
Verifica che il VPC on-prem abbia appreso la subnet workbench-subnet su HA-VPN
Utilizzando la console, vai a Rete VPC → Reti VPC → on-prem-vpc → ROUTES → REGIONE → US-CENTRAL1 → VISUALIZZA
9. Crea annunci di route personalizzati aiml-vpc
L'IP dell'endpoint di Private Service Connect non è pubblicizzato automaticamente dal router Cloud aiml-cr-us-central1 perché la subnet non è configurata nel VPC.
Dovrai invece creare un annuncio di route personalizzato dal router cloud aiml-cr-us-central per l'indirizzo IP dell'endpoint 100.100.10.10 che verrà pubblicizzato nell'ambiente on-premise su BGP verso il VPC on-prem.
Dalla console, vai a CONNETTIVITÀ IBRIDA → ROUTER CLOUD → aiml-cr-us-central1, quindi seleziona MODIFICA.
Nella sezione Route annunciate, seleziona l'opzione Crea route personalizzate, aggiorna i campi in base all'esempio riportato di seguito, seleziona FINE e poi fai clic su SALVA.
Convalida
Verifica che la VPN on-prem-vpc abbia appreso l'indirizzo IP dell'endpoint PSC su VPN ad alta disponibilità
Utilizzando la console, vai a Rete VPC → Reti VPC → on-prem-vpc → ROUTES → REGIONE → US-CENTRAL1 → VISUALIZZA
10. Crea annunci di route personalizzati on-prem-vpc
Il router Cloud on-prem-vpc pubblicizza tutte le subnet per impostazione predefinita, ma è necessaria solo la subnet private-ip-subnet.
Nella sezione seguente, aggiorna gli annunci di route dal router Cloud on-prem-cr-us-central1.
Dalla console, vai a IBRIDO CONNETTIVITÀ → ROUTER CLOUD → on-prem-cr-us-central1, quindi seleziona MODIFICA.
Nella sezione Route annunciate, seleziona l'opzione Crea route personalizzate, aggiorna i campi in base all'esempio riportato di seguito, seleziona FINE e poi fai clic su SALVA.
Convalida
Verifica che aiml-vpc abbia imparato la route private-ip-subnet da on-prem-vpc.
Utilizzando la console, vai a Rete VPC → Reti VPC → aiml-vpc → ROUTES → REGIONE → US-CENTRAL1 → VISUALIZZA
11. Creare un account di servizio gestito dall'utente (istanze GCE)
Per fornire un livello di controllo preciso all'API Vertex, è necessario un account di servizio gestito dall'utente che verrà applicato alle istanze client native e private. Una volta generate, le autorizzazioni dell'account di servizio possono essere modificate in base ai requisiti aziendali. Nel tutorial, all'account di servizio gestito dall'utente vertex-sa verranno applicati i seguenti ruoli:
Devi l'API Service Account prima di procedere.
In Cloud Shell, crea l'account di servizio.
gcloud iam service-accounts create gce-vertex-sa \
--description="service account for vertex" \
--display-name="gce-vertex-sa"
All'interno di Cloud Shell, aggiorna l'account di servizio con il ruolo Amministratore istanze Compute
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"
All'interno di Cloud Shell, aggiorna l'account di servizio con il ruolo Vertex AI User
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
12. Creare un account di servizio gestito dall'utente (Blocco note)
Nella sezione seguente creerai un account di servizio gestito dall'utente che verrà associato a Vertex Workbench (Notebook) utilizzato nel tutorial.
Nel tutorial, all'account di servizio verranno applicati i seguenti ruoli:
In Cloud Shell, crea l'account di servizio.
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
All'interno di Cloud Shell, aggiorna l'account di servizio con il ruolo Storage Admin.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"
All'interno di Cloud Shell, aggiorna l'account di servizio con il ruolo Vertex AI User.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
All'interno di Cloud Shell, aggiorna l'account di servizio con il ruolo Artifact Registry Admin.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
All'interno di Cloud Shell, elenca l'account di servizio e prendi nota dell'indirizzo email che verrà utilizzato durante la creazione del blocco note gestito dall'utente.
gcloud iam service-accounts list
13. Creazione delle istanze di test
Nella sezione seguente creerai istanze di test per convalidare diversi metodi per raggiungere le API Vertex, in particolare:
- L'istanza
nat-client,
utilizzerà Cloud NAT per risolvere Vertex AI e accedere quindi all'endpoint di previsione online su internet - L'istanza
private-client
utilizzerà l'IP Private Service Connect 100.100.10.10 per accedere all'endpoint Online Prediction tramite HA-VPN.
All'interno di Cloud Shell, crea l'istanza nat-client
.
gcloud compute instances create nat-client \
--zone=us-central1-a \
--image-family=debian-11 \
--image-project=debian-cloud \
--subnet=nat-subnet \
--service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--no-address \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump dnsutils -y"
All'interno di Cloud Shell, crea l'istanza private-client
.
gcloud compute instances create private-client \
--zone=us-central1-a \
--image-family=debian-11 \
--image-project=debian-cloud \
--subnet=private-ip-subnet \
--service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--no-address \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump dnsutils -y"
Per consentire a Identity-Aware Proxy (IAP) di connettersi alle tue istanze VM, crea una regola firewall che:
- Si applica a tutte le istanze VM a cui vuoi rendere accessibile tramite IAP.
- Consente il traffico in entrata dall'intervallo IP 35.235.240.0/20. Questo intervallo contiene tutti gli indirizzi IP utilizzati da IAP per l'inoltro TCP.
In Cloud Shell, crea la regola firewall IAP.
gcloud compute firewall-rules create ssh-iap-on-prem-vpc \
--network on-prem-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
14. Crea un blocco note gestito dall'utente
Nella sezione seguente, crea un blocco note gestito dall'utente che incorpora l'account di servizio creato in precedenza, user-managed-notebook-sa.
All'interno di Cloud Shell, crea l'istanza client privato.
gcloud notebooks instances create workbench-tutorial \
--vm-image-project=deeplearning-platform-release \
--vm-image-family=common-cpu-notebooks \
--machine-type=n1-standard-4 \
--location=us-central1-a \
--subnet-region=us-central1 \
--subnet=workbench-subnet \
--no-public-ip --service-account=user-managed-notebook-sa@$projectid.iam.gserviceaccount.com
15. Esegui il deployment del modello e della previsione online
Nella sezione seguente, utilizza il codelabVertex AI:Usa le routine di previsione personalizzate con Sklearn per pre-elaborare e post-elaborare i dati per le previsioni iniziando dalla Sezione 7,poiché hai già creato un blocco note nel passaggio precedente. Una volta eseguito il deployment del modello, torna al tutorial per iniziare la sezione successiva.
16. Convalida l'accesso all'API Vertex su internet
Nella sezione seguente, accederai a instance, nat-client e convaliderai la connettività a Vertex AI tramite l'uso di dig e tcpdump sul dominio us-central1-aiplatform.googleapis.com utilizzato per risolvere le API Vertex.
Accedi a nat-client utilizzando IAP in Cloud Shell per convalidare la connettività all'API Vertex eseguendo una ricerca sul dominio Vertex us-central1-aiplatform.googleapis.com
gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Esegui lo scavo.
dig us-central1-aiplatform.googleapis.com
Ad esempio, prendi nota degli IP pubblici nella risposta del DNS.
user@nat-client:~$ dig us-central1-aiplatform.googleapis.com
; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56761
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A
;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.111.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.1.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.121.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.103.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.171.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.159.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.161.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.172.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.126.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.70.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95
;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Thu Jun 29 01:35:57 UTC 2023
;; MSG SIZE rcvd: 322
Dal sistema operativo nat-client, esegui tcpdump per convalidare la risoluzione DNS quando esegui un curl rispetto alla previsione online.
sudo tcpdump -i any port 53 -n
Esempio:
user@nat-client:~$ sudo tcpdump -i any port 53 -n
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
Apri un nuovo terminale Cloud Shell selezionando "+". Una volta aperta la nuova scheda, aggiorna la variabile del nome del progetto.
In Cloud Shell, aggiorna la variabile del nome del progetto.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Nella seconda parte di Cloud Shell, esegui un'istanza da ssh a nat-client.
gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"
Nella sezione seguente creerai un file instances.json utilizzando l'editor sudo VI o nano e inserirai la stringa di dati utilizzata per ottenere una previsione dal modello di cui è stato eseguito il deployment.
Dal sistema operativo nat-client, crea un file instances.json con la stringa di dati riportata di seguito:
{"instances": [
[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
[0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}
Esempio:
user@nat-client:$ more instances.json
{"instances": [
[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
[0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}
user@nat-client:$
Recupera dalla console Cloud l'ID endpoint di previsione online che verrà utilizzato nei passaggi successivi.
Vai a VERTEX AI → PREVISIONE ONLINE
Nel sistema operativo nat-client, crea le seguenti variabili:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Esempio:
ENDPOINT_ID="3328226095324463104"
Dal sistema operativo nat-client, esegui un comando curl per ottenere una risposta dal modello.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Esempio: puoi notare una previsione riuscita.
user@nat-client$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
{
"predictions": [
"$479.0",
"$586.0"
],
"deployedModelId": "1949163636186415104",
"model": "projects/234086459238/locations/us-central1/models/947543727654567936",
"modelDisplayName": "diamonds-cpr",
"modelVersionId": "1"
}
17. Convalida - Accesso a internet all'API Vertex
Ora che hai eseguito la previsione, diamo un'occhiata ai risultati di TCPDUMP (terminale 1) che indicano l'istanza nat-client (192.168.10.2) che esegue una query DNS sul server DNS locale 169.254.169.254 per il dominio Vertex AI us-central1-aiplatform.googleapis.com. Il risultato della query DNS sono indirizzi IP virtuali (VIPS) pubblici per le API Vertex, come indicato di seguito:
user@nat-client:~$ sudo tcpdump -i any port 53 -n
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
20:05:09.260937 ens4 Out IP 192.168.10.2.40782 > 169.254.169.254.53: 47190+ A? oauth2.googleapis.com. (39)
20:05:09.260946 ens4 Out IP 192.168.10.2.40782 > 169.254.169.254.53: 28075+ AAAA? oauth2.googleapis.com. (39)
20:05:09.263556 ens4 In IP 169.254.169.254.53 > 192.168.10.2.40782: 28075 4/0/0 AAAA 2607:f8b0:4001:c34::5f, AAAA 2607:f8b0:4001:c54::5f, AAAA 2607:f8b0:4001:c16::5f, AAAA 2607:f8b0:4001:c17::5f (151)
20:05:09.265018 ens4 In IP 169.254.169.254.53 > 192.168.10.2.40782: 47190 16/0/0 A 74.125.201.95, A 74.125.202.95, A 74.125.69.95, A 64.233.183.95, A 173.194.193.95, A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 64.233.191.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95 (295)
20:05:09.474478 ens4 Out IP 192.168.10.2.57356 > 169.254.169.254.53: 36008+ A? us-central1-aiplatform.googleapis.com. (55)
20:05:09.474488 ens4 Out IP 192.168.10.2.57356 > 169.254.169.254.53: 47020+ AAAA? us-central1-aiplatform.googleapis.com. (55)
20:05:09.477190 ens4 In IP 169.254.169.254.53 > 192.168.10.2.57356: 36008 16/0/0 A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95, A 142.250.136.95, A 142.250.148.95, A 209.85.200.95, A 209.85.234.95, A 142.250.152.95, A 142.250.128.95 (311)
20:05:09.478607 ens4 In IP 169.254.169.254.53 > 192.168.10.2.57356: 47020 4/0/0 AAAA 2607:f8b0:4001:c1b::5f, AAAA 2607:f8b0:4001:c0c::5f, AAAA 2607:f8b0:4001:c0e::5f, AAAA 2607:f8b0:4001:c1e::5f (167)
18. Abilita l'accesso privato alle API Vertex
Nella sezione seguente accederai alle API Vertex utilizzando Private Service Connect su networking ibrido (VPN ad alta disponibilità) per raggiungere privatamente la previsione online. Nell'esempio utilizzato nel tutorial, aggiorni il file /etc/hosts nell'istanza private-client.
Nel tuo ambiente on-premise, è opportuno aggiornare uno o più file /etc/hosts per il test, ma per ambienti di produzione e su larga scala è più auspicabile creare una nuova zona di inoltro utilizzando il nome di dominio completo dell'endpoint PSC.
Ad esempio, l'endpoint psc creato nel tutorial è chiamato pscvertex e si traduce in pscvertex.p.googleapis.com quando si utilizza l'endpoint per vertex aggiungendo il nome di dominio completo con il servizio, ad esempio us-central1-aiplatform-pscvertex.p.googleapis.com.
L'aggiornamento del DNS on-premise con l'endpoint PSC richiede anche il refactoring delle applicazioni locali per chiamare il FDQN, ad esempio us-central1-aiplatform-pscvertex.p.googleapis.com anziché l'endpoint pubblico nativo us-central1-aiplatform.googleapis.com.
I client che possono essere configurati per utilizzare un endpoint personalizzato possono utilizzare i nomi DNS di p.googleapis.com per inviare richieste a un endpoint.
Consulta la documentazione della libreria client o client per informazioni su come configurarla per l'utilizzo di endpoint personalizzati. Ad esempio:
- Python: puoi configurare api_endpoint in Client options class (Classe opzioni client) nel pacchetto google-api-core.
- Go: puoi configurare WithEndpoint nel pacchetto opzioni client nel pacchetto API.
- gcloud: puoi configurare api_endpoint_overrides
Apri un nuovo terminale Cloud Shell selezionando "+". Una volta aperta la nuova scheda, aggiorna la variabile del nome del progetto.
Da Cloud Shell.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Accedi al client privato utilizzando IAP in un nuovo Cloud Shell per convalidare la connettività all'API Vertex eseguendo una ricerca sul dominio Vertex us-central1-aiplatform.googleapis.com
Da Cloud Shell, accedi all'istanza del sistema operativo client privato.
gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Esegui lo scavo.
dig us-central1-aiplatform.googleapis.com
Ad esempio, prendi nota degli IP pubblici in base alla risposta del DNS.
user@private-client:~$ dig us-central1-aiplatform.googleapis.com
; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33311
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A
;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.182.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.183.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.193.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.194.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.195.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.196.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.197.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.191.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.74.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.192.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.145.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.146.95
;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Sun Jul 02 20:5
Aggiorna l'istanza client privato /etc/hosts utilizzando sudo VI editor o nano per creare un record del nome di dominio completo di Vertex AI us-central1-aiplatform.googleapis.com che punti all'endpoint PSC 100.100.10.10, senza ulteriori modifiche.
Esempio:
user@private-client:~$ more /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
100.100.10.10 us-central1-aiplatform.googleapis.com
192.168.20.2 private-client.c.$projectid.internal private-client # Added by Google
169.254.169.254 metadata.google.internal # Added by Google
Dal sistema operativo client privato, esegui un PING nell'endpoint API Vertex.
ping us-central1-aiplatform.googleapis.com
Ad esempio, PING restituisce l'IP dell'endpoint PSC, ma non è prevista alcuna risposta.
user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.
Dal sistema operativo client privato, esegui tcpdump per convalidare la risoluzione DNS e il percorso dati IP verso l'endpoint PSC quando esegui un comando curl sulla previsione online.
sudo tcpdump -i any port 53 -n or host 100.100.10.10
Apri un quarto terminale Cloud Shell selezionando "+". Una volta aperta la nuova scheda, aggiorna la variabile del nome del progetto.
In Cloud Shell, aggiorna la variabile del nome del progetto.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Nella quarta istanza di Cloud Shell, esegui un'istanza mediante SSH per connetterti al client privato.
gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"
Nella sezione seguente creerai un file instances.json utilizzando l'editor sudo VI o nano e inserirai la stringa di dati utilizzata per ottenere una previsione dal modello di cui è stato eseguito il deployment.
Dal sistema operativo client privato, crea un file instances.json con la stringa di dati riportata di seguito:
{"instances": [
[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
[0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}
Esempio:
user@private-client:$ more instances.json
{"instances": [
[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
[0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}
user@private-client:$
Nel sistema operativo client privato, crea le seguenti variabili:
gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Esempio:
ENDPOINT_ID="3328226095324463104"
Dal sistema operativo client privato in Cloud Shell quattro, esegui un comando curl per ottenere una risposta dal modello.
curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
19. Convalida - Accesso privato all'API Vertex
Dal sistema operativo client privato in Cloud Shell quattro, nota che l'IP dell'endpoint PSC (100.100.10.10) è stato utilizzato per accedere all'API Vertex.
user@private-client$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=upload.video.google.com
* start date: May 29 08:21:36 2023 GMT
* expire date: Aug 21 08:21:35 2023 GMT
* subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
* issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55f2ab65c2c0)
> POST /v1/projects/$projectid/locations/us-central1/endpoints/3328226095324463104:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.a0AbVbY6NdCbIJYj0mQROeq-xYgQCw534TTtjRc1kBAEOimKCFxb3gqgD5AvhfefJatSNr33eW1YJirfQVMptFoqfjRoB-i8zEJJ_GGCVqhsVnpSOjK0hzJQSuo2YGjIiSe1o1zdo7lWmh1Px-vLe8FImieGkrQ1hqVaa6aCgYKAXgSARESFQFWKvPlUQ_FuKB2hrDJRyFDjupL1g0171
> content-type: application/json
> content-length: 154
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200
< content-type: application/json; charset=UTF-8
< x-vertex-ai-internal-prediction-backend: harpoon
< date: Mon, 03 Jul 2023 22:13:35 GMT
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
<
{
"predictions": [
"$479.0",
"$586.0"
],
"deployedModelId": "1949163636186415104",
"model": "projects/234086459238/locations/us-central1/models/947543727654567936",
"modelDisplayName": "diamonds-cpr",
"modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact
Dal terminale TCPDUMP in Cloud Shell tre, possiamo confermare che non è stata osservata una ricerca DNS per us-central1-aiplatform.googleapis.com poiché il file /etc/host ha ancora la precedenza sull'indirizzo IP PSC 100.100.10.10 nel percorso dei dati.
user@private-client:~$ sudo tcpdump -i any port 53 -n or host 100.100.10.10
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
22:13:35.507625 ens4 Out IP 192.168.20.2.37004 > 169.254.169.254.53: 58585+ A? oauth2.googleapis.com. (39)
22:13:35.507631 ens4 Out IP 192.168.20.2.37004 > 169.254.169.254.53: 15580+ AAAA? oauth2.googleapis.com. (39)
22:13:35.511796 ens4 In IP 169.254.169.254.53 > 192.168.20.2.37004: 58585 16/0/0 A 142.251.6.95, A 108.177.112.95, A 74.125.124.95, A 172.217.212.95, A 172.217.214.95, A 172.253.114.95, A 172.253.119.95, A 108.177.111.95, A 142.250.1.95, A 108.177.121.95, A 142.250.103.95, A 108.177.120.95, A 142.251.171.95, A 142.250.159.95, A 142.251.120.95, A 142.251.161.95 (295)
22:13:35.512002 ens4 In IP 169.254.169.254.53 > 192.168.20.2.37004: 15580 4/0/0 AAAA 2607:f8b0:4001:c2b::5f, AAAA 2607:f8b0:4001:c18::5f, AAAA 2607:f8b0:4001:c5f::5f, AAAA 2607:f8b0:4001:c58::5f (151)
22:13:35.722145 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [S], seq 1951267724, win 65320, options [mss 1420,sackOK,TS val 1371205990 ecr 0,nop,wscale 7], length 0
22:13:35.730727 ens4 In IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [S.], seq 3198878726, ack 1951267725, win 65535, options [mss 1366,sackOK,TS val 67847676 ecr 1371205990,nop,wscale 8], length 0
22:13:35.730760 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 1, win 511, options [nop,nop,TS val 1371205999 ecr 67847676], length 0
22:13:35.738339 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 1:518, ack 1, win 511, options [nop,nop,TS val 1371206006 ecr 67847676], length 517
22:13:35.739922 ens4 In IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], ack 518, win 261, options [nop,nop,TS val 67847688 ecr 1371206006], length 0
22:13:35.740860 ens4 In IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], seq 1:2709, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 2708
22:13:35.740863 ens4 In IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [P.], seq 2709:4699, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 1990
22:13:35.740874 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 2709, win 497, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.740886 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 4699, win 485, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.742709 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 518:598, ack 4699, win 501, options [nop,nop,TS val 1371206011 ecr 67847689], length 80
22:13:35.743996 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 598:644, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 46
22:13:35.744011 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 644:693, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 49
22:13:35.744082 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 693:728, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 35
22:13:35.744165 ens4 Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 728:1069, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 341
Hai convalidato la connessione alla previsione online tramite un endpoint pubblico via Internet e privatamente utilizzando la rete ibrida e Private Service Connect (googleapis). Esci dal sistema operativo che torna al prompt di Cloud Shell.
20. Esegui la pulizia
Da Cloud Shell, elimina i componenti del tutorial.
gcloud compute forwarding-rules delete pscvertex --global --quiet
gcloud compute instances delete workbench-tutorial --zone=us-central1-a --quiet
gcloud compute addresses delete psc-ip --global --quiet
gcloud compute networks subnets delete workbench-subnet --region=us-central1 --quiet
gcloud compute vpn-tunnels delete aiml-vpc-tunnel0 aiml-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete aiml-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet
gcloud compute routers delete aiml-cr-us-central1 cloud-router-us-central1-aiml-nat --region=us-central1 --quiet
gcloud compute routers delete cloud-router-us-central1-on-prem-nat on-prem-cr-us-central1 --region=us-central1 --quiet
gcloud compute instances delete nat-client private-client --zone=us-central1-a --quiet
gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet
gcloud compute networks subnets delete nat-subnet private-ip-subnet --region=us-central1 --quiet
gcloud compute networks delete on-prem-vpc --quiet
gcloud compute networks delete aiml-vpc --quiet
Elimina i componenti Vertex
Per eliminare l'immagine container, vai ad Artifact Registry, seleziona il repository che hai creato e poi Elimina
Per eliminare il bucket di archiviazione, utilizzando il menu di navigazione nella console Cloud, vai a Storage, seleziona il bucket e fai clic su Elimina:
Annulla il deployment del modello dall'endpoint. Vai a Vertex AI → Previsione online → Seleziona diamonds-cpr_endpoint → Annulla il deployment del modello nell'endpoint → Annulla il deployment
Elimina il modello. Vai a Vertex AI → Model Registry → Elimina modello
Elimina l'endpoint di previsione online. Vai a Vertex AI → Previsione online → Seleziona diamonds-cpr_endpoint → Elimina endpoint
21. Complimenti
Congratulazioni, hai configurato e convalidato la connessione a Previsione online in modo nativo tramite internet e privatamente con Private Service Connect e il networking ibrido.
Hai creato un client nat e un client privato e hai utilizzato TCPDUMP per convalidare gli indirizzi IP utilizzati per raggiungere le API Vertex. Inoltre, hai appreso cos'è Private Service Connect (googleapis) e come può essere utilizzato per isolare le applicazioni on-premise e multi-cloud sfruttando un endpoint PSC del cliente.
Cosmopup pensa che i tutorial siano straordinari.
Passaggi successivi
Guarda alcuni di questi tutorial...
- Private Service Connect per le API di Google
- Vertex AI crea un blocco note sicuro gestito dall'utente
Per approfondire Video
- Panoramica di Private Service Connect
- Che cos'è Private Service Connect?
- Come ottenere previsioni da un modello ML
- Che cos'è Vertex AI?