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 เป็นปลายทางส่วนตัวที่เข้าถึงได้ผ่าน 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 จะกำหนดเป้าหมายไปยัง Service Attachment ที่ 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 ส่วนตัว Google Cloud จะสร้าง Service Attachment ในโปรเจ็กต์ผู้เช่าที่ Google จัดการโดยอัตโนมัติ การเชื่อมต่อบริการนี้จะแสดงบริการการแสดงโมเดลต่อเครือข่ายของผู้บริโภค
- การสร้างปลายทาง PSC ใน VPC
- วิธีรับ URI ของการเชื่อมต่อบริการที่ไม่ซ้ำจากรายละเอียดของปลายทาง Vertex AI ที่ทำให้ใช้งานได้
- วิธีจองที่อยู่ IP ภายในภายในซับเน็ตที่เลือกใน VPC
- วิธีสร้างกฎการส่งต่อใน VPC ที่ทำหน้าที่เป็นอุปกรณ์ปลายทาง PSC โดยกำหนดเป้าหมายเป็นไฟล์แนบบริการ Vertex AI โดยปลายทางนี้จะทำให้เข้าถึงโมเดลได้ผ่าน IP ภายในที่สงวนไว้
- การสร้างการเชื่อมต่อส่วนตัว: วิธีที่อุปกรณ์ปลายทาง PSC ใน VPC เชื่อมต่อกับไฟล์แนบบริการ ซึ่งเชื่อมต่อเครือข่ายของคุณกับบริการ 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 ให้ไปที่ Model Garden แล้วค้นหาและเลือก Gemma 3

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

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

ในบานหน้าต่าง "ติดตั้งใช้งานใน 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
ใช้ตารางด้านล่างเพื่อสร้างคำสั่ง CURLl และปรับตามสภาพแวดล้อมของคุณ
แอตทริบิวต์ | ค่า |
โปรโตคอล | 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 ภายใน โดยไม่ต้องกำหนดให้การรับส่งข้อมูลผ่านอินเทอร์เน็ตสาธารณะ