Vertex AI greift mit PSC privat auf Onlinevorhersageendpunkte zu

1. Einführung

Lokale Hosts können einen Onlinevorhersageendpunkt nativ über das öffentliche Internet (Option 1) oder über Cloud VPN oder Cloud Interconnect mit Private Service Connect (PSC) (Option 2) aus Ihrem lokalen Netzwerk erreichen. Beide Optionen bieten SSL/TLS-Verschlüsselung. Die Hybridkonnektivität zur Onlinevorhersage über Interconnect ist leistungsfähiger als das Internet und wird daher für kritische Anwendungen empfohlen (siehe Abbildung 1).

In dieser Anleitung wird gezeigt, wie Sie ein Hochverfügbarkeits-VPN (HA VPN) verwenden, um privat auf Onlinevorhersagen zwischen zwei VPC-Netzwerken zuzugreifen, die als Grundlage für private Konnektivität in Multi-Cloud- und lokalen Umgebungen dienen können.

Hinweis: Vertex Online Prediction ist ein öffentlicher Endpunkt. Daher sollten Sie den Zugriff mit VPC Service Controls (VPC-SC) einschränken, um sichere Perimeter zu erstellen, mit denen Sie den Zugriff auf Vertex und andere Google APIs zulassen oder verweigern können. In dieser Anleitung wird VPC-SC nicht behandelt. Weitere Informationen finden Sie unter VPC Service Controls mit Vertex AI.

24a07ba49a7bcb16.png

Aufgaben

Sie richten ein VPC-Netzwerk mit dem Namen on-prem-vpc ein, das eine lokale Umgebung darstellt. In Ihrer Bereitstellung wäre on-prem-vpc nicht vorhanden. Stattdessen würde ein Hybridnetzwerk zu Ihrem lokalen Rechenzentrum oder Cloud-Anbieter verwendet.

Sie erstellen eine umfassende Private Service Connect-Architektur, die den öffentlichen Zugriff auf Onlinevorhersagen über Cloud NAT und den privaten Zugriff über PSC über HA VPN gemäß den folgenden Details veranschaulicht.

b545c808b366341a.png

Nachdem die Onlinevorhersage im Google Cloud-Projekt bereitgestellt wurde, werden die folgenden Anwendungsfälle untersucht:

Der öffentliche Zugriff auf Onlinevorhersagen umfasst Folgendes:

  • GCE-Instanz (nat-client) erstellen, die NAT für ausgehenden Internetzugriff nutzt
  • CURL für die Inferenz mit dem Modell verwenden
  • Mit TCPDUMP prüfen, ob auf die Onlinevorhersage über eine öffentliche VIP zugegriffen wird

Der private Zugriff auf Onlinevorhersagen umfasst Folgendes:

  • Modell an einem Online-Vorhersageendpunkt in Vertex AI im Projekt bereitstellen
  • Private Service Connect-Endpunkt (googleapis) in der aiml-vpc erstellen
  • Exportieren Sie die PSC-IP-Adresse über den Cloud Router als benutzerdefiniertes Advertisement in die lokale VPC.
  • GCE-Instanz (private-client) erstellen und die Datei „etc/hosts“ mit der IP-Adresse des PSC-Endpunkts aktualisieren
  • CURL für die Inferenz mit dem Modell verwenden
  • Mit TCPDUMP prüfen, ob auf die Onlinevorhersage über die IP-Adresse des PSC-Endpunkts zugegriffen wird

Lerninhalte

  • Private Service Connect-Endpunkt einrichten
  • IP-Adresse des PSC-Endpunkts über den Cloud Router anbieten
  • TCPDUMP verwenden, um den Zugriff auf Onlinevorhersagen zu validieren (öffentlich und privat)

Voraussetzungen

  • Google Cloud-Projekt

IAM-Berechtigungen

Compute-Netzwerkadministrator

Service Directory Editor

DNS-Administrator

Netzwerkadministrator

Kontingentadministrator

Notebooks-Administrator

Dienstkontonutzer

Storage-Administrator

Vertex AI User

Dienstkontoadministrator

2. Hinweis

Projekt für das Tutorial aktualisieren

In dieser Anleitung werden $variables verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu erleichtern.

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

3. Dienste aktivieren

Führen Sie in Cloud Shell folgende Schritte aus:

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. Einrichtung von aiml-vpc

aiml-vpc erstellen

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom

Nutzerverwaltetes Notebook-Subnetz erstellen

Führen Sie in Cloud Shell folgende Schritte aus:

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

Cloud Router- und NAT-Konfiguration

Cloud NAT wird im Tutorial für das Herunterladen von Notebook-Softwarepaketen verwendet, da die nutzerverwaltete Notebookinstanz keine externe IP-Adresse hat. Cloud NAT bietet auch Egress-NAT-Funktionen. Das bedeutet, dass Internet-Hosts keine Kommunikation mit einem vom Nutzer verwalteten Notebook initiieren dürfen, was die Sicherheit erhöht.

Erstellen Sie in Cloud Shell den regionalen Cloud Router.

gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1

Erstellen Sie in Cloud Shell das regionale Cloud NAT-Gateway.

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. on-prem-vpc einrichten

on-prem-vpc erstellen

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom

nat-subnet erstellen

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1

Erstellen Sie das Subnetz „private-ip-subnet“.

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute networks subnets create private-ip-subnet --project=$projectid --range=192.168.20.0/28 --network=on-prem-vpc --region=us-central1

Cloud Router- und NAT-Konfiguration

Cloud NAT wird in der Anleitung für das Herunterladen von Softwarepaketen verwendet. Cloud NAT bietet auch NAT-Funktionen für ausgehenden Traffic. Das bedeutet, dass Internet-Hosts keine Kommunikation mit Compute-Ressourcen initiieren dürfen, was die Sicherheit erhöht.

Erstellen Sie in Cloud Shell den regionalen Cloud Router.

gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1

Erstellen Sie in Cloud Shell das regionale Cloud NAT-Gateway.

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. Private Service Connect-Endpunkt erstellen

Im folgenden Abschnitt erstellen Sie einen Private Service Connect-Endpunkt (PSC), der für den Zugriff auf die Vertex API über die On-Prem-VPC verwendet wird. Die PSC-IP-Adresse 100.100.10.10 wird in einem der nächsten Schritte von aiml-vpc-cloud-router-vpn als benutzerdefiniertes Route Advertisement für das lokale Netzwerk beworben.

Über Cloud Shell

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=100.100.10.10 \
    --network=aiml-vpc

PSC-Endpunkt erstellen

Über Cloud Shell

gcloud compute forwarding-rules create pscvertex \
    --global \
    --network=aiml-vpc \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

Konfigurierte Private Service Connect-Endpunkte auflisten

Über Cloud Shell

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

Konfigurierte Private Service Connect-Endpunkte beschreiben

Über Cloud Shell

gcloud compute forwarding-rules describe \
    pscvertex --global

7. Hybridkonnektivität

Im folgenden Abschnitt erstellen Sie einen Cloud Router, mit dem Sie Routen zwischen Ihrer Virtual Private Cloud (VPC) und dem Peer-Netzwerk dynamisch über das Border Gateway Protocol (BGP) austauschen können.

Mit Cloud Router kann eine BGP-Sitzung über einen Cloud VPN-Tunnel eingerichtet werden, um Ihre Netzwerke zu verbinden. Es erkennt automatisch neue Subnetz-IP-Adressbereiche und kündigt sie in Ihrem Peer-Netzwerk an.

In dieser Anleitung stellen Sie HA VPN zwischen aiml-vpc und on-prem-vpc bereit.

HA VPN-Gateway für aiml-vpc erstellen

Beim Erstellen der Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle.

HA VPN-Gateway in Cloud Shell erstellen

gcloud compute vpn-gateways create aiml-vpn-gw \
   --network=aiml-vpc\
   --region=us-central1

HA VPN-Gateway für on-prem-vpc erstellen

Beim Erstellen der Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle. Notieren Sie sich diese IP-Adressen, um sie später in den Konfigurationsschritten zu verwenden.

Erstellen Sie das HA VPN-Gateway in Cloud Shell.

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-vpc\
   --region=us-central1

Erstellung des HA VPN-Gateways validieren

Rufen Sie in der Console HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS auf und prüfen Sie, ob die Gateway-IPs generiert wurden.

66312b1b53c233d7.png

Cloud Router für aiml-vpc erstellen

Erstellen Sie in Cloud Shell den Cloud Router in us-central1.

gcloud compute routers create aiml-cr-us-central1 \
   --region=us-central1 \
   --network=aiml-vpc\
   --asn=65001

Cloud Router für on-prem-vpc erstellen

Erstellen Sie in Cloud Shell den Cloud Router in us-central1.

gcloud compute routers create on-prem-cr-us-central1 \
   --region=us-central1 \
   --network=on-prem-vpc \
   --asn=65002

VPN-Tunnel für aiml-vpc erstellen

Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.

VPN-Tunnel0 erstellen

Erstellen Sie in Cloud Shell 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

VPN-Tunnel 1 erstellen

Erstellen Sie in Cloud Shell den Tunnel 1:

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

VPN-Tunnel für on-prem-vpc erstellen

Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.

VPN-Tunnel0 erstellen

Erstellen Sie in Cloud Shell 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

VPN-Tunnel 1 erstellen

Erstellen Sie in Cloud Shell den Tunnel 1:

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

Erstellung von VPN-Tunneln prüfen

Rufen Sie in der Console HYBRID CONNECTIVITY → VPN → CLOUD VPN TUNNELS auf.

e8e13ebaed09f1.png

8. BGP-Nachbarn einrichten

BGP-Sitzungen erstellen

In diesem Abschnitt konfigurieren Sie Cloud Router-Schnittstellen und BGP-Peers.

BGP-Schnittstelle und ‑Peering für aiml-vpc erstellen

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

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

Erstellen Sie in Cloud Shell den BGP-Peer:

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

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

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

Erstellen Sie in Cloud Shell den BGP-Peer:

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

BGP-Schnittstelle und ‑Peering für on-prem-vpc erstellen

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

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

Erstellen Sie in Cloud Shell den BGP-Peer:

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

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

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

Erstellen Sie in Cloud Shell den BGP-Peer:

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

Rufen Sie Hybridkonnektivität → VPN auf, um die VPN-Tunneldetails aufzurufen.

cb91b4476a88acd3.png

Erkannte Routen von aiml-vpc über HA VPN validieren

Rufen Sie in der Console VPC-Netzwerk → VPC-Netzwerke → aiml-vpc → ROUTEN → REGION → US-CENTRAL1 → ANSEHEN auf.

Prüfen Sie, ob aiml-vpc Routen aus dem on-prem-vpc-nat-Subnetz und dem private-ip-Subnetz erlernt hat.

f407ed6e1a6233db.png

Prüfen Sie, ob on-prem-vpc das Workbench-Subnetz über HA VPN erlernt hat.

Rufen Sie in der Console VPC-Netzwerk → VPC-Netzwerke → on-prem-vpc → ROUTEN → REGION → US-CENTRAL1 → ANSEHEN auf.

7957e5d898a9e7e0.png

9. Benutzerdefinierte Route Advertisements für aiml-vpc erstellen

Die IP-Adresse des Private Service Connect-Endpunkts wird vom Cloud Router „aiml-cr-us-central1“ nicht automatisch beworben, da das Subnetz nicht in der VPC konfiguriert ist.

Stattdessen müssen Sie ein benutzerdefiniertes Route Advertisement vom Cloud Router „aiml-cr-us-central“ für die IP-Adresse 100.100.10.10 des Endpunkts erstellen, das in der lokalen Umgebung über BGP an „on-prem-vpc“ beworben werden soll.

Rufen Sie in der Konsole HYBRID CONNECTIVITY → CLOUD ROUTERS → aiml-cr-us-central1 auf und wählen Sie dann EDIT (BEARBEITEN) aus.

c8fb02ed59a5b068.png

Wählen Sie im Abschnitt „Beworbene Routen“ die Option Benutzerdefinierte Routen erstellen aus, aktualisieren Sie die Felder anhand des Beispiels unten, wählen Sie FERTIG aus und klicken Sie dann auf SPEICHERN.

5996464e3aae0665.png

f799082ab2cd7e31.png

Validation

Prüfen Sie, ob on-prem-vpc die IP-Adresse des PSC-Endpunkts über HA VPN erlernt hat.

Rufen Sie in der Console VPC-Netzwerk → VPC-Netzwerke → on-prem-vpc → ROUTEN → REGION → US-CENTRAL1 → ANSEHEN auf.

1b42673e6f940bf2.png

10. Benutzerdefinierte Route Advertisements für on-prem-vpc erstellen

Der Cloud Router „on-prem-vpc“ bewirbt standardmäßig alle Subnetze, aber nur das Subnetz „private-ip-subnet“ ist erforderlich.

Aktualisieren Sie im folgenden Abschnitt das Route Advertisement vom Cloud Router „on-prem-cr-us-central1“.

Rufen Sie in der Console HYBRID CONNECTIVITY → CLOUD ROUTERS → on-prem-cr-us-central1 auf und wählen Sie EDIT (BEARBEITEN) aus.

bd96bde9550d516a.png

Wählen Sie im Abschnitt „Beworbene Routen“ die Option Benutzerdefinierte Routen erstellen aus, aktualisieren Sie die Felder anhand des Beispiels unten, wählen Sie FERTIG aus und klicken Sie dann auf SPEICHERN.

f8b61f669a9cfeef.png

Validation

Prüfen Sie, ob aiml-vpc die Route private-ip-subnet vom on-prem-vpc erlernt hat.

Rufen Sie in der Console VPC-Netzwerk → VPC-Netzwerke → aiml-vpc → ROUTEN → REGION → US-CENTRAL1 → ANSEHEN auf.

2b1a7a5f918e9f50.png

11. Vom Nutzer verwaltetes Dienstkonto erstellen (GCE-Instanzen)

Um eine detaillierte Steuerung der Vertex API zu ermöglichen, ist ein vom Nutzer verwaltetes Dienstkonto erforderlich, das auf die NAT- und privaten Clientinstanzen angewendet wird. Nach der Generierung können die Dienstkontoberechtigungen entsprechend den geschäftlichen Anforderungen geändert werden. Im Tutorial hat das vom Nutzer verwaltete Dienstkonto „vertex-sa“ die folgenden Rollen:

Sie müssen die Service Account API , bevor Sie fortfahren.

Erstellen Sie das Dienstkonto in Cloud Shell.

gcloud iam service-accounts create gce-vertex-sa \
    --description="service account for vertex" \
    --display-name="gce-vertex-sa"

Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Compute-Instanzadministrator“.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"

Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Vertex AI User“.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

12. Nutzerverwaltetes Dienstkonto erstellen (Notebook)

Im folgenden Abschnitt erstellen Sie ein nutzerverwaltetes Dienstkonto, das dem im Tutorial verwendeten Vertex Workbench-Notebook zugeordnet wird.

Im Rahmen der Anleitung werden dem Dienstkonto die folgenden Rollen zugewiesen:

Erstellen Sie das Dienstkonto in Cloud Shell.

gcloud iam service-accounts create user-managed-notebook-sa \
    --display-name="user-managed-notebook-sa"

Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Storage-Administrator“.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"

Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Vertex AI User“.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Artifact Registry-Administrator“.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"

Listen Sie in Cloud Shell das Dienstkonto auf und notieren Sie sich die E-Mail-Adresse, die beim Erstellen des nutzerverwalteten Notebooks verwendet wird.

gcloud iam service-accounts list

13. Testinstanzen erstellt

Im folgenden Abschnitt erstellen Sie Testinstanzen, um verschiedene Methoden zum Aufrufen von Vertex-APIs zu validieren, insbesondere:

  • Die Instanz nat-client, verwendet Cloud NAT, um Vertex AI aufzulösen und über das Internet auf den Endpunkt der Onlinevorhersage zuzugreifen.
  • Die Instanz private-client verwendet die Private Service Connect-IP-Adresse 100.100.10.10, um über HA VPN auf den Onlinevorhersage-Endpunkt zuzugreifen.

Erstellen Sie die Instanz nat-client in Cloud Shell.

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"

Erstellen Sie die Instanz private-client in Cloud Shell.

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"

Damit Identity-Aware Proxy (IAP) eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:

  • Gilt für alle VM-Instanzen, die über IAP zugänglich sein sollen.
  • Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.

Erstellen Sie in Cloud Shell die IAP-Firewallregel.

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. Nutzerverwaltetes Notebook erstellen

Erstellen Sie im folgenden Abschnitt ein nutzerverwaltetes Notebook, in dem das zuvor erstellte Dienstkonto „user-managed-notebook-sa“ verwendet wird.

Erstellen Sie in Cloud Shell die private-client-Instanz.

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. Modell bereitstellen und Onlinevorhersage

Im folgenden Abschnitt verwenden Sie das bereitgestellte Codelabund beginnen mit Abschnitt 7, da Sie im vorherigen Schritt bereits ein Notebook erstellt haben. Kehren Sie nach der Bereitstellung des Modells zur Anleitung zurück, um mit dem nächsten Abschnitt zu beginnen.

ee68b7ba0cfd2746.png

16. Zugriff auf die Vertex API über das Internet prüfen

Im folgenden Abschnitt melden Sie sich bei der Instanz „nat-client“ an und prüfen die Verbindung zu Vertex AI mit „dig“ und „tcpdump“ für die Domain „us-central1-aiplatform.googleapis.com“, die zum Auflösen von Vertex-APIs verwendet wird.

Melden Sie sich mit IAP in Cloud Shell beim NAT-Client an, um die Verbindung zur Vertex API zu prüfen. Führen Sie dazu einen „dig“-Befehl für die Vertex-Domain „us-central1-aiplatform.googleapis.com“ aus.

gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

Führen Sie den Dig-Befehl aus.

dig us-central1-aiplatform.googleapis.com

Beispiel: Notieren Sie sich die öffentlichen IP-Adressen in der DNS-Antwort.

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

Führen Sie auf dem Betriebssystem des NAT-Clients „tcpdump“ aus, um die DNS-Auflösung zu validieren, wenn Sie einen „curl“-Befehl für die Onlinevorhersage ausführen.

 sudo tcpdump -i any port 53 -n

Beispiel:

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

Öffnen Sie ein neues Cloud Shell-Terminal, indem Sie auf das „+“ klicken. Aktualisieren Sie nach dem Öffnen des neuen Tabs die Variable für den Projektnamen.

Aktualisieren Sie in Cloud Shell die Variable für den Projektnamen.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

Stellen Sie in Cloud Shell 2 eine SSH-Verbindung zur nat-client-Instanz her.

gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"

Im folgenden Abschnitt erstellen Sie mit sudo VI-Editor oder nano eine Datei namens „instances.json“ und fügen den Datenstring ein, mit dem Sie eine Vorhersage vom bereitgestellten Modell erhalten.

Erstellen Sie auf dem Betriebssystem des NAT-Clients eine instances.json-Datei mit dem folgenden Datenstring:

{"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]]}

Beispiel:

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:$

Rufen Sie die ID Ihres Onlinevorhersage-Endpunkts aus der Cloud Console ab, die in den folgenden Schritten verwendet wird.

Klicken Sie auf VERTEX AI → ONLINEPREDICTION.

237d413ccde1e95b.png

Erstellen Sie im Betriebssystem des NAT-Clients die folgenden Variablen:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Beispiel:

ENDPOINT_ID="3328226095324463104"

Führen Sie auf dem nat-client-Betriebssystem einen curl-Befehl aus, um eine Antwort vom Modell zu erhalten.

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

Beispiel: Die Vorhersage war erfolgreich.

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. Validierung – Internetzugriff auf die Vertex API

Nachdem Sie die Vorhersage ausgeführt haben, sehen wir uns die TCPDUMP-Ergebnisse (Terminal 1) an, die zeigen, dass die nat-client-Instanz (192.168.10.2) eine DNS-Abfrage an den lokalen DNS-Server 169.254.169.254 für die Vertex AI-Domain us-central1-aiplatform.googleapis.com durchführt. Das Ergebnis der DNS-Abfrage sind öffentliche virtuelle IP-Adressen (VIPs) für Vertex-APIs, wie unten aufgeführt:

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. Privaten Zugriff auf Vertex-APIs aktivieren

Im folgenden Abschnitt greifen Sie über hybride Netzwerke (HA VPN) mit Private Service Connect auf Vertex-APIs zu, um die Onlinevorhersage privat zu erreichen. Im Beispiel in der Anleitung aktualisieren Sie die Datei „/etc/hosts“ in der Instanz „private-client“.

In Ihrer lokalen Umgebung ist es angemessen, die Datei „/etc/hosts“ auf einzelnen oder wenigen Maschinen für Tests zu aktualisieren. Für große und Produktionsumgebungen ist es jedoch besser, eine neue Weiterleitungszone mit dem PSC-Endpunkt-FQDN zu erstellen.

Der im Tutorial erstellte PSC-Endpunkt heißt beispielsweise „pscvertex“, was bei Verwendung des Endpunkts für Vertex in pscvertex.p.googleapis.com übersetzt wird. Hängen Sie den FQDN mit dem Dienst an, z. B. us-central1-aiplatform-pscvertex.p.googleapis.com.

Wenn Sie den lokalen DNS mit dem PSC-Endpunkt aktualisieren, müssen Sie auch lokale Anwendungen umgestalten, damit sie den FQDN aufrufen, z. B. us-central1-aiplatform-pscvertex.p.googleapis.com anstelle des nativen öffentlichen Endpunkts us-central1-aiplatform.googleapis.com.

Clients, die für die Verwendung eines benutzerdefinierten Endpunkts konfiguriert werden können, können mithilfe der DNS-Namen p.googleapis.com Anfragen an einen Endpunkt senden.

Weitere Informationen zur Konfiguration der Verwendung für benutzerdefinierte Endpunkte finden Sie in der Dokumentation zu Ihrem Client oder Ihrer Clientbibliothek. Beispiel:

  • Python: Sie können api_endpoint in der Klasse „Clientoptionen“ im Paket „google-api-core“ konfigurieren.
  • Go: Sie können „WithEndpoint“ im Client-Optionspaket im API-Paket konfigurieren.
  • gcloud: You can configure api_endpoint_overrides

Öffnen Sie ein neues Cloud Shell-Terminal, indem Sie auf das „+“ klicken. Aktualisieren Sie nach dem Öffnen des neuen Tabs die Variable für den Projektnamen.

Über Cloud Shell.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

Melden Sie sich mit IAP in einer neuen Cloud Shell bei private-client an, um die Verbindung zur Vertex API zu prüfen. Führen Sie dazu einen „dig“-Befehl für die Vertex-Domain us-central1-aiplatform.googleapis.com aus.

Melden Sie sich in Cloud Shell bei der Betriebssysteminstanz des privaten Clients an.

gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

Führen Sie den Dig-Befehl aus.

dig us-central1-aiplatform.googleapis.com

Beispiel: Notieren Sie sich die öffentlichen IP-Adressen basierend auf der DNS-Antwort.

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

Aktualisieren Sie die Datei „/etc/hosts“ der privaten Clientinstanz mit dem sudo-VI-Editor oder nano, um einen Eintrag für den FQDN von Vertex AI us-central1-aiplatform.googleapis.com zu erstellen, der auf den PSC-Endpunkt 100.100.10.10 verweist. Es sind keine weiteren Änderungen erforderlich.

Beispiel:

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

Führen Sie vom privaten Client-Betriebssystem aus einen PING an den Vertex API-Endpunkt aus.

ping us-central1-aiplatform.googleapis.com

Beispiel: PING gibt die IP-Adresse des PSC-Endpunkts zurück, es wird jedoch keine Antwort erwartet.

user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.

Führen Sie auf dem privaten Client-Betriebssystem „tcpdump“ aus, um die DNS-Auflösung und den IP-Datenpfad zum PSC-Endpunkt zu validieren, wenn Sie einen Curl für die Onlinevorhersage ausführen.

 sudo tcpdump -i any port 53 -n or host 100.100.10.10

Öffnen Sie ein viertes Cloud Shell-Terminal, indem Sie auf das „+“ klicken. Aktualisieren Sie nach dem Öffnen des neuen Tabs die Variable für den Projektnamen.

Aktualisieren Sie in Cloud Shell die Variable für den Projektnamen.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

Stellen Sie in Cloud Shell 4 eine SSH-Verbindung zur Instanz „private-client“ her.

gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"

Im folgenden Abschnitt erstellen Sie mit sudo VI-Editor oder nano eine Datei namens „instances.json“ und fügen den Datenstring ein, mit dem Sie eine Vorhersage vom bereitgestellten Modell erhalten.

Erstellen Sie auf dem privaten Client-Betriebssystem eine instances.json-Datei mit dem folgenden Datenstring:

{"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]]}

Beispiel:

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:$

Erstellen Sie im privaten Client-Betriebssystem die folgenden Variablen:

gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Beispiel:

ENDPOINT_ID="3328226095324463104"

Führen Sie im privaten Client-Betriebssystem in Cloud Shell 4 einen Curl-Befehl aus, um eine Antwort vom Modell zu erhalten.

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. Validierung – Privater Zugriff auf die Vertex API

Beachten Sie, dass auf dem privaten Client-Betriebssystem in Cloud Shell 4 die PSC-Endpunkt-IP (100.100.10.10) für den Zugriff auf die Vertex API verwendet wurde.

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

Im TCPDUMP-Terminal in Cloud Shell 3 können wir bestätigen, dass kein DNS-Lookup nach us-central1-aiplatform.googleapis.com erfolgt ist, da die Datei „/etc/host“ Vorrang hatte und die PSC-IP-Adresse 100.100.10.10 im Datenpfad verwendet wurde.

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

Sie haben erfolgreich validiert, dass Sie über einen öffentlichen Endpunkt über das Internet und privat über Hybrid Networking und Private Service Connect (googleapis) eine Verbindung zu Onlinevorhersagen herstellen können. Beenden Sie das Betriebssystem und kehren Sie zur Cloud Shell-Eingabeaufforderung zurück.

20. Bereinigen

Löschen Sie die Komponenten der Anleitung in Cloud Shell.

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

Vertex-Komponenten löschen

Wenn Sie das Container-Image löschen möchten, rufen Sie Artifact Registry auf, wählen Sie das von Ihnen erstellte Repository aus und klicken Sie auf Löschen.

616a3108bc2e48c8.png

Wenn Sie den Storage-Bucket löschen möchten, rufen Sie in der Cloud Console über das Navigationsmenü „Storage“ auf, wählen Sie den Bucket aus und klicken Sie auf Löschen:

eddd1f9fdfaede8.png

Heben Sie die Bereitstellung des Modells am Endpunkt auf. Rufen Sie „Vertex AI“ → „Onlinevorhersage“ auf → wählen Sie „diamonds-cpr_endpoint“ aus → „Bereitstellung des Modells auf dem Endpunkt aufheben“ → „Bereitstellung aufheben“.

bc95f092d21d4698.png

Löschen Sie das Modell. Rufen Sie „Vertex AI“ → „Model Registry“ → „Modell löschen“ auf.

ec4afff091e11606.png

Löschen Sie den Endpunkt für Onlinevorhersagen. Rufen Sie „Vertex AI“ → „Onlinevorhersage“ auf, wählen Sie „diamonds-cpr_endpoint“ aus und klicken Sie auf „Endpunkt löschen“.

7453760299bdfb9a.png

21. Glückwunsch

Sie haben die Verbindung zu Onlinevorhersagen über das Internet und privat mit Private Service Connect und Hybrid Networking erfolgreich konfiguriert und validiert.

Sie haben einen nat-client und einen private-client erstellt und mit TCPDUMP die IP-Adressen validiert, die zum Erreichen der Vertex-APIs verwendet werden. Außerdem haben Sie mehr über Private Service Connect (googleapis) erfahren und darüber, wie es verwendet werden kann, um lokale und Multi-Cloud-Anwendungen mithilfe eines PSC-Endpunkts des Kunden zu isolieren.

Cosmopup findet Tutorials toll!!

e6d3675ca7c6911f.jpeg

Nächste Schritte

Hier findest du einige Tutorials:

Weitere Informationen und Videos

Referenzdokumente