גישה פרטית לנקודות קצה לחיזוי אונליין של Vertex AI באמצעות PSC

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

24a07ba49a7bcb16.png

מה תפַתחו

מגדירים רשת VPC בשם on-prem-vpc כדי לייצג סביבה מקומית. לפריסה שלך, on-prem-vpc לא היה קיים. במקום זאת, ייעשה שימוש ברשת היברידית אל מרכז הנתונים בארגון או עם ספק שירותי הענן.

אתם מתכוונים לפתח ארכיטקטורה מקיפה של Private Service Connect שממחישה גישה ל-Online Prediction באופן ציבורי באמצעות Cloud NAT ושימוש באופן פרטי ב-PSC על HA VPN, לפי הפרטים שבהמשך.

b545c808b366341a.png

אחרי שפורסים את החיזוי אונליין בפרויקט ב-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

אדמין רשתות של Compute

עריכה של ספריית שירותים

אדמין DNS

אדמין רשתות

אדמין מכסות

אדמין של Notebook

משתמש בחשבון שירות

אדמין באחסון

משתמש Vertex AI

אדמין של חשבון שירות

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 של השער נוצרו.

66312b1b53c233d7.png

יצירת 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.

e8e13ebaed09f1.png

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.

cb91b4476a88acd3.png

אימות מסלולים שנלמדו ב-Simple-vpc באמצעות HA VPN

באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← שאיפה ל-vpc ← ROUTES ← REGION ← US-CENTRAL1 ← VIEW

צפייה ב-Simple-vpc למדה מסלולים מ-nat-subnet ו-user-ip-subnet.

f407ed6e1a6233db.png

בדיקה שמערכת on-prem-vpc למדה את רשת המשנה של סביבת העבודה (workbench-subnet) דרך HA-VPN

באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← on-prem-vpc ← ROUTES ← REGION ← US-CENTRAL1 ← VIEW

7957e5d898a9e7e0.png

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, ואז בוחרים באפשרות עריכה.

c8fb02ed59a5b068.png

בקטע 'מסלולים שפורסמו', בוחרים באפשרות יצירת מסלולים מותאמים אישית, מעדכנים את השדות על סמך הדוגמה שלמטה, בוחרים באפשרות סיום ולוחצים על שמירה.

5996464e3aae0665.png

f799082ab2cd7e31.png

אימות

בדיקה שמערכת on-prem-vpc למדה את כתובת ה-IP של נקודת הקצה של PSC דרך HA-VPN

באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← on-prem-vpc ← ROUTES ← REGION ← US-CENTRAL1 ← VIEW

1b42673e6f940bf2.png

10. יצירה של מודעות מסלולים בהתאמה אישית on-prem-vpc

הנתב בענן המקומי מסוג on-prem-vpc מפרסם את כל רשתות המשנה כברירת מחדל, אבל יש צורך רק ברשת המשנה מסוג Private-ip-sub.

בקטע הבא, מעדכנים את פרסומות המסלול מהנתב on-prem-cr-us-central1 בענן.

במסוף, עוברים אל HYBRID CONNECTIVITY ← CLOUD ROUTERS ← on-prem-cr-us-central1, ואז בוחרים באפשרות עריכה.

bd96bde9550d516a.png

בקטע 'מסלולים שפורסמו', בוחרים באפשרות יצירת מסלולים מותאמים אישית, מעדכנים את השדות על סמך הדוגמה שלמטה, בוחרים באפשרות סיום ולוחצים על שמירה.

f8b61f669a9cfeef.png

אימות

ודאו ש-Simplel-vpc למד את הנתיב private-ip-subnet מ-on-prem-vpc.

באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← שאיפה ל-vpc ← ROUTES ← REGION ← US-CENTRAL1 ← VIEW

2b1a7a5f918e9f50.png

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 API

בקטע הבא, יוצרים 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 בשלב הקודם. אחרי שהמודל נפרס, צריך לחזור למדריך כדי להתחיל את הקטע הבא.

ee68b7ba0cfd2746.png

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 ← חיזוי אונליין

237d413ccde1e95b.png

ב-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 כדי לשלוח בקשות לנקודת קצה.

במסמכי התיעוד של ספריית הלקוח או ספריית הלקוח מוסבר איך להגדיר אותם לשימוש בנקודות קצה מותאמות אישית. לדוגמה:

לוחצים על הסמל '+' כדי לפתוח טרמינל חדש ב-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 (מחיקה)

616a3108bc2e48c8.png

כדי למחוק את קטגוריית האחסון, באמצעות תפריט הניווט במסוף Cloud, עוברים אל Storage (אחסון), בוחרים את הקטגוריה ולוחצים על Delete: (מחיקה:)

eddd1f9fdfaede8.png

מבטלים את הפריסה של המודל מנקודת הקצה. עוברים ל-Vertex AI ← חיזוי אונליין ← בוחרים diamonds-cpr_endpoint ← ביטול הפריסה של המודל מנקודת קצה ← ביטול הפריסה

bc95f092d21d4698.png

מחיקת המודל. עוברים אל Vertex AI ← Model Registry ← מחיקת המודל

ec4afff091e11606.png

מחיקת נקודת הקצה לחיזוי אונליין. עוברים אל VertexAI ← חיזוי אונליין ← בחירת diamonds-cpr_endpoint ← מחיקת נקודת קצה

7453760299bdfb9a.png

21. מזל טוב

כל הכבוד! הגדרת בהצלחה וביצעת אימות של התחברות לחיזוי אונליין באמצעות האינטרנט ובאופן פרטי עם Private Service Connect ורשת היברידית.

יצרתם חשבון nat-client ו-private-client שהשתמשתם ב-TCPDUMP כדי לאמת את כתובות ה-IP שמשמשות כדי להגיע ל-Vertex APIs. בנוסף, למדתם על Private Service Connect (googleapis) ואיך אפשר להשתמש בו כדי לבודד אפליקציות מקומיות ואפליקציות מרובי עננים (multi-cloud) באמצעות שימוש בנקודת קצה של PSC של לקוח.

ב-Cosmopup שלנו חושבים שמדריכים הם מדהימים!

e6d3675ca7c6911f.jpeg

מה השלב הבא?

מעיינים בכמה מהמדריכים האלה...

המשך קריאה סרטונים

מסמכי עזר