พร็อกซีที่ชัดเจนของ PSC สำหรับ Agent Engine

1. บทนำ

อินเทอร์เฟซ Private Service Connect เป็นทรัพยากรที่ช่วยให้เครือข่าย Virtual Private Cloud (VPC) ของผู้ผลิตเริ่มการเชื่อมต่อกับปลายทางต่างๆ ในเครือข่าย VPC ของผู้ใช้บริการได้ เครือข่ายผู้ผลิตและผู้บริโภคสามารถอยู่ในโปรเจ็กต์และองค์กรที่แตกต่างกันได้

หากไฟล์แนบเครือข่ายยอมรับการเชื่อมต่อจากอินเทอร์เฟซ Private Service Connect ทาง Google Cloud จะจัดสรรที่อยู่ IP จากซับเน็ตของผู้ใช้ที่ไฟล์แนบเครือข่ายระบุไว้ให้กับอินเทอร์เฟซ เครือข่ายผู้บริโภคและเครือข่ายผู้ผลิตเชื่อมต่อกันและสื่อสารกันได้โดยใช้ที่อยู่ IP ภายใน

การเชื่อมต่อระหว่างไฟล์แนบเครือข่ายกับอินเทอร์เฟซ Private Service Connect จะคล้ายกับการเชื่อมต่อระหว่างปลายทาง Private Service Connect กับไฟล์แนบบริการ แต่มีความแตกต่างที่สำคัญ 2 ประการดังนี้

  • ไฟล์แนบเครือข่ายช่วยให้เครือข่ายผู้ผลิตเริ่มการเชื่อมต่อกับเครือข่ายผู้บริโภค (ขาออกของบริการที่มีการจัดการ) ในขณะที่ปลายทางช่วยให้เครือข่ายผู้บริโภคเริ่มการเชื่อมต่อกับเครือข่ายผู้ผลิต (ขาเข้าของบริการที่มีการจัดการ)
  • การเชื่อมต่ออินเทอร์เฟซ Private Service Connect เป็นแบบทรานซิทีฟ ซึ่งหมายความว่าเครือข่ายผู้ผลิตจะสื่อสารกับเครือข่ายอื่นๆ ที่เชื่อมต่อกับเครือข่ายผู้บริโภคได้

ข้อควรพิจารณาเกี่ยวกับความสามารถในการเข้าถึงอินเทอร์เฟซ PSC ของ Vertex AI

  • PSC-Interface สามารถกำหนดเส้นทางการรับส่งข้อมูลไปยังปลายทาง VPC หรือปลายทางในองค์กรภายในบล็อกที่อยู่ RFC1918
  • การกำหนดเป้าหมาย PSC-Interface ที่ไม่ใช่บล็อกที่อยู่ rfc-1918 ต้องมีการติดตั้งใช้งานพร็อกซีอย่างชัดเจนใน VPC ของผู้บริโภคที่มีที่อยู่ rfc-1918 ในการติดตั้งใช้งาน Vertex AI คุณต้องกำหนดพร็อกซีพร้อมกับ FQDN ของปลายทางเป้าหมาย
  • เมื่อกำหนดค่าการติดตั้งใช้งานที่มีเฉพาะอินเทอร์เฟซ PSC การติดตั้งใช้งานจะยังคงมีการเข้าถึงอินเทอร์เน็ตเริ่มต้น การรับส่งข้อมูลขาออกนี้จะออกจากเครือข่ายผู้เช่าที่ปลอดภัยซึ่ง Google จัดการโดยตรง

ข้อควรพิจารณาเกี่ยวกับ VPC-SC ของอินเทอร์เฟซ PSC ของ Vertex AI

  • เมื่อโปรเจ็กต์เป็นส่วนหนึ่งของขอบเขตการควบคุมบริการ VPC ขอบเขตจะบล็อกการเข้าถึงอินเทอร์เน็ตเริ่มต้นของผู้เช่าที่ Google จัดการเพื่อป้องกันการกรองข้อมูล
  • หากต้องการอนุญาตให้การติดตั้งใช้งานเข้าถึงอินเทอร์เน็ตสาธารณะในสถานการณ์นี้ คุณต้องกำหนดค่าเส้นทางการออกที่ปลอดภัยอย่างชัดเจนซึ่งกำหนดเส้นทางการรับส่งข้อมูลผ่าน VPC
  • วิธีที่แนะนำในการดำเนินการนี้คือการตั้งค่าพร็อกซีเซิร์ฟเวอร์ภายในขอบเขต VPC ด้วยที่อยู่ RFC1918 และสร้างเกตเวย์ Cloud NAT เพื่ออนุญาตให้ VM พร็อกซีเข้าถึงอินเทอร์เน็ต

ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลต่อไปนี้

ติดตั้งใช้งาน Agent | Generative AI ใน Vertex AI | Google Cloud

ตั้งค่าอินเทอร์เฟซ Private Service Connect สำหรับทรัพยากร Vertex AI | Google Cloud

สิ่งที่คุณจะสร้าง

ในบทแนะนำนี้ คุณจะได้สร้าง Agent Engine ที่ครอบคลุมซึ่งติดตั้งใช้งานด้วยอินเทอร์เฟซ Private Service Connect (PSC) เพื่ออนุญาตการเชื่อมต่อกับเว็บไซต์สาธารณะ (https://api.frankfurter.app/) ผ่าน VM พร็อกซีที่ติดตั้งใช้งานใน VPC ของผู้บริโภคด้วยที่อยู่ RFC1918 การติดตั้งใช้งานตัวอย่างใช้ได้ในโปรเจ็กต์ที่เปิดใช้ VPC-SC หรือสำหรับผู้ดูแลระบบที่ต้องการการรับส่งข้อมูลขาออกจากอินเทอร์เน็ตผ่านเครือข่ายของลูกค้าแทนที่จะเป็น VPC ของผู้เช่า

รูปที่ 1

f42f2db921f6d5af.png

คุณจะสร้าง psc-network-attachment รายการเดียวใน VPC ของผู้บริโภคโดยใช้ประโยชน์จากการเพียร์ DNS เพื่อแก้ปัญหา proxy-vm ของเครือข่ายผู้บริโภคในโปรเจ็กต์ผู้เช่าที่โฮสต์ Agent Engine ซึ่งจะส่งผลให้เกิดกรณีการใช้งานต่อไปนี้

ติดตั้งใช้งาน Agent Engine และกำหนดค่า VM พร็อกซีให้ทำหน้าที่เป็นพร็อกซีที่ชัดเจน ซึ่งจะช่วยให้เข้าถึง URL สาธารณะ https://api.frankfurter.app ได้

สิ่งที่คุณจะได้เรียนรู้

  • วิธีสร้างการเชื่อมต่อเครือข่าย
  • วิธีที่โปรดิวเซอร์ใช้การเชื่อมต่อเครือข่ายเพื่อสร้างอินเทอร์เฟซ PSC
  • วิธีสร้างการสื่อสารจากผู้ผลิตไปยังผู้บริโภคโดยใช้การ Peering ของ DNS
  • วิธีติดตั้งใช้งานและใช้ VM พร็อกซีสำหรับการรับส่งข้อมูลอินเทอร์เน็ตขาออก

สิ่งที่คุณต้องมี

โปรเจ็กต์ Google Cloud

สิทธิ์ IAM

2. ก่อนเริ่มต้น

อัปเดตโปรเจ็กต์เพื่อรองรับบทแนะนำ

บทแนะนำนี้ใช้ $variables เพื่อช่วยในการติดตั้งใช้งานการกำหนดค่า gcloud ใน Cloud Shell

ใน Cloud Shell ให้ทำดังนี้

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

การเปิดใช้ API

ใน Cloud Shell ให้ทำดังนี้

gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "dns.googleapis.com"
gcloud services enable "notebooks.googleapis.com"
gcloud services enable "storage.googleapis.com"
gcloud services enable "iap.googleapis.com"

ยืนยันว่าเปิดใช้ API สำเร็จแล้ว

gcloud services list --enabled

3. การตั้งค่าสำหรับผู้บริโภค

สร้าง VPC ของผู้ใช้

VPC นี้อยู่ในโปรเจ็กต์ของลูกค้า ระบบจะสร้างทรัพยากรต่อไปนี้ใน VPC นี้

  • เครือข่ายย่อยสำหรับผู้บริโภค
  • ซับเน็ตการแนบเครือข่าย
  • Cloud Router (ต้องระบุสำหรับ Cloud NAT)
  • Cloud NAT

ใน Cloud Shell ให้ทำดังนี้

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

สร้างซับเน็ตของผู้บริโภค

สร้างซับเน็ตสำหรับ VM พร็อกซีภายใน Cloud Shell โดยทำดังนี้

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

สร้างซับเน็ตไฟล์แนบเครือข่าย Private Service Connect

สร้างซับเน็ตสำหรับการเชื่อมต่อเครือข่าย PSC ภายใน Cloud Shell โดยทำดังนี้

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

การกำหนดค่า Cloud Router และ NAT

ในบทแนะนำนี้ Cloud NAT ใช้เพื่อให้สิทธิ์เข้าถึงอินเทอร์เน็ตสำหรับ VM พร็อกซีที่ไม่มีที่อยู่ IP สาธารณะ Cloud NAT ช่วยให้ VM ที่มีเฉพาะที่อยู่ IP ส่วนตัวเชื่อมต่อกับอินเทอร์เน็ตได้ ทำให้ VM สามารถทำงานต่างๆ เช่น ติดตั้งแพ็กเกจซอฟต์แวร์

สร้าง Cloud Router ภายใน Cloud Shell

gcloud compute routers create cloud-router-for-nat --network consumer-vpc --region us-central1

สร้างเกตเวย์ NAT โดยเปิดใช้การบันทึกใน Cloud Shell เราจะใช้การบันทึกเพื่อตรวจสอบสิทธิ์การเข้าถึง IP สาธารณะสำหรับ Frankfurter API (https://api.frankfurter.app/)

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-for-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1 --enable-logging --log-filter=ALL

4. เปิดใช้ 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

5. สร้างอินสแตนซ์ VM สำหรับผู้บริโภค

สร้างอินสแตนซ์ VM ของผู้ใช้ proxy-vm ภายใน Cloud Shell ซึ่งจะทำหน้าที่เป็นพร็อกซีที่ชัดเจนสำหรับ Agent Engine เราจะใช้ tinyproxy เป็นแอปพลิเคชันสำหรับพร็อกซีการรับส่งข้อมูล HTTP

gcloud compute instances create proxy-vm \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \