1. מבוא
מארחים בארגון יכולים להגיע לחיזוי אונליין באופן מקומי דרך האינטרנט הציבורי (אפשרות 1) או באמצעות Cloud VPN או Cloud Interconnect עם Private Service Connect (PSC) (אפשרות 2) מהרשת המקומית שלכם, ושניהם כוללים הצפנת SSL או TLS. קישוריות היברידית לחיזוי אונליין באמצעות חיבור לאינטרנט מניבה ביצועים טובים יותר מאשר באינטרנט, ולכן היא מומלצת לאפליקציות חיוניות, כפי שמתואר באיור 1.
במדריך הזה נדגים איך להשתמש ב-VPN בזמינות גבוהה (HA VPN) כדי לגשת לחיזוי אונליין באופן פרטי בין שתי רשתות VPC, שיכולות לשמש כבסיס לקישוריות מרובת עננים (multi-cloud) ולקישוריות פרטית מקומית.
הערה: Vertex Online Prediction היא נקודת קצה ציבורית, ולכן אתם רוצים להגביל את הגישה באמצעות VPC Service Controls (VPC-SC) כדי ליצור היקפים מאובטחים כדי לאפשר או לדחות גישה ל-Vertex ול-Googleapis אחרים. המדריך הזה לא עוסק ב-VPC-SC. לפרטים נוספים, קראו את המאמר VPC Service Controls עם Vertex AI
מה תפַתחו
מגדירים רשת VPC בשם on-prem-vpc
כדי לייצג סביבה מקומית. לפריסה שלך, on-prem-vpc
לא היה קיים. במקום זאת, ייעשה שימוש ברשת היברידית אל מרכז הנתונים בארגון או עם ספק שירותי הענן.
אתם מתכוונים לפתח ארכיטקטורה מקיפה של Private Service Connect שממחישה גישה ל-Online Prediction באופן ציבורי באמצעות Cloud NAT ושימוש באופן פרטי ב-PSC על HA VPN, לפי הפרטים שבהמשך.
אחרי שפורסים את החיזוי אונליין בפרויקט ב-Google Cloud, נבדוק את התרחישים הבאים לדוגמה:
הגישה הציבורית לחיזוי אונליין כוללת את האפשרויות הבאות:
- ליצור מכונת GCE (נא-לקוח) שמשתמשת ב-NAT לגישה לאינטרנט של תעבורת נתונים יוצאת (egress)
- השתמשו ב-CURL כדי להסיק לגבי המודל
- שימוש ב-TCPDUMP כדי לוודא שהגישה לחיזוי אונליין מתבצעת דרך VIP ציבורי
הגישה הפרטית לחיזוי אונליין כוללת את האפשרויות הבאות:
- פריסת מודל בנקודת קצה לחיזוי אונליין של AVertex בפרויקט
- יצירה של נקודת קצה (endpoint) של Private Service Connect (Googleapis) ב-madel-vpc
- ייצוא כתובת ה-IP של PSC ב-Cloud Router כפרסום מותאם אישית ל-VPC המקומי בארגון
- יצירה של מכונת GCE (לקוח פרטי) ועדכון קובץ וכו' עם כתובת ה-IP של נקודת הקצה של PSC
- השתמשו ב-CURL כדי להסיק לגבי המודל
- שימוש ב-TCPDUMP כדי לוודא שהגישה לחיזוי אונליין מתבצעת דרך כתובת ה-IP של נקודת הקצה של PSC
מה תלמדו
- איך ליצור נקודת קצה (endpoint) של Private Service Connect
- איך לפרסם את כתובת ה-IP של נקודת הקצה של PSC באמצעות Cloud Router
- איך להשתמש ב-TCPDUMP כדי לאמת את הגישה לחיזוי אונליין, גם לציבור וגם כפרטי
מה צריך להכין
- פרויקט ב-Google Cloud
הרשאות IAM
2. לפני שמתחילים
צריך לעדכן את הפרויקט כך שיתמוך במדריך הזה
המדריך הזה משתמש ב-$variables כדי לעזור בהטמעת ההגדרות של gcloud ב-Cloud Shell.
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. הפעל שירותים
Inside Cloud Shell מבצעים את הפעולות הבאות:
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. הגדרת beforel-vpc
יוצרים את ה-Simplel-vpc
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
יצירת רשת משנה של notebook בניהול המשתמש
Inside Cloud Shell מבצעים את הפעולות הבאות:
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 ו-NAT
נעשה שימוש ב-Cloud NAT במדריך להורדת חבילות תוכנה של notebook, כי למכונה של notebook שמנוהלת על ידי המשתמש אין כתובת IP חיצונית. ב-Cloud NAT יש גם יכולות של תעבורת נתונים יוצאת (egress NAT), כלומר שמארחי אינטרנט לא יכולים ליזום תקשורת עם notebook שמנוהל על ידי משתמש, ולכן הוא מאובטח יותר.
יוצרים את הנתב האזורי בענן בתוך Cloud Shell.
gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1
ב-Inside Cloud Shell, יוצרים את שער 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. הגדרה מקומית VPC
יצירת מודעת וידאו ב-prem-vpc
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
יוצרים את ה-nat-subnet
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1
יוצרים את Private-ip-subnet
Inside Cloud Shell מבצעים את הפעולות הבאות:
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 ו-NAT
Cloud NAT משמש במדריך להורדת חבילות תוכנה. Cloud NAT גם מציע יכולות של תעבורת נתונים יוצאת (egress NAT), כלומר שמארחי אינטרנט לא יכולים ליזום תקשורת עם מחשוב, וכך הופכים להיות מאובטחים יותר.
יוצרים את הנתב האזורי בענן בתוך Cloud Shell.
gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1
ב-Inside Cloud Shell, יוצרים את שער 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. יצירת נקודת הקצה של Private Service Connect
בקטע הבא, יוצרים נקודת קצה (endpoint) של Private Service Connect (PSC) שתשמש לגישה ל-Vertex API מה-on-prem-vpc. כתובת ה-IP של PSC 100.100.10.10 תפורסם מ-Siml-vpc-cloud-router-vpn, בשלב הבא, פרסום של נתב מותאם אישית לרשת המקומית.
מ-Cloud Shell
gcloud compute addresses create psc-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=100.100.10.10 \
--network=aiml-vpc
יצירה של נקודת קצה (endpoint) של PSC
מ-Cloud Shell
gcloud compute forwarding-rules create pscvertex \
--global \
--network=aiml-vpc \
--address=psc-ip \
--target-google-apis-bundle=all-apis
הצגת רשימה של נקודות הקצה שהוגדרו ל-Private Service Connect
מ-Cloud Shell
gcloud compute forwarding-rules list \
--filter target="(all-apis OR vpc-sc)" --global
תיאור נקודות הקצה שהוגדרו ל-Private Service Connect
מ-Cloud Shell
gcloud compute forwarding-rules describe \
pscvertex --global
7. קישוריות היברידית
בחלק הבא, יוצרים Cloud Router שמאפשר להחליף באופן דינמי מסלולים בין ענן וירטואלי פרטי (VPC) לבין הרשת השכנה באמצעות Border Gateway Protocol (BGP).
ב-Cloud Router יש אפשרות להגדיר סשן של BGP דרך מנהרת Cloud VPN כדי לחבר את הרשתות. השירות לומד באופן אוטומטי טווחים חדשים של כתובות IP של רשתות משנה ומכריז עליהם ברשת השכנה.
במדריך הזה פורסים HA VPN בין ה-aiml-vpc ו-on-prem-vpc.
יוצרים שער HA VPN עבור aiml-vpc
כשיוצרים כל שער, מוקצות באופן אוטומטי שתי כתובות IPv4 חיצוניות, אחת לכל ממשק של שער.
יוצרים את השער HA VPN ב-Inside Cloud Shell
gcloud compute vpn-gateways create aiml-vpn-gw \
--network=aiml-vpc\
--region=us-central1
יוצרים שער HA VPN עבור on-prem-vpc
כשיוצרים כל שער, מוקצות באופן אוטומטי שתי כתובות IPv4 חיצוניות, אחת לכל ממשק של שער. רושמים בצד את כתובות ה-IP האלה כדי להשתמש בהן בהמשך בשלבי ההגדרה.
יוצרים את השער HA VPN ב-Inside Cloud Shell.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
אימות היצירה של שער HA VPN
באמצעות המסוף, עוברים אל HYBRID CONNECTIVITY ← VPN ← CLOUD VPN GATEWAYS ומוודאים שכתובות ה-IP של השער נוצרו.
יצירת Cloud Router ל-Simple-vpc
Inside Cloud Shell, יוצרים את Cloud Router שממוקם ב-us-central1
gcloud compute routers create aiml-cr-us-central1 \
--region=us-central1 \
--network=aiml-vpc\
--asn=65001
יצירת Cloud Router עבור ה-vpc בסביבה המקומית
Inside Cloud Shell, יוצרים את Cloud Router שממוקם ב-us-central1
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
יצירת מנהרות ה-VPN ל-Simplel-vpc
כך יוצרים שתי מנהרות VPN בכל שער HA VPN.
יצירת מנהרת VPN0
בתוך Cloud Shell, יוצרים מנהרה0:
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
יצירת מנהרת VPN1
בתוך Cloud Shell, יוצרים tunnel1:
gcloud compute vpn-tunnels create aiml-vpc-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router aiml-cr-us-central1 \
--vpn-gateway aiml-vpn-gw \
--interface 1
יצירת מנהרות VPN ל-on-prem-vpc
כך יוצרים שתי מנהרות VPN בכל שער HA VPN.
יצירת מנהרת VPN0
בתוך Cloud Shell, יוצרים מנהרה0:
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
יצירת מנהרת VPN1
בתוך Cloud Shell, יוצרים tunnel1:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway aiml-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 1
אימות היצירה של מנהרת VPN
באמצעות המסוף, עוברים אל HYBRID CONNECTIVITY ← VPN ← CLOUD VPN TUNNELS.
8. הקמת שכנים ל-BGP
יצירת פעילויות באמצעות BGP
בקטע הזה תגדירו ממשקי Cloud Router ועמיתים של BGP.
יצירת ממשק BGP וקישור בין רשתות שכנות (peering) ב-Simplel-vpc
בתוך Cloud Shell, יוצרים את ממשק 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
Inside Cloud Shell, יוצרים את האפליקציה להשוואה ב-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
בתוך Cloud Shell, יוצרים את ממשק 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
Inside Cloud Shell, יוצרים את האפליקציה להשוואה ב-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
יצירה של ממשק BGP וקישור בין רשתות שכנות (peering) של on-prem-vpc
בתוך Cloud Shell, יוצרים את ממשק 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
Inside Cloud Shell, יוצרים את האפליקציה להשוואה ב-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
בתוך Cloud Shell, יוצרים את ממשק 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
Inside Cloud Shell, יוצרים את האפליקציה להשוואה ב-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
עוברים אל חיבור היברידי ← VPN כדי לראות את הפרטים של מנהרת ה-VPN.
אימות מסלולים שנלמדו ב-Simple-vpc באמצעות HA VPN
באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← שאיפה ל-vpc ← ROUTES ← REGION ← US-CENTRAL1 ← VIEW
צפייה ב-Simple-vpc למדה מסלולים מ-nat-subnet ו-user-ip-subnet.
בדיקה שמערכת on-prem-vpc למדה את רשת המשנה של סביבת העבודה (workbench-subnet) דרך HA-VPN
באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← on-prem-vpc ← ROUTES ← REGION ← US-CENTRAL1 ← VIEW
9. יצירה של מודעות מסלולים בהתאמה אישית goall-vpc
כתובת ה-IP של נקודת הקצה של Private Service Connect לא מתפרסמת באופן אוטומטי על ידי ה-Cloud Router הבא, כי רשת המשנה לא מוגדרת ב-VPC.
במקום זאת, צריך ליצור מודעה מותאמת אישית של מסלול מה-Simple-cr-us-central Cloud Router עבור כתובת ה-IP 100.100.10.10 של נקודת הקצה. המודעה תפורסם בסביבה המקומית דרך BGP אל on-prem-vpc.
במסוף, עוברים אל HYBRID CONNECTIVITY ← CLOUD ROUTERS ← audiol-cr-us-central1, ואז בוחרים באפשרות עריכה.
בקטע 'מסלולים שפורסמו', בוחרים באפשרות יצירת מסלולים מותאמים אישית, מעדכנים את השדות על סמך הדוגמה שלמטה, בוחרים באפשרות סיום ולוחצים על שמירה.
אימות
בדיקה שמערכת on-prem-vpc למדה את כתובת ה-IP של נקודת הקצה של PSC דרך HA-VPN
באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← on-prem-vpc ← ROUTES ← REGION ← US-CENTRAL1 ← VIEW
10. יצירה של מודעות מסלולים בהתאמה אישית on-prem-vpc
הנתב בענן המקומי מסוג on-prem-vpc מפרסם את כל רשתות המשנה כברירת מחדל, אבל יש צורך רק ברשת המשנה מסוג Private-ip-sub.
בקטע הבא, מעדכנים את פרסומות המסלול מהנתב on-prem-cr-us-central1 בענן.
במסוף, עוברים אל HYBRID CONNECTIVITY ← CLOUD ROUTERS ← on-prem-cr-us-central1, ואז בוחרים באפשרות עריכה.
בקטע 'מסלולים שפורסמו', בוחרים באפשרות יצירת מסלולים מותאמים אישית, מעדכנים את השדות על סמך הדוגמה שלמטה, בוחרים באפשרות סיום ולוחצים על שמירה.
אימות
ודאו ש-Simplel-vpc למד את הנתיב private-ip-subnet מ-on-prem-vpc.
באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← שאיפה ל-vpc ← ROUTES ← REGION ← US-CENTRAL1 ← VIEW
11. יצירת חשבון שירות שמנוהל על ידי משתמש (מכונות של GCE)
כדי לספק רמת שליטה מדויקת ל-Vertex API, נדרש חשבון שירות בניהול משתמש שתחול על מכונות ה-nat והמכונות הפרטיות של הלקוח. אחרי שיוצרים את ההרשאות של חשבון השירות, אפשר לשנות אותן בהתאם לדרישות העסקיות. במדריך הזה יחולו התפקידים הבאים לחשבון השירות המנוהל על ידי המשתמש, vertex-sa:
כדי להמשיך, צריך את Service Account API.
יוצרים את חשבון השירות ב-Inside Cloud Shell.
gcloud iam service-accounts create gce-vertex-sa \
--description="service account for vertex" \
--display-name="gce-vertex-sa"
ב-Inside Cloud Shell, מעדכנים את חשבון השירות בתפקיד אדמין של מכונה מחשוב.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"
ב-Inside Cloud Shell, מעדכנים את חשבון השירות עם התפקיד Vertex AI User
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
12. יצירת חשבון שירות שמנוהל על ידי משתמש (Notebook)
בקטע הבא תיצרו חשבון שירות בניהול משתמשים שישויך ל-Vertex Workbench (Notebook) שנעשה בו שימוש במדריך.
במדריך הזה, יחולו על חשבון השירות את התפקידים הבאים:
יוצרים את חשבון השירות ב-Inside Cloud Shell.
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
ב-Inside Cloud Shell, מעדכנים את חשבון השירות עם התפקיד Storage Admin.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"
ב-Inside Cloud Shell, מעדכנים את חשבון השירות עם התפקיד Vertex AI User.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
Inside Cloud Shell, מעדכנים את חשבון השירות עם התפקיד Artifact Registry Admin.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
ב-Cloud Shell, מציגים את חשבון השירות ורושמים את כתובת האימייל שייעשה בה שימוש ליצירת ה-notebook המנוהל על ידי המשתמש.
gcloud iam service-accounts list
13. יצירת מופעי הבדיקה
בחלק הבא תיצרו מכונות בדיקה כדי לאמת שיטות שונות כדי להגיע באופן ספציפי ל-Vertex APIs:
- המכונה
nat-client,
תשתמש ב-Cloud NAT כדי לפתור את Vertex AI, ולכן תהיה גישה לנקודת הקצה אונליין של החיזוי באינטרנט - המכונה
private-client
תשתמש ב-IP 100.100.10.10 של Private Service Connect כדי לגשת לנקודת הקצה של חיזוי אונליין דרך HA-VPN.
Inside Cloud Shell יוצרים את המכונה 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"
Inside Cloud Shell יוצרים את המכונה 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"
כדי לאפשר לשרת proxy לאימות זהויות (IAP) להתחבר למכונות הווירטואליות שלכם, יוצרים כלל חומת אש שמבצע את הפעולות הבאות:
- המדיניות חלה על כל מכונות וירטואליות שרוצים לגשת אליהן באמצעות IAP.
- תעבורת נתונים נכנסת (ingress) מטווח ה-IP 35.235.240.0/20. הטווח הזה מכיל את כל כתובות ה-IP שמשמשות להעברת TCP באמצעות IAP.
בתוך Cloud Shell, יוצרים את כלל חומת האש 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. יצירת notebook בניהול משתמשים
בקטע הבא, יוצרים notebook בניהול משתמש שמשלב את חשבון השירות שנוצר בעבר, user-managed-notebook-sa.
באמצעות Inside Cloud Shell, יוצרים את המכונה הפרטית של הלקוח.
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. פריסת המודל והחיזוי אונליין
בקטע הבא משתמשים ב-codelab, ב-Vertex AI:שימוש בתרחישי חיזוי מותאמים אישית עם Sklearn כדי לעבד נתונים של עיבוד מראש ולפרסם אותם עבור חיזויים בתור התחלה, בסעיף 7, כי כבר יצרת notebook בשלב הקודם. אחרי שהמודל נפרס, צריך לחזור למדריך כדי להתחיל את הקטע הבא.
16. אימות הגישה ל-Vertex API באינטרנט
בקטע הבא יתבצע התחברות למכונה שלנו, nat-client, ותאמת את הקישוריות ל-Vertex AI באמצעות השימוש ב-קיוד ו-tcpdump בדומיין us-central1-aiplatform.googleapis.com שמשמשים לפתרון ממשקי Vertex AI.
מתחברים ל-nat-client באמצעות IAP ב-Cloud Shell כדי לאמת את הקישוריות ל-Vertex API על ידי ביצוע חיפוש מידע על דומיין הקודקוד us-central1-aiplatform.googleapis.com.
gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
מפעילים את החפירה.
dig us-central1-aiplatform.googleapis.com
לדוגמה, שימו לב לכתובות ה-IP הציבוריות בתגובת ה-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
ממערכת ההפעלה Nat-client, מריצים את tcpdump כדי לאמת את רזולוציית ה-DNS בעת ביצוע curl מול החיזוי אונליין.
sudo tcpdump -i any port 53 -n
דוגמה:
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
לוחצים על הסמל '+' כדי לפתוח טרמינל חדש ב-Cloud Shell. אחרי שפותחים את הכרטיסייה החדשה, מעדכנים את המשתנה של שם הפרויקט.
מעדכנים את המשתנה של שם הפרויקט ב-Inside Cloud Shell.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Inside Cloud Shell 2, מבצעים SSH למכונת nat-client.
gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"
בקטע הבא, תיצרו קובץ instances.json באמצעות עורך sudo VI או nano ותוסיפו את מחרוזת הנתונים שמשמשת לקבלת חיזוי מהמודל שנפרס.
ב-nat-client OS, יוצרים 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:$ 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:$
מקבלים את מזהה נקודת הקצה לחיזוי אונליין ממסוף Cloud, שבו תשתמשו בשלבים הבאים.
עוברים אל VERTEX AI ← חיזוי אונליין
ב-nat-client OS, יוצרים את המשתנים הבאים:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
דוגמה:
ENDPOINT_ID="3328226095324463104"
במערכת ההפעלה Nat-client, מבצעים curl כדי לקבל תשובה מהמודל.
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
דוגמה: שימו לב לחיזוי המוצלח.
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. אימות – גישה לאינטרנט ל-Vertex API
עכשיו לאחר שהפעלתם את החיזוי, נבחן את תוצאות ה-TCPDUMP (טרמינל 1) שמציינות את מכונת ה-nat-client (192.168.10.2) שמבצעת שאילתת DNS לשרת ה-DNS המקומי 169.254.169.254 של דומיין Vertex AI us-central1-aiapis.googleapis.com התוצאה של שאילתת ה-DNS היא כתובות IP וירטואליות (VIPS) ציבוריות של Vertex APIs כמפורט בהמשך:
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. הפעלת גישה פרטית לממשקי API של Vertex
בקטע הבא תקבלו גישה לממשקי Vertex API באמצעות Private Service Connect בחיבור רשתות היברידיות (HA VPN) כדי להגיע באופן פרטי לחיזוי אונליין. בדוגמה של המדריך, מעדכנים את הקובץ /etc/hosts במופע של הלקוח הפרטי.
בסביבה המקומית שלך כדאי לעדכן קובץ אחד או מספר קטן של מכונות או קובצי מארחים לצורך בדיקה. עם זאת, עדיף להשתמש בסביבות גדולות ובסביבות ייצור ליצירת אזור העברה חדש באמצעות FQDN של נקודת הקצה של PSC.
לדוגמה, נקודת הקצה psc שנוצרה במדריך נקראת pscvertex בתרגום ל-pscvertex.p.googleapis.com.כשמשתמשים בנקודת הקצה של vertex, מצרפים את ה-FQDN עם השירות, למשל us-central1-aiplatform-pscvertex.p.googleapis.com.
כדי לעדכן את ה-DNS המקומי בנקודת הקצה PSC, נדרש גם ארגון מחדש (Refactoring) של אפליקציות מקומיות לשליחת קריאה ל-FDQN.למשל, us-central1-aiplatform-pscvertex.p.googleapis.com במקום נקודת הקצה הציבורית us-central1-aiplatform.googleapis.com.
לקוחות שניתן להגדיר לשימוש בנקודת קצה מותאמת אישית יכולים להשתמש בשמות ה-DNS של p.googleapis.com כדי לשלוח בקשות לנקודת קצה.
במסמכי התיעוד של ספריית הלקוח או ספריית הלקוח מוסבר איך להגדיר אותם לשימוש בנקודות קצה מותאמות אישית. לדוגמה:
- Python: אפשר להגדיר את api_endpoint ב-Client options class (סיווג אפשרויות לקוח) שבחבילת google-api-core.
- Go: אפשר להגדיר את OnEndpoint בחבילת האפשרויות של לקוח בחבילת ה-API.
- gcloud: אפשר להגדיר את api_endpoint_overrides
לוחצים על הסמל '+' כדי לפתוח טרמינל חדש ב-Cloud Shell. אחרי שפותחים את הכרטיסייה החדשה, מעדכנים את המשתנה של שם הפרויקט.
מ-Cloud Shell.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
מתחברים ללקוח פרטי באמצעות IAP ב-Cloud Shell חדש כדי לתקף את הקישוריות ל-Vertex API על ידי ביצוע הרצה בדומיין הקודקוד us-central1-aiplatform.googleapis.com
מ-Cloud Shell, נכנסים למכונה של מערכת ההפעלה הפרטית של הלקוח.
gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
מפעילים את החפירה.
dig us-central1-aiplatform.googleapis.com
לדוגמה, חשוב לשים לב לכתובות ה-IP הציבוריות המבוססות על תגובת ה-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
מעדכנים את המכונה הפרטית /etc/hosts באמצעות עורך sudo VI או nano כדי ליצור רשומה של Vertex AI FQDN us-central1-aiplatform.googleapis.com שמפנה לנקודת הקצה 100.100.10.10 של PSC, אין צורך בשינויים נוספים.
דוגמה:
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
במערכת ההפעלה של הלקוח הפרטי, מבצעים קוד אימות (PING) לנקודת הקצה של Vertex API.
ping us-central1-aiplatform.googleapis.com
לדוגמה, קוד האימות מחזיר את כתובת ה-IP של נקודת הקצה של PSC אבל לא צפויה תשובה.
user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.
במערכת ההפעלה של לקוח פרטי, מפעילים tcpdump כדי לאמת את רזולוציית ה-DNS ונתיב הנתונים של כתובת ה-IP אל נקודת הקצה של PSC כשמבצעים curl נגד החיזוי אונליין.
sudo tcpdump -i any port 53 -n or host 100.100.10.10
פותחים את הטרמינל הרביעי של Cloud Shell על ידי לחיצה על הסמל '+'. אחרי שפותחים את הכרטיסייה החדשה, מעדכנים את המשתנה של שם הפרויקט.
מעדכנים את המשתנה של שם הפרויקט ב-Inside Cloud Shell.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Inside Cloud Shell4, מבצעים SSH למכונה של לקוח פרטי.
gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"
בקטע הבא, תיצרו קובץ instances.json באמצעות עורך sudo VI או nano ותוסיפו את מחרוזת הנתונים שמשמשת לקבלת חיזוי מהמודל שנפרס.
במערכת ההפעלה של לקוח פרטי, יוצרים 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:$ 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:$
במערכת ההפעלה של הלקוח הפרטי יוצרים את המשתנים הבאים:
gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
דוגמה:
ENDPOINT_ID="3328226095324463104"
במערכת ההפעלה של הלקוח הפרטי ב-Cloud Shell 4, מבצעים curl כדי לקבל תשובה מהמודל.
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. אימות – גישה פרטית ל-Vertex API
ממערכת ההפעלה של הלקוח הפרטי ב-Cloud Shell 4, שימו לב שכתובת ה-IP של נקודת הקצה של PSC (100.100.10.10) שימשה לגישה ל-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
מטרמינל TCPDUMP בשלושת Cloud Shell, אנחנו יכולים לוודא ששאילתת DNS שבוצעה ל-us-central1-aiplatform.googleapis.com לא זוהה כי הקובץ /etc/host קיבל קדימות, אבל כתובת ה-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
אימתת בהצלחה את החיבור שלך לחיזוי אונליין דרך נקודת קצה ציבורית דרך האינטרנט ובאופן פרטי באמצעות שימוש ברשת היברידית וב-Private Service Connect (googleapis). יוצאים ממערכת ההפעלה שחוזרת להודעה של Cloud Shell.
20. הסרת המשאבים
מוחקים את רכיבי המדריך מ-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
כדי למחוק את קובץ האימג' בקונטיינר, עוברים אל Artifact Registry, בוחרים את המאגר שיצרתם ובוחרים באפשרות Delete (מחיקה)
כדי למחוק את קטגוריית האחסון, באמצעות תפריט הניווט במסוף Cloud, עוברים אל Storage (אחסון), בוחרים את הקטגוריה ולוחצים על Delete: (מחיקה:)
מבטלים את הפריסה של המודל מנקודת הקצה. עוברים ל-Vertex AI ← חיזוי אונליין ← בוחרים diamonds-cpr_endpoint ← ביטול הפריסה של המודל מנקודת קצה ← ביטול הפריסה
מחיקת המודל. עוברים אל Vertex AI ← Model Registry ← מחיקת המודל
מחיקת נקודת הקצה לחיזוי אונליין. עוברים אל VertexAI ← חיזוי אונליין ← בחירת diamonds-cpr_endpoint ← מחיקת נקודת קצה
21. מזל טוב
כל הכבוד! הגדרת בהצלחה וביצעת אימות של התחברות לחיזוי אונליין באמצעות האינטרנט ובאופן פרטי עם Private Service Connect ורשת היברידית.
יצרתם חשבון nat-client ו-private-client שהשתמשתם ב-TCPDUMP כדי לאמת את כתובות ה-IP שמשמשות כדי להגיע ל-Vertex APIs. בנוסף, למדתם על Private Service Connect (googleapis) ואיך אפשר להשתמש בו כדי לבודד אפליקציות מקומיות ואפליקציות מרובי עננים (multi-cloud) באמצעות שימוש בנקודת קצה של PSC של לקוח.
ב-Cosmopup שלנו חושבים שמדריכים הם מדהימים!
מה השלב הבא?
מעיינים בכמה מהמדריכים האלה...
המשך קריאה סרטונים
- סקירה כללית על Private Service Connect
- מה זה Private Service Connect?
- איך מקבלים חיזויים ממודל למידת מכונה
- מה זה Vertex AI?