Prywatny dostęp do punktów końcowych prognozowania online Vertex AI przy użyciu PSC

1. Wprowadzenie

Hosty lokalne mogą nawiązać kontakt z prognozą online natywnie przez publiczny internet (opcja 1) lub za pomocą Cloud VPN albo Cloud Interconnect z funkcją Private Service Connect (PSC) (opcja 2) z sieci lokalnej, przy czym oba te rozwiązania oferują szyfrowanie SSL/TLS. Hybrydowe połączenie z prognozą online przez połączenie międzysieciowe jest bardziej wydajne niż internet, dlatego jest zalecane w przypadku krytycznych aplikacji, jak pokazano na rys. 1.

W tym samouczku pokażemy, jak używać sieci VPN o wysokiej dostępności do prywatnego dostępu do prognozowania online między 2 sieciami VPC, które mogą służyć jako podstawa do tworzenia wielochmurowych i lokalnych połączeń prywatnych.

Uwaga: Vertex Online Prediction jest publicznym punktem końcowym, dlatego chcesz ograniczyć dostęp za pomocą Ustawień usługi VPC (VPC-SC), aby utworzyć bezpieczne granice umożliwiające lub zabroniony dostęp do Vertex i innych interfejsów Googleapis. Ten samouczek nie dotyczy VPC-SC. Więcej informacji znajdziesz w artykule Ustawienia usługi VPC z Vertex AI.

24a07ba49a7bcb16.png

Co utworzysz

Skonfigurujesz sieć VPC o nazwie on-prem-vpc, która będzie reprezentować środowisko lokalne. W Twoim wdrożeniu nie byłoby usługi on-prem-vpc. Użyta zostałaby sieć hybrydowa z Twoim lokalnym centrum danych lub dostawcą usług w chmurze.

Zamierzasz utworzyć kompleksową architekturę usługi Private Service Connect ilustrującą publiczny dostęp do prognozowania online przez Cloud NAT i prywatne korzystanie z PSC przez sieć VPN o wysokiej dostępności zgodnie z poniższymi szczegółami.

b545c808b366341a.png

Po wdrożeniu prognozy online w projekcie Google Cloud zostaną zbadane te przypadki użycia:

Publiczny dostęp do prognoz online składa się z tych elementów:

  • Tworzenie instancji GCE (nat-client), która wykorzystuje NAT na potrzeby dostępu do internetu wychodzącego
  • Użyj CURL, aby wnioskować na podstawie modelu
  • Używaj protokołu TCPDUMP do sprawdzania, czy prognozy online są dostępne przez publiczny adres VIP

Prywatny dostęp do prognozowania online składa się z tych elementów:

  • Wdróż model w punkcie końcowym prognozowania online aVertex w projekcie
  • Tworzenie punktu końcowego usługi Private Service Connect (Googleapis) w celu vpc
  • Wyeksportowanie adresu IP PSC przez router Cloud Router jako niestandardowej reklamy do lokalnej sieci VPC
  • Utwórz instancję GCE (klienta prywatnego) i plik aktualizacji itd./hosts, podając adres IP punktu końcowego PSC.
  • Użyj CURL, aby wnioskować na podstawie modelu
  • Użyj protokołu TCPDUMP, aby sprawdzić, czy dostęp do prognozy online jest uzyskiwany przez adres IP punktu końcowego PSC

Czego się nauczysz

  • Jak ustanowić punkt końcowy usługi Private Service Connect
  • Jak reklamować adres IP punktu końcowego PSC za pomocą routera Cloud Router
  • Jak używać protokołu TCPDUMP do weryfikowania dostępu do prognoz online (zarówno publicznego, jak i prywatnego)

Czego potrzebujesz

  • Projekt Google Cloud

Uprawnienia

Administrator sieci Compute

Edytujący Service Directory

Administrator DNS

Administrator sieci

Administrator limitów

Administrator notatników

Użytkownik kont usługi

Administrator miejsca na dane

Użytkownik Vertex AI

Administrator kont usługi

2. Zanim zaczniesz

Aktualizowanie projektu na potrzeby samouczka

W tym samouczku używamy zmiennych $variables, które ułatwiają implementację konfiguracji gcloud w Cloud Shell.

W Cloud Shell wykonaj te czynności:

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

3. Włącz usługi

W Cloud Shell wykonaj te czynności:

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. Konfiguracja celul-vpc

Tworzenie pliku cell-vpc

W Cloud Shell wykonaj te czynności:

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

Utwórz podsieć notatnika zarządzaną przez użytkownika

W Cloud Shell wykonaj te czynności:

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

Konfiguracja Cloud Router i NAT

Usługa Cloud NAT jest używana w samouczku do pobierania pakietów oprogramowania notatnika, ponieważ instancja notatnika zarządzana przez użytkownika nie ma zewnętrznego adresu IP. Cloud NAT oferuje również funkcję NAT dla ruchu wychodzącego, co oznacza, że hosty internetowe nie mogą inicjować komunikacji z notatnikiem zarządzanym przez użytkownika, co zwiększa jego bezpieczeństwo.

Utwórz regionalny router Cloud Router w Cloud Shell.

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

Utwórz w Cloud Shell regionalną bramę Cloud nat.

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. Lokalna konfiguracja VPC

Tworzenie lokalnego środowiska VPC

W Cloud Shell wykonaj te czynności:

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

Tworzenie podsieci nat

W Cloud Shell wykonaj te czynności:

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

Tworzenie podsieci private-ip-subnet

W Cloud Shell wykonaj te czynności:

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

Konfiguracja Cloud Router i NAT

Usługa Cloud NAT jest używana w samouczku do pobierania pakietów oprogramowania. Cloud NAT oferuje również funkcje NAT dla ruchu wychodzącego, co oznacza, że hosty internetowe nie mogą inicjować komunikacji z zasobami obliczeniowymi, co zwiększa bezpieczeństwo.

Utwórz regionalny router Cloud Router w Cloud Shell.

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

Utwórz w Cloud Shell regionalną bramę Cloud nat.

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. Tworzenie punktu końcowego Private Service Connect

W tej sekcji utworzysz punkt końcowy Private Service Connect (PSC), który będzie używany do uzyskiwania dostępu do interfejsu Vertex API z poziomu lokalnego środowiska VPC. W następnym kroku adres IP PSC 100.100.10.10 będzie rozgłaszany z celu vpc-cloud-router-vpn jako reklama routera niestandardowego w sieci lokalnej.

Z Cloud Shell

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

Tworzenie punktu końcowego PSC

Z Cloud Shell

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

Wyświetlanie listy skonfigurowanych punktów końcowych Private Service Connect

Z Cloud Shell

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

Opisywanie skonfigurowanych punktów końcowych Private Service Connect

Z Cloud Shell

gcloud compute forwarding-rules describe \
    pscvertex --global

7. Połączenia hybrydowe

W tej sekcji utworzysz router Cloud Router, który umożliwia dynamiczną wymianę tras między Twoim prywatnym środowiskiem wirtualnym w chmurze (VPC) a siecią równorzędną przy użyciu protokołu Border Gateway Protocol (BGP).

Cloud Router może skonfigurować sesję BGP przez tunel Cloud VPN, aby połączyć Twoje sieci. Automatycznie uczy się nowych zakresów adresów IP podsieci i ogłasza je w sieci równorzędnej.

W tym samouczku wdrożysz sieć VPN o wysokiej dostępności między serwerami aiml-vpc i on-prem-vpc.

Utwórz bramę sieci VPN o wysokiej dostępności dla instancji aiml-vpc.

Podczas tworzenia każdej bramy automatycznie przyznawane są 2 zewnętrzne adresy IPv4, po jednym dla każdego interfejsu bramy.

Tworzenie bramy sieci VPN o wysokiej dostępności w Cloud Shell

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

Utwórz bramę sieci VPN o wysokiej dostępności dla instancji on-prem-vpc.

Podczas tworzenia każdej bramy automatycznie przyznawane są 2 zewnętrzne adresy IPv4, po jednym dla każdego interfejsu bramy. Zanotuj te adresy IP – będą Ci potrzebne później w krokach konfiguracji.

Utwórz w Cloud Shell bramę sieci VPN o wysokiej dostępności.

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

Sprawdzanie poprawności utworzenia bramy sieci VPN o wysokiej dostępności

W konsoli wybierz POŁĄCZENIA HYBRYDOWE → VPN → GATEWAYS CLOUD VPN i sprawdź, czy adresy IP bramy zostały wygenerowane.

66312b1b53c233d7.png

Tworzenie routera Cloud Router dla cell-vpc

Utwórz w Cloud Shell router Cloud Router znajdujący się w regionie us-central1.

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

Tworzenie routera Cloud Router dla lokalnego środowiska VPC

Utwórz w Cloud Shell router Cloud Router znajdujący się w regionie us-central1.

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

Tworzenie tuneli VPN dla cell-vpc

W każdej bramie sieci VPN o wysokiej dostępności utworzysz 2 tunele VPN.

Utwórz tunel VPN0

Utwórz w Cloud Shell środowisko 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

Tworzenie tunelu VPN1

W Cloud Shell utwórz tunel 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

Tworzenie tuneli VPN dla lokalnego środowiska VPC

W każdej bramie sieci VPN o wysokiej dostępności utworzysz 2 tunele VPN.

Utwórz tunel VPN0

Utwórz w Cloud Shell środowisko 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

Tworzenie tunelu VPN1

W Cloud Shell utwórz tunel 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

Sprawdź poprawność utworzenia tunelu VPN

W konsoli wybierz POŁĄCZENIA HYBRIDOWE → VPN → TUNNELS CLOUD VPN.

e8e13ebaed09f1.png

8. Ustal sąsiadów BGP

Utwórz sesje BGP

W tej sekcji skonfigurujesz interfejsy Cloud Router i peery BGP.

Tworzenie interfejsu BGP i połączenie równorzędne dla cell-vpc

W Cloud Shell utwórz interfejs 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

W Cloud Shell utwórz peera 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

W Cloud Shell utwórz interfejs 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

W Cloud Shell utwórz peera 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

Utwórz interfejs BGP i połączenie równorzędne dla lokalnego środowiska VPC

W Cloud Shell utwórz interfejs 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

W Cloud Shell utwórz peera 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

W Cloud Shell utwórz interfejs 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

W Cloud Shell utwórz peera 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

Wybierz POŁĄCZENIE hybrydowe → VPN, aby wyświetlić szczegóły tunelu VPN.

cb91b4476a88acd3.png

Zweryfikuj zapamiętane trasy cell-vpc przez sieć VPN o wysokiej dostępności

W konsoli wybierz Sieć VPC → Sieci VPC → cell-vpc→ TRASY → REGION → US-CENTRUM1 → WIDOK

Obserwowanie, jak cel L-vpc nauczył się tras z podsieci nat-prem-vpc i podsieci private-ip-subnet

f407ed6e1a6233db.png

Sprawdź, czy lokalna sieć VPC zapamiętała podsieć obszaru roboczego przez sieć VPN o wysokiej dostępności

W konsoli wybierz Sieć VPC → Sieci VPC → on-prem-vpc → TRASY → REGION → US-CENTRAL1 → WIDOK

7957e5d898a9e7e0.png

9. Tworzenie niestandardowych reklam z trasą cell-vpc

Adres IP punktu końcowego Private Service Connect nie jest automatycznie rozgłaszany przez router chmury cell-cr-us-central1, ponieważ podsieć nie została skonfigurowana w VPC.

Zamiast tego musisz utworzyć reklamę trasy niestandardowej z routerem Cloud Router dla adresu IP punktu końcowego 100.100.10.10, która będzie rozgłaszana do środowiska lokalnego przez BGP do lokalnego serwera VPC.

W konsoli wybierz POŁĄCZENIA HYBRIDOWE → TRASY W CHMURZE → cell-cr-us-central1, a następnie wybierz EDYTUJ.

c8fb02ed59a5b068.png

W sekcji Rozgłaszane trasy wybierz opcję Utwórz trasy niestandardowe, zaktualizuj pola zgodnie z poniższym przykładem, wybierz GOTOWE i kliknij ZAPISZ.

5996464e3aae0665.png

f799082ab2cd7e31.png

Weryfikacja

Sprawdź, czy lokalna sieć VPC zapamiętała adres IP punktu końcowego PSC przez sieć HA-VPN

W konsoli wybierz Sieć VPC → Sieci VPC → on-prem-vpc → TRASY → REGION → US-CENTRAL1 → WIDOK

1b42673e6f940bf2.png

10. Tworzenie niestandardowych reklam kierowanych na trasy lokalne w VPC

Router chmury On-Prem-vpc domyślnie rozgłasza wszystkie podsieci, ale potrzebna jest tylko podsieć private-ip-subnet.

W następnej sekcji zaktualizuj reklamy tras z routera Cloud Router on-prem-cr-us-central1.

W konsoli wybierz HYBRID CONNECTIVITY (POŁĄCZENIA W CHMURZE → TRASY W CHMURZE → on-prem-cr-us-central1), a następnie wybierz EDYTUJ.

bd96bde9550d516a.png

W sekcji Rozgłaszane trasy wybierz opcję Utwórz trasy niestandardowe, zaktualizuj pola zgodnie z poniższym przykładem, wybierz GOTOWE i kliknij ZAPISZ.

f8b61f669a9cfeef.png

Weryfikacja

Sprawdź, czy program cell-vpc nauczył się trasy private-ip-subnet z serwera on-prem-vpc.

W konsoli wybierz Sieć VPC → Sieci VPC → cell-vpc → TRASY → REGION → US-CENTRUM1 → WIDOK

2b1a7a5f918e9f50.png

11. Tworzenie konta usługi zarządzanego przez użytkownika (instancje GCE)

Aby zapewnić szczegółową kontrolę nad interfejsem Vertex API, wymagane jest konto usługi zarządzane przez użytkownika, które zostanie zastosowane do instancji klienta „nat” i prywatnego. Po wygenerowaniu uprawnień konta usługi można je zmienić odpowiednio do wymagań biznesowych. W tym samouczku do konta usługi zarządzanego przez użytkownika (vertex-sa) zostaną zastosowane te role:

Zanim przejdziesz dalej, musisz interfejs Service Account API.

Utwórz konto usługi w Cloud Shell.

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

W Cloud Shell zaktualizuj konto usługi, dodając do niego rolę „administrator instancji Compute”.

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

W Cloud Shell zaktualizuj konto usługi, dodając do niego rolę użytkownika Vertex AI

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

12. Tworzenie konta usługi zarządzanego przez użytkownika (notatnik)

W tej sekcji utworzysz konto usługi zarządzane przez użytkownika, które zostanie powiązane z Vertex Workbench (Notatnik) używanym w samouczku.

W samouczku do konta usługi zostaną zastosowane te role:

Utwórz konto usługi w Cloud Shell.

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

W Cloud Shell zaktualizuj konto usługi, przypisując do niego rolę Administrator miejsca na dane.

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

W Cloud Shell zaktualizuj konto usługi, dodając do niego rolę użytkownika Vertex AI.

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

W Cloud Shell zaktualizuj konto usługi, dodając do niego rolę Administrator Artifact Registry.

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

W Cloud Shell wymień konto usługi i zanotuj adres e-mail, który będzie używany podczas tworzenia notatnika zarządzanego przez użytkownika.

gcloud iam service-accounts list

13. Utworzono instancje testowe

W tej sekcji utworzysz instancje testowe w celu walidacji różnych metod uzyskiwania dostępu do interfejsów Vertex API, w szczególności:

  • Instancja nat-client, będzie używać Cloud NAT do rozpoznawania Vertex AI, co pozwoli uzyskiwać dostęp do punktu końcowego prognozowania online przez internet
  • Instancja private-client będzie używać adresu IP Private Service Connect 100.100.10.10, aby uzyskać dostęp do punktu końcowego prognozowania online przez sieć VPN o wysokiej dostępności.

Utwórz w Cloud Shell instancję 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"

Utwórz w Cloud Shell instancję 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"

Aby zezwolić usłudze Identity-Aware Proxy (IAP) na łączenie się z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:

  • Dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne za pomocą IAP.
  • Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP używane przez IAP do przekierowywania TCP.

Utwórz w Cloud Shell regułę zapory sieciowej 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. Tworzenie notatnika zarządzanego przez użytkownika

interfejs Notebook API.

W następnej sekcji utwórz notatnik zarządzany przez użytkownika zawierający utworzone wcześniej konto usługi – user-managed-notebook-sa.

Utwórz w Cloud Shell instancję klienta prywatnego.

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. Wdróż model i prognozę online

W poniższej sekcji użyj przygotowanych modułów z programowania, Vertex AI:używaj niestandardowych procedur prognozowania w narzędziu Sklearn do wstępnego przetwarzania danych i po ich zakończeniu na potrzeby prognoz. Zaczynamy od sekcji 7,ponieważ notatnik został już utworzony w poprzednim kroku. Po wdrożeniu modelu wróć do samouczka, aby przejść do następnej sekcji.

ee68b7ba0cfd2746.png

16. Weryfikowanie dostępu do interfejsu Vertex API przez internet

W tej sekcji zalogujesz się w instancji i nat-client i zweryfikujesz połączenie z Vertex AI za pomocą narzędzi dim i tcpdump w przypadku domeny us-central1-aiplatform.googleapis.com używanej do obsługi interfejsów Vertex API.

Zaloguj się do klienta nat-client za pomocą IAP w Cloud Shell, aby zweryfikować połączenie z interfejsem Vertex API przez wykopanie z domeny wierzchołka us-central1-aiplatform.googleapis.com

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

Wykonaj archiwizację.

dig us-central1-aiplatform.googleapis.com

Na przykład zwróć uwagę na publiczne adresy IP w odpowiedzi 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

W systemie operacyjnym nat-client wykonaj polecenie tcpdump, aby sprawdzić rozpoznawanie nazw DNS podczas wykonywania curl pod kątem prognozy online.

 sudo tcpdump -i any port 53 -n

Przykład:

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

Otwórz nowy terminal Cloud Shell, klikając „+”. Po otwarciu nowej karty zaktualizuj zmienną nazwy projektu.

W Cloud Shell zaktualizuj zmienną nazwy projektu.

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

W Cloud Shell 2 wykonaj połączenie SSH z instancją nat-client.

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

W tej sekcji utworzysz plik instances.json za pomocą edytora sudo VI lub nano i wstawisz ciąg danych używany do uzyskania prognozy z wdrożonego modelu.

W systemie operacyjnym nat-client utwórz plik instances.json f z poniższym ciągiem danych:

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

Przykład:

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

Uzyskaj z Cloud Console identyfikator punktu końcowego prognozy online, który zostanie użyty w kolejnych krokach.

Przejdź do VERTEX AI → PROCENT ONLINE

237d413ccde1e95b.png

W systemie operacyjnym nat-client utwórz następujące zmienne:

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

Przykład:

ENDPOINT_ID="3328226095324463104"

Z systemu operacyjnego klienta nat-client skorzystaj z curl, aby uzyskać odpowiedź od modelu.

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

Zanotuj przykładową prognozę.

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. Weryfikacja – dostęp internetowy do interfejsu Vertex API

Po wykonaniu prognozy spójrzmy na wyniki TCPDUMP (terminal 1), które wskazują, że instancja nat-client (192.168.10.2) wykonuje zapytanie DNS do lokalnego serwera DNS 169.254.169.254 dla domeny Vertex AI us-central1-aiplatform.googleapis.com. Wynikiem zapytania DNS są publiczne wirtualne adresy IP (VIPS) dla interfejsów Vertex API, jak pokazano poniżej:

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. Włącz prywatny dostęp do interfejsów Vertex API

W następnej sekcji uzyskasz dostęp do interfejsów Vertex API przy użyciu usługi Private Service Connect przez sieć hybrydową (VPN o wysokiej dostępności), aby prywatnie dotrzeć do prognozy online. W przykładzie użytym w samouczku zaktualizujesz plik /etc/hosts w instancji private-client.

W środowisku lokalnym zaktualizowanie pojedynczego pliku /etc/hosts na potrzeby testowania jest odpowiednie, ale w środowiskach produkcyjnych i dużych lepiej jest utworzyć nową strefę przekazywania z pełną nazwą punktu końcowego PSC.

Na przykład punkt końcowy psc utworzony w samouczku nazywa się pscvertex, a tłumaczenie na pscvertex.p.googleapis.comus-central1-aiplatform-pscvertex.p.googleapis.com

Zaktualizowanie lokalnego serwera DNS za pomocą punktu końcowego PSC wymaga też refaktoryzacji lokalnych aplikacji w celu wywołania FDQN, np.us-central1-aiplatform-pscvertex.p.googleapis.com zamiast natywnego publicznego punktu końcowego us-central1-aiplatform.googleapis.com.

Klienty, które można skonfigurować do korzystania z niestandardowego punktu końcowego, mogą wysyłać żądania do punktu końcowego przy użyciu nazw DNS p.googleapis.com

Informacje na temat konfigurowania biblioteki do używania niestandardowych punktów końcowych znajdziesz w dokumentacji klienta lub biblioteki klienta. Na przykład:

  • Python: punkt api_endpoint możesz skonfigurować w klasie opcji klienta w pakiecie google-api-core.
  • Go: możesz skonfigurować WithEndpoint w pakiecie opcji klienta w pakiecie api.
  • gcloud: Możesz skonfigurować api_endpoint_overrides

Otwórz nowy terminal Cloud Shell, klikając „+”. Po otwarciu nowej karty zaktualizuj zmienną nazwy projektu.

Z Cloud Shell.

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

Zaloguj się w kliencie prywatnym za pomocą IAP w nowej wersji Cloud Shell, aby zweryfikować połączenie z interfejsem Vertex API, wykonując indeks w domenie vertex us-central1-aiplatform.googleapis.com

Z poziomu Cloud Shell zaloguj się do instancji systemu operacyjnego prywatnego klienta.

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

Wykonaj archiwizację.

dig us-central1-aiplatform.googleapis.com

Na przykład zanotuj publiczne adresy IP określone na podstawie odpowiedzi 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

Zaktualizuj instancję private-client /etc/hosts za pomocą edytora sudo VI lub nano, aby utworzyć rekord FQDN Vertex AI us-central1-aiplatform.googleapis.com wskazujący punkt końcowy PSC 100.100.10.10. Dalsze zmiany nie są wymagane.

Przykład:

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

W prywatnym systemie operacyjnym klienta wykonaj kod PING do punktu końcowego interfejsu Vertex API.

ping us-central1-aiplatform.googleapis.com

Przykład: kod PING zwraca adres IP punktu końcowego PSC, ale nie oczekuje na odpowiedź.

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

W prywatnym systemie operacyjnym klienta uruchom polecenie tcpdump, aby zweryfikować rozpoznawanie nazw DNS i ścieżkę danych IP do punktu końcowego PSC podczas wykonywania curl w oparciu o prognozowanie online.

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

Otwórz czwarty terminal Cloud Shell, klikając „+”. Po otwarciu nowej karty zaktualizuj zmienną nazwy projektu.

W Cloud Shell zaktualizuj zmienną nazwy projektu.

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

4 w Cloud Shell wykonaj połączenie SSH z instancją klienta prywatnego.

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

W tej sekcji utworzysz plik instances.json za pomocą edytora sudo VI lub nano i wstawisz ciąg danych używany do uzyskania prognozy z wdrożonego modelu.

W prywatnym systemie operacyjnym klienta utwórz plik instances.json f z poniższym ciągiem danych:

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

Przykład:

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

W prywatnym systemie operacyjnym klienta utwórz te zmienne:

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

Przykład:

ENDPOINT_ID="3328226095324463104"

Z prywatnego systemu operacyjnego klienta w Cloud Shell utwórz curl, aby uzyskać odpowiedź od modelu.

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. Weryfikacja – prywatny dostęp do interfejsu Vertex API

Z 4 prywatnego systemu operacyjnego klienta w Cloud Shell warto zwrócić uwagę, że adres IP punktu końcowego PSC (100.100.10.10) został użyty do uzyskania dostępu do interfejsu Vertex API.

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

W terminalu TCPDUMP w Cloud Shell możemy sprawdzić, czy nie zaobserwowano wyszukiwania DNS do us-central1-aiplatform.googleapis.com, ponieważ plik /etc/host miał pierwszeństwo, mimo że w ścieżce danych został użyty adres IP PSC 100.100.10.10.

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

Udało Ci się zweryfikować połączenie z prognozą online przez publiczny punkt końcowy przez internet i prywatnie z użyciem sieci hybrydowej i usługi Private Service Connect (googleapis). Wyjdź z systemu operacyjnego, który powraca do promptu Cloud Shell.

20. Czyszczenie danych

Usuń z Cloud Shell komponenty samouczka.

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

Usuwanie komponentów Vertex

Aby usunąć obraz kontenera, przejdź do Artifact Registry, wybierz utworzone repozytorium i kliknij Usuń.

616a3108bc2e48c8.png

Aby usunąć zasobnik na dane, w menu nawigacyjnym w konsoli Cloud przejdź do opcji „Pamięć”, wybierz swój zasobnik i kliknij Usuń:

eddd1f9fdfaede8.png

Wycofaj wdrożenie modelu z punktu końcowego. Przejdź do Vertex AI → Prognoza online → wybierz diamonds-cpr_endpoint → wycofanie wdrożenia modelu z punktu końcowego → wycofanie wdrożenia

bc95f092d21d4698.png

Usuń model. Przejdź do Vertex AI → Model Registry → Usuń model

ec4afff091e11606.png

Usuń punkt końcowy prognozy online. Przejdź do VertexAI → Prognoza online → wybierz diamonds-cpr_endpoint → Usuń punkt końcowy.

7453760299bdfb9a.png

21. Gratulacje

Gratulujemy! Udało Ci się skonfigurować i zweryfikować połączenie z prognozą online natywnie przez internet i prywatnie, korzystając z usługi Private Service Connect i sieci hybrydowej.

Udało Ci się utworzyć klienta nat-client i klienta prywatnego oraz użyć protokołu TCPDUMP do weryfikacji adresów IP używanych do uzyskiwania dostępu do interfejsów Vertex API. Znasz też usługę Private Service Connect (googleapis) oraz wiesz, jak za jej pomocą izolować aplikacje lokalne i wielochmurowe przy użyciu punktu końcowego PSC klienta.

Cosmopup uważa, że samouczki są świetne!

e6d3675ca7c6911f.jpeg

Co dalej?

Przejrzyj te samouczki...

Więcej informacji filmy,

Dokumentacja