פריסת Model Garden בנקודת קצה של PSC

1. מבוא

אפשר להשתמש ב-Private Service Connect כדי ליצור גישה פרטית ומאובטחת למודלים שנפרסו מ-Vertex AI Model Garden. במקום לחשוף נקודת קצה ציבורית, השיטה הזו מאפשרת לכם לפרוס את המודל לנקודת קצה פרטית ב-Vertex AI שאפשר לגשת אליה רק בענן וירטואלי פרטי (VPC).

‫Private Service Connect יוצר נקודת קצה עם כתובת IP פנימית בתוך ה-VPC, שמתחברת ישירות לשירות Vertex AI שמנוהל על ידי Google ומארח את המודל שלכם. כך אפליקציות בסביבות ה-VPC והסביבות המקומיות (דרך Cloud VPN או Interconnect) יכולות לשלוח בקשות להסקת מסקנות באמצעות כתובות IP פרטיות. כל תעבורת הרשת נשארת ברשת של Google, מה שמשפר את האבטחה, מקטין את זמן האחזור ומבודד לחלוטין את נקודת הקצה של המודל שלכם מהאינטרנט הציבורי.

4a78228d4197997c.png

מה תפַתחו

במדריך הזה תורידו את Gemma 3 מ-Model Garden, שמתארח ב-Vertex AI Online Inference כנקודת קצה פרטית שאפשר לגשת אליה דרך Private Service Connect. ההגדרה מקצה לקצה תכלול:

  1. מודל Model Garden: בוחרים את Gemma 3 מ-Vertex AI Model Garden ומציבים אותו בנקודת קצה של Private Service Connect.
  2. ‫Private Service Connect: תגדירו נקודת קצה (endpoint) לצרכן בענן וירטואלי פרטי (VPC) שתכלול כתובת IP פנימית ברשת שלכם.
  3. חיבור מאובטח ל-Vertex AI: נקודת הקצה (endpoint) של PSC תכוון ל-Service Attachment שנוצר באופן אוטומטי על ידי Vertex AI עבור פריסת המודל הפרטי שלכם. כך נוצר חיבור פרטי, והתנועה בין ה-VPC שלכם לבין נקודת הקצה של המודל לא עוברת דרך האינטרנט הציבורי.
  4. הגדרת לקוח ב-VPC: תגדירו לקוח (לדוגמה, מכונת VM של Compute Engine) בתוך ה-VPC כדי לשלוח בקשות הסקה למודל שנפרס באמצעות כתובת ה-IP הפנימית של נקודת הקצה של PSC.

בסוף התהליך, יהיה לכם מודל לדוגמה ב-Model Garden שמופעל באופן פרטי ונגיש רק מתוך רשת ה-VPC שייעדתם.

מה תלמדו

במדריך הזה נסביר איך לפרוס מודל מ-Vertex AI Model Garden ולהפוך אותו לנגיש בצורה מאובטחת מהענן הוירטואלי הפרטי (VPC) באמצעות Private Service Connect ‏ (PSC). השיטה הזו מאפשרת לאפליקציות ב-VPC (הצרכן) להתחבר באופן פרטי לנקודת הקצה של מודל Vertex AI (שירות היצרן) בלי לעבור דרך האינטרנט הציבורי.

במאמר הזה נסביר:

  1. הסבר על PSC ל-Vertex AI: איך PSC מאפשר חיבורים פרטיים ומאובטחים בין צרכנים לבעלי שירותים. ה-VPC שלכם יכול לגשת למודל Model Garden שפרסתם באמצעות כתובות IP פנימיות.
  2. פריסת מודל עם גישה פרטית: איך מגדירים נקודת קצה (endpoint) של Vertex AI למודל Model Garden כדי להשתמש ב-PSC, וכך להפוך אותה לנקודת קצה פרטית.
  3. התפקיד של Service Attachment: כשפורסים מודל לנקודת קצה פרטית של Vertex AI, ‏ Google Cloud יוצר באופן אוטומטי Service Attachment בפרויקט דייר שמנוהל על ידי Google. השירות המצורף הזה חושף את שירות ההצגה של המודל לרשתות של צרכנים.
  4. יצירת נקודת קצה של PSC ב-VPC:
  • איך מקבלים את ה-URI הייחודי של Service Attachment מפרטי נקודת הקצה של Vertex AI שהופעלה.
  • איך שומרים כתובת IP פנימית ברשת המשנה שבחרתם ב-VPC.
  • איך יוצרים ברשת ה-VPC כלל העברה שפועל כנקודת קצה (endpoint) של PSC ומטרגט את Vertex AI Service Attachment. נקודת הקצה הזו מאפשרת גישה למודל באמצעות כתובת ה-IP הפנימית השמורה.
  1. הקמת קישוריות פרטית: איך נקודת הקצה (endpoint) של PSC בענן הוירטואלי הפרטי (VPC) שלכם מתחברת לקובץ המצורף של השירות, ומגשרת בין הרשת שלכם לבין שירות Vertex AI בצורה מאובטחת.
  2. שליחת בקשות להסקת מסקנות באופן פרטי: איך לשלוח בקשות לחיזוי ממשאבים (כמו מכונות וירטואליות של Compute Engine) בתוך ה-VPC לכתובת ה-IP הפנימית של נקודת הקצה של PSC.
  3. אימות: שלבים לבדיקה ולווידוא שאפשר לשלוח בקשות הסקה מ-VPC למודל Model Garden שנפרס דרך החיבור הפרטי.

בסיום התהליך, תוכלו לארח מודלים מ-Model Garden שאפשר לגשת אליהם רק מתשתית הרשת הפרטית שלכם.

הדרישות

פרויקט ב-Google Cloud

הרשאות IAM

‫2. לפני שמתחילים

עדכון הפרויקט כדי לתמוך במדריך

במדריך הזה נעשה שימוש במשתנים כדי לעזור בהטמעה של הגדרות gcloud ב-Cloud Shell.

ב-Cloud Shell, מבצעים את הפעולות הבאות:

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

הפעלת ה-API

ב-Cloud Shell, מבצעים את הפעולות הבאות:

gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"

3. פריסת מודל

כדי לפרוס את המודל מ-Model Garden, פועלים לפי השלבים הבאים

במסוף Google Cloud, עוברים אל Model Garden, מחפשים את Gemma 3 ובוחרים אותו.

10c7ce35cfc571dc.png

לוחצים על 'אפשרויות פריסה' ובוחרים באפשרות Vertex AI.

ed9280fcc5f4c3fa.png

בחלונית Deploy on Vertex AI (פריסה ב-Vertex AI), בוחרים באפשרות Advanced (מתקדם). האזור והמפרט של המכונה מאוכלסים מראש על סמך הקיבולת הזמינה. אפשר לשנות את הערכים האלה, אבל ה-codelab מותאם לאזור us-central1.

3f7e4cefdc06488a.png

בחלונית Deploy on Vertex AI (פריסה ב-Vertex AI), מוודאים שגישת נקודת הקצה מוגדרת כ-Private Service Connect ואז בוחרים את הפרויקט.

d0f0d9bc49205fb3.png

משאירים את כל ברירות המחדל של האפשרויות האחרות, ואז בוחרים באפשרות 'פריסה' בחלק התחתון. בודקים את ההתראות כדי לראות את סטטוס הפריסה.

9bd3b10256b7b2cc.png

ב-Model Garden, בוחרים באזור us-central1 שבו זמינים מודל Gemma 3 ונקודת קצה. פריסת המודל נמשכת כ-5 דקות.

e998ee6288a8a7a.png

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

9dcc7c56dbe0e88a.png

בוחרים את נקודת הקצה ומקבלים את המזהה שלה.

6e3e2feef82fadd5.png

פותחים את Cloud Shell ומבצעים את הפעולות הבאות כדי לקבל את ה-URI של קובץ מצורף עם השירות Private Service Connect. המחרוזת הזו של ה-URI משמשת את הלקוח כשפורסים נקודת קצה של לקוח PSC.

ב-Cloud Shell, מעדכנים את מזהה נקודת הקצה ומריצים את הפקודה הבאה.

gcloud ai endpoints describe [Endpoint ID] --region=us-central1  | grep -i serviceAttachment:

לדוגמה:

user@cloudshell:$ gcloud ai endpoints describe 2124795225560842240 --region=us-central1 | grep -i serviceAttachment:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
    serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

מעתיקים את התוכן אחרי serviceAttachment למשתנה שנקרא Service_attachment. תצטרכו אותו בהמשך כשתיצרו את חיבור ה-PSC.

user@cloudshell:$ Service_attachment=projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

4. הגדרת צרכן

יצירת רשת VPC של צרכן

ב-Cloud Shell, מבצעים את הפעולות הבאות:

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

יצירת רשת משנה של מכונה וירטואלית לצרכן

ב-Cloud Shell, מבצעים את הפעולות הבאות:

gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=us-central1 --enable-private-ip-google-access

יצירת רשת משנה של נקודת קצה מסוג PSC

gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1

5. הפעלת IAP

כדי לאפשר ל-IAP להתחבר למכונות הווירטואליות, צריך ליצור כלל של חומת אש ש:

  • רלוונטי לכל מכונות ה-VM שרוצים לגשת אליהן באמצעות IAP.
  • מאפשר תעבורת נתונים נכנסת (ingress) מטווח כתובות ה-IP‏ ‎35.235.240.0/20. הטווח הזה מכיל את כל כתובות ה-IP שמשמשות את IAP להעברת TCP.

ב-Cloud Shell, יוצרים את הכלל בחומת האש של IAP.

gcloud compute firewall-rules create ssh-iap-consumer \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

6. יצירת מכונות וירטואליות לצרכנים

ב-Cloud Shell, יוצרים את מופע המכונה הווירטואלית של הצרכן, consumer-vm.

gcloud compute instances create consumer-vm \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --shielded-secure-boot \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=consumer-vm-subnet 

7. נקודות קצה של Private Service Connect

הלקוח יוצר נקודת קצה ללקוח (כלל העברה) עם כתובת IP פנימית ב-VPC שלו. נקודת הקצה הזו של PSC מכוונת לחיבור השירות של הבעלים של השירות המנוהל. לקוחות ב-VPC של הצרכן או ברשת ההיברידית יכולים לשלוח תנועה לכתובת ה-IP הפנימית הזו כדי להגיע לשירות של הספק.

שומרים כתובת IP לנקודת הקצה של הצרכן.

ב-Cloud Shell, יוצרים את כלל ההעברה.

gcloud compute addresses create psc-address \
    --project=$projectid \
    --region=us-central1 \
    --subnet=pscendpoint-subnet \
    --addresses=10.10.10.6

אימות כתובת ה-IP שהוזמנה

ב-Cloud Shell, מציגים את רשימת כתובות ה-IP השמורות.

gcloud compute addresses list 

כתובת ה-IP‏ 10.10.10.6 אמורה להיות שמורה.

edb5661bea25cd14.png

יוצרים את נקודת הקצה של הצרכן על ידי ציון ה-URI של קובץ השירות המצורף, target-service-attachment, ששמרתם בשלב הקודם, בקטע 'פריסת המודל'.

ב-Cloud Shell, מתארים את קובץ הרשת המצורף.

 gcloud compute forwarding-rules create psc-consumer-ep \
    --network=consumer-vpc \
    --address=psc-address \
    --region=us-central1 \
    --target-service-attachment=$Service_attachment \
    --project=$projectid

מוודאים שקובץ ה-Service Attachment מקבל את נקודת הקצה

gcloud compute forwarding-rules describe psc-consumer-ep \
    --project=$projectid \
    --region=us-central1 \

בתגובה, מוודאים שהסטטוס 'ACCEPTED' מופיע בשדה pscConnectionStatus.

6c66347ede9d4c7d.png

8. בדיקה מ-VM של צרכן

ב-Cloud Shell, מבצעים את השלבים הבאים כדי לספק למכונה הווירטואלית של הצרכן גישה ל-Vertex Model Garden API

התחברות ב-SSH למכונה וירטואלית לצרכן

f0984d9e60530cb2.png

צריך לבצע אימות מחדש באמצעות Application Default Credentials ולציין היקפי הרשאות של Vertex AI.

gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform 

אתם יכולים להשתמש בטבלה שבהמשך כדי ליצור פקודת CURL, ולבצע התאמות לפי הסביבה שלכם

מאפיין

ערך

פרוטוקול

HTTP

מיקום

us-central1

נקודת קצה של חיזוי אונליין

2133539641536544768

מזהה פרויקט

test4-473419

דגם

gemma-3-12b-it

כתובת IP של נקודת קצה מסוג Private Service Connect

10.10.10.6

הודעות

‪[{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}]

מעדכנים ומריצים את פקודת ה-curl על סמך פרטי הסביבות:

curl -k -v -X POST   -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json"   http://[PSC-IP]/v1/projects/[Project-ID]/locations/us-central1/endpoints/[Predictions Endpoint]/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

דוגמה:

curl -k -v -X POST   -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json"   http://10.10.10.6/v1/projects/test4-473419/locations/us-central1/endpoints/2133539641536544768/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

התוצאה הסופית – הצלחה!!!

בסוף הפלט אמורה להופיע התוצאה של החיזוי מ-Gemma 3, שמעידה שהצלחתם להגיע לנקודת הקצה של ה-API באופן פרטי דרך נקודת הקצה של PSC.

 Connection #0 to host 10.10.10.6 left intact
{"id":"chatcmpl-9e941821-65b3-44e4-876c-37d81baf62e0","object":"chat.completion","created":1759009221,"model":"google/gemma-3-12b-it","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"This is a classic trick question! They weigh the same. One pound is one pound, regardless of the material. 😊\n\n\n\n","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":106}],"usage":{"prompt_tokens":20,"total_tokens":46,"completion_tokens":26,"prompt_tokens_details":null},"prompt_logprobs":null

9. הסרת המשאבים

ב-Cloud Shell, מוחקים את רכיבי ההדרכה.

gcloud ai endpoints undeploy-model ENDPOINT_ID --deployed-model-id=DEPLOYED_MODEL_ID --region=us-central1 --quiet

gcloud ai endpoints delete $ENDPOINT_ID --project=$projectid --region=us-central1 --quiet

gcloud ai models delete $MODEL_ID --project=$projectid --region=us-central1 --quiet

gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-ep --region=us-central1 --project=$projectid --quiet

gcloud compute addresses delete psc-address --region=us-central1 --project=$projectid --quiet

gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid

gcloud compute networks delete consumer-vpc --project=$projectid --quiet

gcloud projects delete $projectid --quiet

10. מזל טוב

הגדרתם ואימתתם בהצלחה גישה פרטית ל-Gemma 3 API שמתארח ב-Vertex AI Prediction באמצעות נקודת קצה של Private Service Connect.

יצרתם את התשתית של הצרכן, כולל שמירת כתובת IP פנימית והגדרת נקודת קצה (endpoint) של Private Service Connect (כלל העברה) ב-VPC. נקודת הקצה הזו מתחברת בצורה מאובטחת לשירות Vertex AI על ידי טירגוט של קובץ השירות שמשויך למודל Gemma 3 שפרסתם. ההגדרה הזו מאפשרת לאפליקציות ב-VPC או ברשתות המחוברות לו ליצור אינטראקציה עם Gemma 3 API באופן פרטי ומאובטח, באמצעות כתובת IP פנימית, בלי שהתנועה תעבור דרך האינטרנט הציבורי.

קריאה נוספת וסרטונים

מאמרי עזרה