1. บทนำ
ใช้ประโยชน์จาก Private Service Connect เพื่อสร้างการเข้าถึงแบบส่วนตัวที่ปลอดภัยสำหรับโมเดลที่ใช้งานจาก Vertex AI Model Garden วิธีนี้ช่วยให้คุณสามารถติดตั้งใช้งานโมเดลไปยังปลายทาง Vertex AI ส่วนตัวที่เข้าถึงได้ภายใน Virtual Private Cloud (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: คุณจะกำหนดค่าอุปกรณ์ปลายทางของผู้ใช้ใน Virtual Private Cloud (VPC) ซึ่งประกอบด้วยที่อยู่ IP ภายในในเครือข่ายของคุณเอง
- การเชื่อมต่อที่ปลอดภัยกับ Vertex AI: ปลายทาง PSC จะกำหนดเป้าหมายไปยังการเชื่อมต่อบริการที่ Vertex AI สร้างขึ้นโดยอัตโนมัติสำหรับการติดตั้งใช้งานโมเดลส่วนตัว ซึ่งจะสร้างการเชื่อมต่อส่วนตัวเพื่อให้มั่นใจว่าการรับส่งข้อมูลระหว่าง VPC กับปลายทางการแสดงโมเดลจะไม่ผ่านอินเทอร์เน็ตสาธารณะ
- การกำหนดค่าไคลเอ็นต์ภายใน VPC: คุณจะตั้งค่าไคลเอ็นต์ (เช่น VM ของ Compute Engine) ภายใน VPC เพื่อส่งคำขอการอนุมานไปยังโมเดลที่ใช้งานโดยใช้ที่อยู่ IP ภายในของปลายทาง PSC
เมื่อสิ้นสุดแล้ว คุณจะมีตัวอย่างที่ใช้งานได้ของโมเดลใน Model Garden ที่ให้บริการแบบส่วนตัว ซึ่งเข้าถึงได้จากภายในเครือข่าย VPC ที่กำหนดเท่านั้น
สิ่งที่คุณจะได้เรียนรู้
ในบทแนะนำนี้ คุณจะได้เรียนรู้วิธีการติดตั้งใช้งานโมเดลจาก Vertex AI Model Garden และทำให้เข้าถึงได้อย่างปลอดภัยจาก Virtual Private Cloud (VPC) โดยใช้ Private Service Connect (PSC) วิธีนี้ช่วยให้แอปพลิเคชันภายใน VPC (ผู้ใช้) เชื่อมต่อกับปลายทางโมเดล Vertex AI (บริการผู้ผลิต) แบบส่วนตัวได้โดยไม่ต้องผ่านอินเทอร์เน็ตสาธารณะ
โดยเฉพาะอย่างยิ่ง คุณจะได้เรียนรู้สิ่งต่อไปนี้
- ทำความเข้าใจ PSC สำหรับ Vertex AI: วิธีที่ PSC ช่วยให้การเชื่อมต่อจากผู้บริโภคไปยังผู้ผลิตเป็นแบบส่วนตัวและปลอดภัย VPC สามารถเข้าถึงโมเดล Model Garden ที่ติดตั้งใช้งานได้โดยใช้ที่อยู่ IP ภายใน
- การทำให้โมเดลใช้งานได้ด้วยการเข้าถึงแบบส่วนตัว: วิธีการกำหนดค่าปลายทาง Vertex AI สำหรับโมเดล Model Garden เพื่อใช้ PSC ซึ่งจะทำให้เป็นปลายทางส่วนตัว
- บทบาทของ Service Attachment: เมื่อคุณติดตั้งใช้งานโมเดลไปยัง Vertex AI Endpoint ส่วนตัว Google Cloud จะสร้าง Service Attachment ในโปรเจ็กต์ผู้เช่าที่ Google จัดการโดยอัตโนมัติ Service Attachment นี้จะแสดงบริการโมเดลต่อเครือข่ายผู้บริโภค
- การสร้างปลายทาง PSC ใน VPC
- วิธีรับ URI ของการเชื่อมต่อบริการที่ไม่ซ้ำจากรายละเอียดของ Vertex AI Endpoint ที่คุณติดตั้งใช้งาน
- วิธีจองที่อยู่ IP ภายในภายในซับเน็ตที่คุณเลือกใน VPC
- วิธีสร้างกฎการส่งต่อใน VPC ที่ทำหน้าที่เป็นปลายทาง PSC โดยกำหนดเป้าหมายเป็นไฟล์แนบบริการ Vertex AI โดยปลายทางนี้จะทำให้เข้าถึงโมเดลได้ผ่าน IP ภายในที่สงวนไว้
- การสร้างการเชื่อมต่อส่วนตัว: วิธีที่ปลายทาง PSC ใน VPC เชื่อมต่อกับ Service Attachment ซึ่งเชื่อมต่อเครือข่ายของคุณกับบริการ Vertex AI อย่างปลอดภัย
- การส่งคำขออนุมานแบบส่วนตัว: วิธีส่งคำขอการคาดการณ์จากทรัพยากร (เช่น VM ของ Compute Engine) ภายใน VPC ไปยังที่อยู่ IP ภายในของปลายทาง PSC
- การตรวจสอบ: ขั้นตอนในการทดสอบและยืนยันว่าคุณส่งคำขออนุมานจาก VPC ไปยังโมเดล Model Garden ที่ติดตั้งใช้งานผ่านการเชื่อมต่อส่วนตัวได้สำเร็จ
เมื่อดำเนินการนี้เสร็จแล้ว คุณจะโฮสต์โมเดลจาก Model Garden ที่เข้าถึงได้จากโครงสร้างพื้นฐานเครือข่ายส่วนตัวเท่านั้น
สิ่งที่คุณต้องมี
โปรเจ็กต์ Google Cloud
สิทธิ์ IAM
- ผู้ดูแลระบบ AI Platform (roles/ml.Admin)
- ผู้ดูแลระบบเครือข่าย Compute (roles/compute.networkAdmin)
- ผู้ดูแลระบบอินสแตนซ์ Compute (roles/compute.instanceAdmin)
- ผู้ดูแลระบบความปลอดภัยของ Compute (roles/compute.securityAdmin)
- ผู้ดูแลระบบ DNS (roles/dns.admin)
- ผู้ใช้อุโมงค์ข้อมูลที่รักษาความปลอดภัยด้วย IAP (roles/iap.tunnelResourceAccessor)
- ผู้ดูแลระบบการบันทึก (roles/logging.admin)
- ผู้ดูแลระบบ Notebooks (roles/notebooks.admin)
- ผู้ดูแลระบบ IAM ของโปรเจ็กต์ (roles/resourcemanager.projectIamAdmin)
- ผู้ดูแลระบบบัญชีบริการ (roles/iam.serviceAccountAdmin)
- ผู้ดูแลระบบการใช้บริการ (roles/serviceusage.serviceUsageAdmin)
2. ก่อนเริ่มต้น
อัปเดตโปรเจ็กต์เพื่อให้รองรับบทแนะนำ
บทแนะนำนี้ใช้ $variables เพื่อช่วยในการติดตั้งใช้งานการกำหนดค่า 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 Console ให้ไปที่ Model Garden แล้วค้นหาและเลือก Gemma 3

คลิกตัวเลือกการติดตั้งใช้งาน แล้วเลือก Vertex AI

ในแผง "Deploy on Vertex AI" ให้เลือก "ขั้นสูง" ระบบจะเลือกภูมิภาคและข้อกำหนดของเครื่องที่ป้อนข้อมูลไว้ล่วงหน้าตามความจุที่พร้อมใช้งาน คุณเปลี่ยนค่าเหล่านี้ได้ แต่ Codelab ออกแบบมาสำหรับ us-central1

ในบานหน้าต่าง "Deploy on 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
สร้างซับเน็ต VM ของผู้ใช้
ใน 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 ให้สร้างกฎไฟร์วอลล์ที่มีลักษณะดังนี้
- มีผลกับอินสแตนซ์ VM ทั้งหมดที่คุณต้องการให้เข้าถึงได้โดยใช้ IAP
- อนุญาตการรับส่งข้อมูลขาเข้าจากช่วง IP 35.235.240.0/20 ช่วงนี้มีที่อยู่ IP ทั้งหมดที่ IAP ใช้สำหรับการส่งต่อ TCP
สร้างกฎไฟร์วอลล์ IAP ภายใน Cloud Shell
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. สร้างอินสแตนซ์ VM สำหรับผู้บริโภค
สร้างอินสแตนซ์ VM ของผู้ใช้ชื่อ consumer-vm ใน Cloud Shell
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 แล้ว
แสดงรายการที่อยู่ IP ที่สงวนไว้ใน Cloud Shell
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
ตรวจสอบว่าการเชื่อมต่อบริการยอมรับปลายทาง
gcloud compute forwarding-rules describe psc-consumer-ep \
--project=$projectid \
--region=us-central1 \
ในการตอบกลับ ให้ตรวจสอบว่าสถานะ "ACCEPTED" ปรากฏในฟิลด์ pscConnectionStatus

8. ทดสอบจาก VM ของผู้บริโภค
ใน Cloud Shell ให้ทำตามขั้นตอนต่อไปนี้เพื่อมอบสิทธิ์เข้าถึง VM ของผู้บริโภคเพื่อเข้าถึง Vertex Model Garden API
SSH เข้าสู่ VM ของผู้บริโภค

ตรวจสอบสิทธิ์อีกครั้งด้วยข้อมูลรับรองเริ่มต้นของแอปพลิเคชันและระบุขอบเขต 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": "อะไรหนักกว่ากัน ขนนก 1 ปอนด์หรือหิน 1 ปอนด์"}] |
อัปเดตและเรียกใช้คำสั่ง 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 โดยใช้ปลายทาง Private Service Connect เรียบร้อยแล้ว
คุณสร้างโครงสร้างพื้นฐานของผู้บริโภค รวมถึงการจองที่อยู่ IP ภายในและการกำหนดค่าปลายทาง Private Service Connect (กฎการส่งต่อ) ภายใน VPC ปลายทางนี้เชื่อมต่อกับบริการ Vertex AI อย่างปลอดภัยโดยกำหนดเป้าหมายไปที่การเชื่อมต่อบริการที่เชื่อมโยงกับโมเดล Gemma 3 ที่คุณใช้งาน การตั้งค่านี้ช่วยให้แอปพลิเคชันภายใน VPC หรือเครือข่ายที่เชื่อมต่อโต้ตอบกับ Gemma 3 API แบบส่วนตัวและปลอดภัยได้โดยใช้ที่อยู่ IP ภายใน โดยไม่ต้องให้การรับส่งข้อมูลผ่านอินเทอร์เน็ตสาธารณะ