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

מה תפַתחו
במדריך הזה תורידו את Gemma 3 מ-Model Garden, שמתארח ב-Vertex AI Online Inference כנקודת קצה פרטית שאפשר לגשת אליה דרך Private Service Connect. ההגדרה מקצה לקצה תכלול:
- מודל Model Garden: בוחרים את Gemma 3 מ-Vertex AI Model Garden ומציבים אותו בנקודת קצה של Private Service Connect.
- Private Service Connect: תגדירו נקודת קצה (endpoint) לצרכן בענן וירטואלי פרטי (VPC) שתכלול כתובת IP פנימית ברשת שלכם.
- חיבור מאובטח ל-Vertex AI: נקודת הקצה (endpoint) של PSC תכוון ל-Service Attachment שנוצר באופן אוטומטי על ידי Vertex AI עבור פריסת המודל הפרטי שלכם. כך נוצר חיבור פרטי, והתנועה בין ה-VPC שלכם לבין נקודת הקצה של המודל לא עוברת דרך האינטרנט הציבורי.
- הגדרת לקוח ב-VPC: תגדירו לקוח (לדוגמה, מכונת VM של Compute Engine) בתוך ה-VPC כדי לשלוח בקשות הסקה למודל שנפרס באמצעות כתובת ה-IP הפנימית של נקודת הקצה של PSC.
בסוף התהליך, יהיה לכם מודל לדוגמה ב-Model Garden שמופעל באופן פרטי ונגיש רק מתוך רשת ה-VPC שייעדתם.
מה תלמדו
במדריך הזה נסביר איך לפרוס מודל מ-Vertex AI Model Garden ולהפוך אותו לנגיש בצורה מאובטחת מהענן הוירטואלי הפרטי (VPC) באמצעות Private Service Connect (PSC). השיטה הזו מאפשרת לאפליקציות ב-VPC (הצרכן) להתחבר באופן פרטי לנקודת הקצה של מודל Vertex AI (שירות היצרן) בלי לעבור דרך האינטרנט הציבורי.
במאמר הזה נסביר:
- הסבר על PSC ל-Vertex AI: איך PSC מאפשר חיבורים פרטיים ומאובטחים בין צרכנים לבעלי שירותים. ה-VPC שלכם יכול לגשת למודל Model Garden שפרסתם באמצעות כתובות IP פנימיות.
- פריסת מודל עם גישה פרטית: איך מגדירים נקודת קצה (endpoint) של Vertex AI למודל Model Garden כדי להשתמש ב-PSC, וכך להפוך אותה לנקודת קצה פרטית.
- התפקיד של Service Attachment: כשפורסים מודל לנקודת קצה פרטית של Vertex AI, Google Cloud יוצר באופן אוטומטי Service Attachment בפרויקט דייר שמנוהל על ידי Google. השירות המצורף הזה חושף את שירות ההצגה של המודל לרשתות של צרכנים.
- יצירת נקודת קצה של PSC ב-VPC:
- איך מקבלים את ה-URI הייחודי של Service Attachment מפרטי נקודת הקצה של Vertex AI שהופעלה.
- איך שומרים כתובת IP פנימית ברשת המשנה שבחרתם ב-VPC.
- איך יוצרים ברשת ה-VPC כלל העברה שפועל כנקודת קצה (endpoint) של PSC ומטרגט את Vertex AI Service Attachment. נקודת הקצה הזו מאפשרת גישה למודל באמצעות כתובת ה-IP הפנימית השמורה.
- הקמת קישוריות פרטית: איך נקודת הקצה (endpoint) של PSC בענן הוירטואלי הפרטי (VPC) שלכם מתחברת לקובץ המצורף של השירות, ומגשרת בין הרשת שלכם לבין שירות Vertex AI בצורה מאובטחת.
- שליחת בקשות להסקת מסקנות באופן פרטי: איך לשלוח בקשות לחיזוי ממשאבים (כמו מכונות וירטואליות של Compute Engine) בתוך ה-VPC לכתובת ה-IP הפנימית של נקודת הקצה של PSC.
- אימות: שלבים לבדיקה ולווידוא שאפשר לשלוח בקשות הסקה מ-VPC למודל Model Garden שנפרס דרך החיבור הפרטי.
בסיום התהליך, תוכלו לארח מודלים מ-Model Garden שאפשר לגשת אליהם רק מתשתית הרשת הפרטית שלכם.
הדרישות
פרויקט ב-Google Cloud
הרשאות IAM
- אדמין ב-AI Platform (roles/ml.Admin)
- אדמין של רשת מחשוב (roles/compute.networkAdmin)
- אדמין מכונות של Compute (roles/compute.instanceAdmin)
- אדמין לענייני אבטחה ב-Compute (roles/compute.securityAdmin)
- אדמין DNS (roles/dns.admin)
- משתמש מנהרה באבטחת IAP (roles/iap.tunnelResourceAccessor)
- Logging Admin (roles/logging.admin)
- אדמין של Notebooks (roles/notebooks.admin)
- אדמין IAM בפרויקט (roles/resourcemanager.projectIamAdmin)
- אדמין בחשבון שירות (roles/iam.serviceAccountAdmin)
- אדמין של שימוש בשירות (roles/serviceusage.serviceUsageAdmin)
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 ובוחרים אותו.

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

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

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

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

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

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

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

פותחים את 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 אמורה להיות שמורה.

יוצרים את נקודת הקצה של הצרכן על ידי ציון ה-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.

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

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