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.
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.
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
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.
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.
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.
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
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
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.
W sekcji Rozgłaszane trasy wybierz opcję Utwórz trasy niestandardowe, zaktualizuj pola zgodnie z poniższym przykładem, wybierz GOTOWE i kliknij ZAPISZ.
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
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.
W sekcji Rozgłaszane trasy wybierz opcję Utwórz trasy niestandardowe, zaktualizuj pola zgodnie z poniższym przykładem, wybierz GOTOWE i kliknij ZAPISZ.
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
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
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.
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
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ń.
Aby usunąć zasobnik na dane, w menu nawigacyjnym w konsoli Cloud przejdź do opcji „Pamięć”, wybierz swój zasobnik i kliknij Usuń:
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
Usuń model. Przejdź do Vertex AI → Model Registry → Usuń model
Usuń punkt końcowy prognozy online. Przejdź do VertexAI → Prognoza online → wybierz diamonds-cpr_endpoint → Usuń punkt końcowy.
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!
Co dalej?
Przejrzyj te samouczki...
- Private Service Connect dla interfejsów API Google
- Vertex AI – tworzenie bezpiecznego notatnika zarządzanego przez użytkownika
Więcej informacji filmy,
- Omówienie usługi Private Service Connect
- Czym jest Private Service Connect?
- Jak uzyskiwać prognozy z modelu ML
- Co to jest Vertex AI?