Menggunakan Private Service Connect untuk mengakses AI Generatif di Vertex AI dari infrastruktur lokal


Host lokal dapat menjangkau AI Generatif di Vertex AI baik melalui internet publik maupun secara pribadi melalui arsitektur jaringan hybrid yang menggunakan Private Service Connect (PSC) melalui Cloud VPN atau Cloud Interconnect. Kedua opsi tersebut menawarkan enkripsi SSL/TLS. Namun, opsi pribadi menawarkan performa yang jauh lebih baik, sehingga direkomendasikan untuk aplikasi penting.

Dalam tutorial ini, Anda menggunakan VPN Ketersediaan Tinggi (HA VPN) untuk mengakses AI Generatif di Vertex AI secara publik, melalui Cloud NAT; dan secara pribadi, antara dua jaringan Virtual Private Cloud (VPC) yang dapat berfungsi sebagai dasar untuk konektivitas pribadi multi-cloud dan lokal.

Tutorial ini ditujukan bagi administrator jaringan perusahaan, ilmuwan data, dan peneliti yang sudah memahami Vertex AI, VPC, Konsol Google Cloud, dan Cloud Shell. Pemahaman tentang AI Generatif di Vertex AI sangat membantu, tetapi tidak wajib.

Diagram arsitektur penggunaan Private Service Connect untuk mengakses AI Generatif di Vertex AI.

Tujuan

  • Buat dua jaringan VPC, seperti yang ditunjukkan dalam diagram sebelumnya:
    • Satu (onprem-vpc) mewakili jaringan lokal.
    • Satunya lagi (vertex-networking-vpc) digunakan untuk mengakses REST API untuk AI Generatif di Vertex AI.
  • Deploy gateway VPN dengan ketersediaan tinggi (HA), tunnel Cloud VPN, dan Cloud Router untuk menghubungkan vertex-networking-vpc dan onprem-vpc.
  • Buat endpoint Private Service Connect (PSC) untuk meneruskan permintaan ke GenAI REST API.
  • Konfigurasi iklan rute kustom Cloud Router di vertex-networking-vpc untuk mengumumkan rute untuk endpoint Private Service Connect ke onprem-vpc.
  • Buat instance VM Compute Engine di onprem-vpc untuk mewakili aplikasi klien yang mengirim permintaan ke GenAI REST API melalui VPN dengan ketersediaan tinggi (HA).

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.

Sebelum memulai

  1. Di konsol Google Cloud, buka halaman Pemilih project.

    Buka pemilih project

  2. Pilih atau buat project Google Cloud.

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Jika Anda bukan pemilik project, pemilik project harus memberi Anda peran IAM roles/resourcemanager.projectIamAdmin . Anda harus memiliki peran ini agar dapat memberikan peran dan izin IAM ke Anda sendiri dan akun layanan.
  5. Buka Cloud Shell untuk menjalankan perintah yang tercantum dalam tutorial ini. Cloud Shell adalah lingkungan shell interaktif untuk Google Cloud yang dapat Anda gunakan untuk mengelola project dan resource dari browser web.
  6. Di Cloud Shell, tetapkan project saat ini ke project ID Google Cloud Anda dan simpan project ID yang sama ke dalam variabel shell projectid:
      projectid="PROJECT_ID"
      gcloud config set project ${projectid}
    Ganti PROJECT_ID dengan project ID Anda. Jika perlu, Anda dapat menemukan project ID di konsol Google Cloud. Untuk mengetahui informasi selengkapnya, baca Menemukan project ID.
  7. Berikan peran ke Akun Google Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut: roles/compute.instanceAdmin.v1, roles/compute.networkAdmin, roles/compute.securityAdmin, roles/dns.admin, roles/iap.tunnelResourceAccessor, roles/iam.serviceAccountCreator, roles/iam.serviceAccountUser, roles/iam.serviceAccountDeleter, roles/resourcemanager.projectIamAdmin, roles/service/servicedirectory.editor quota.

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • Ganti PROJECT_ID dengan project ID Anda.
    • Ganti EMAIL_ADDRESS dengan alamat email Anda.
    • Ganti ROLE dengan setiap peran individual.
  8. Aktifkan API DNS, IAM, Compute Engine, Penggunaan Layanan, dan Vertex AI:

    gcloud services enable dns.googleapis.com iam.googleapis.com compute.googleapis.com serviceusage.googleapis.com aiplatform.googleapis.com

Buat dua jaringan VPC: vertex-networking-vpc dan onprem-vpc

Di bagian ini, Anda akan membuat dua jaringan VPC: satu jaringan utama untuk mengakses API AI generatif Vertex AI (juga dikenal sebagai GenAI) API, dan satunya lagi untuk menyimulasikan jaringan lokal.

Membuat jaringan VPC

  1. Buat jaringan VPC untuk mengakses GenAI API (vertex-networking-vpc):

    gcloud compute networks create vertex-networking-vpc --subnet-mode custom
    
  2. Buat jaringan VPC untuk menyimulasikan jaringan lokal (onprem-vpc):

    gcloud compute networks create onprem-vpc --subnet-mode custom
    
  3. Di jaringan onprem-vpc, buat subnet bernama onprem-vpc-subnet1, dengan rentang IPv4 utama 172.16.10.0/24:

    gcloud compute networks subnets create onprem-vpc-subnet1 \
       --range 172.16.10.0/24 \
       --network onprem-vpc \
       --region us-central1
    
  4. Di Konsol Google Cloud, buka tab Networks in current project di halaman VPC network.

    Buka jaringan VPC

  5. Dalam daftar jaringan VPC, pastikan kedua jaringan telah dibuat: vertex-networking-vpc dan onprem-vpc.

  6. Di halaman VPC network, klik tab Subnets in current project.

  7. Di daftar subnet VPC, pastikan subnet onprem-vpc-subnet1 telah dibuat di jaringan onprem-vpc.

Mengonfigurasi konektivitas hybrid

Di bagian ini, Anda akan membuat dua gateway VPN dengan ketersediaan tinggi (HA) yang terhubung satu sama lain. Salah satunya berada di jaringan VPC vertex-networking-vpc. Satunya lagi berada di jaringan VPC onprem-vpc. Setiap gateway berisi Cloud Router dan sepasang tunnel VPN.

Membuat gateway VPN dengan ketersediaan tinggi (HA)

  1. Di Cloud Shell, buat gateway VPN dengan ketersediaan tinggi (HA) untuk jaringan VPC vertex-networking-vpc:

    gcloud compute vpn-gateways create vertex-networking-vpn-gw1 \
       --network vertex-networking-vpc \
       --region us-central1
    
  2. Buat gateway VPN dengan ketersediaan tinggi (HA) untuk jaringan VPC onprem-vpc:

    gcloud compute vpn-gateways create onprem-vpn-gw1 \
       --network onprem-vpc \
       --region us-central1
    
  3. Di konsol Google Cloud, buka tab Cloud VPN Gateways di halaman VPN.

    Buka VPN

  4. Dalam daftar gateway VPN, pastikan dua gateway (vertex-networking-vpn-gw1 dan onprem-vpn-gw1) telah dibuat dan masing-masing memiliki dua alamat IP.

Membuat Cloud Router

  1. Di Cloud Shell, buat Cloud Router untuk jaringan VPC vertex-networking-vpc:

    gcloud compute routers create vertex-networking-vpc-router1 \
       --region us-central1\
       --network vertex-networking-vpc \
       --asn 65001
    
  2. Buat Cloud Router untuk jaringan VPC onprem-vpc:

    gcloud compute routers create onprem-vpc-router1 \
       --region us-central1\
       --network onprem-vpc\
       --asn 65002
    

Tambahkan gateway Cloud NAT ke jaringan VPC onprem-vpc

Pada langkah ini, Anda akan menambahkan gateway Cloud NAT ke Cloud Router untuk jaringan VPC onprem-vpc. Gateway Cloud NAT menyediakan konektivitas keluar untuk instance virtual machine (VM) Compute Engine yang tidak memiliki alamat IP eksternal.

  1. Di Cloud Shell, tambahkan gateway Cloud NAT ke Cloud Router onprem-vpc-router1:

    gcloud compute routers nats create us-central-cloudnat-onprem \
       --router=onprem-vpc-router1 \
       --auto-allocate-nat-external-ips \
       --nat-all-subnet-ip-ranges \
       --region us-central1
    
  2. Di konsol Google Cloud, buka halaman Cloud Router.

    Buka Cloud Router

  3. Dalam daftar Cloud Router, pastikan vertex-networking-vpc-router1 dan onprem-vpc-router1 telah dibuat. Anda mungkin perlu memuat ulang tab browser Konsol Google Cloud untuk melihat nilai baru.

  4. Dalam daftar Cloud Router, klik onprem-vpc-router1.

  5. Di halaman Router details, pastikan us-central-cloudnat-onprem gateway Cloud NAT telah dibuat.

Buat tunnel VPN

  1. Di jaringan vertex-networking-vpc, buat tunnel VPN bernama vertex-networking-vpc-tunnel0:

    gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel0 \
       --peer-gcp-gateway onprem-vpn-gw1 \
       --region us-central1 \
       --ike-version 2 \
       --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
       --router vertex-networking-vpc-router1 \
       --vpn-gateway vertex-networking-vpn-gw1 \
       --interface 0
    
  2. Di jaringan vertex-networking-vpc, buat tunnel VPN bernama vertex-networking-vpc-tunnel1:

    gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel1 \
       --peer-gcp-gateway onprem-vpn-gw1 \
       --region us-central1 \
       --ike-version 2 \
       --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
       --router vertex-networking-vpc-router1 \
       --vpn-gateway vertex-networking-vpn-gw1 \
       --interface 1
    
  3. Di jaringan onprem-vpc, buat tunnel VPN bernama onprem-vpc-tunnel0:

    gcloud compute vpn-tunnels create onprem-vpc-tunnel0 \
       --peer-gcp-gateway vertex-networking-vpn-gw1 \
       --region us-central1\
       --ike-version 2 \
       --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
       --router onprem-vpc-router1 \
       --vpn-gateway onprem-vpn-gw1 \
       --interface 0
    
  4. Di jaringan onprem-vpc, buat tunnel VPN bernama onprem-vpc-tunnel1:

    gcloud compute vpn-tunnels create onprem-vpc-tunnel1 \
       --peer-gcp-gateway vertex-networking-vpn-gw1 \
       --region us-central1\
       --ike-version 2 \
       --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
       --router onprem-vpc-router1 \
       --vpn-gateway onprem-vpn-gw1 \
       --interface 1
    
  5. Di Konsol Google Cloud, buka halaman VPN.

    Buka VPN

  6. Dalam daftar tunnel VPN, pastikan keempat tunnel VPN telah dibuat.

Membuat sesi BGP

Cloud Router menggunakan Border Gateway Protocol (BGP) untuk menukar rute antara jaringan VPC Anda (dalam hal ini, vertex-networking-vpc) dan jaringan lokal Anda (diwakili oleh onprem-vpc). Di Cloud Router, Anda mengonfigurasi antarmuka dan peer BGP untuk router lokal Anda. Antarmuka dan konfigurasi peer BGP secara bersama-sama membentuk sesi BGP. Di bagian ini, Anda akan membuat dua sesi BGP untuk vertex-networking-vpc dan dua untuk onprem-vpc.

Setelah Anda mengonfigurasi antarmuka dan peer BGP antara router, keduanya akan otomatis mulai bertukar rute.

Menetapkan sesi BGP untuk vertex-networking-vpc

  1. Di Cloud Shell, pada jaringan vertex-networking-vpc, buat antarmuka BII untuk vertex-networking-vpc-tunnel0:

    gcloud compute routers add-interface vertex-networking-vpc-router1 \
       --interface-name if-tunnel0-to-onprem \
       --ip-address 169.254.0.1 \
       --mask-length 30 \
       --vpn-tunnel vertex-networking-vpc-tunnel0 \
       --region us-central1
    
  2. Pada jaringan vertex-networking-vpc, buat peer BGP untuk bgp-onprem-tunnel0:

    gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \
       --peer-name bgp-onprem-tunnel0 \
       --interface if-tunnel0-to-onprem \
       --peer-ip-address 169.254.0.2 \
       --peer-asn 65002 \
       --region us-central1
    
  3. Di jaringan vertex-networking-vpc, buat antarmuka BGP untuk vertex-networking-vpc-tunnel1:

    gcloud compute routers add-interface vertex-networking-vpc-router1 \
       --interface-name if-tunnel1-to-onprem \
       --ip-address 169.254.1.1 \
       --mask-length 30 \
       --vpn-tunnel vertex-networking-vpc-tunnel1 \
       --region us-central1
    
  4. Pada jaringan vertex-networking-vpc, buat peer BGP untuk bgp-onprem-tunnel1:

    gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \
       --peer-name bgp-onprem-tunnel1 \
       --interface if-tunnel1-to-onprem \
       --peer-ip-address 169.254.1.2 \
       --peer-asn 65002 \
       --region us-central1
    

Menetapkan sesi BGP untuk onprem-vpc

  1. Di jaringan onprem-vpc, buat antarmuka BGP untuk onprem-vpc-tunnel0:

    gcloud compute routers add-interface onprem-vpc-router1 \
       --interface-name if-tunnel0-to-vertex-networking-vpc \
       --ip-address 169.254.0.2 \
       --mask-length 30 \
       --vpn-tunnel onprem-vpc-tunnel0 \
       --region us-central1
    
  2. Pada jaringan onprem-vpc, buat peer BGP untuk bgp-vertex-networking-vpc-tunnel0:

    gcloud compute routers add-bgp-peer onprem-vpc-router1 \
       --peer-name bgp-vertex-networking-vpc-tunnel0 \
       --interface if-tunnel0-to-vertex-networking-vpc \
       --peer-ip-address 169.254.0.1 \
       --peer-asn 65001 \
       --region us-central1
    
  3. Di jaringan onprem-vpc, buat antarmuka BGP untuk onprem-vpc-tunnel1:

    gcloud compute routers add-interface onprem-vpc-router1  \
       --interface-name if-tunnel1-to-vertex-networking-vpc \
       --ip-address 169.254.1.2 \
       --mask-length 30 \
       --vpn-tunnel onprem-vpc-tunnel1 \
       --region us-central1
    
  4. Pada jaringan onprem-vpc, buat peer BGP untuk bgp-vertex-networking-vpc-tunnel1:

    gcloud compute routers add-bgp-peer onprem-vpc-router1 \
       --peer-name bgp-vertex-networking-vpc-tunnel1 \
       --interface if-tunnel1-to-vertex-networking-vpc \
       --peer-ip-address 169.254.1.1 \
       --peer-asn 65001 \
       --region us-central1
    

Memvalidasi pembuatan sesi BGP

  1. Di Konsol Google Cloud, buka halaman VPN.

    Buka VPN

  2. Dalam daftar tunnel VPN, pastikan nilai di kolom status sesi BGP untuk setiap tunnel telah berubah dari Konfigurasi sesi BGP menjadi BGP yang ditetapkan. Anda mungkin perlu memuat ulang tab browser Konsol Google Cloud untuk melihat nilai baru.

Membuat endpoint Private Service Connect (PSC)

Di bagian ini, Anda akan membuat endpoint Private Service Connect (PSC) untuk Google API yang akan digunakan instance VM di jaringan onprem-vpc untuk mengakses GenAI API dari jaringan onprem-vpc Anda.

Endpoint Private Service Connect (PSC) adalah alamat IP internal di jaringan onprem-vpc yang dapat diakses langsung oleh klien di jaringan tersebut. Endpoint ini dibuat dengan men-deploy aturan penerusan yang mengarahkan traffic jaringan yang cocok dengan alamat IP endpoint PSC dengan paket Google API: khususnya, paket all-apis.

Alamat IP endpoint PSC (192.168.0.1) akan diiklankan dari Cloud Router vertex-networking-vpc-router sebagai iklan rute kustom ke jaringan onprem-vpc di langkah selanjutnya.

  1. Cadangkan alamat IP internal global untuk ditetapkan ke endpoint:

    gcloud compute addresses create psc-googleapi-ip \
       --global \
       --purpose=PRIVATE_SERVICE_CONNECT \
       --addresses=192.168.0.1 \
       --network=vertex-networking-vpc
    
  2. Buat endpoint, beserta aturan penerusan yang menghubungkan endpoint tersebut ke Google API dan layanan Google:

    gcloud compute forwarding-rules create pscvertex \
       --global \
       --network=vertex-networking-vpc\
       --address=psc-googleapi-ip \
       --target-google-apis-bundle=all-apis
    
  3. Buat daftar endpoint PSC yang dikonfigurasi dan pastikan endpoint pscvertex telah dibuat:

    gcloud compute forwarding-rules list  \
       --filter target="(all-apis OR vpc-sc)" --global
    
  4. Dapatkan detail endpoint PSC yang dikonfigurasi dan pastikan alamat IP-nya adalah 192.168.0.1:

    gcloud compute forwarding-rules describe \
       pscvertex --global
    

Buat iklan rute kustom untuk vertex-networking-vpc

Di bagian ini, Anda akan membuat iklan rute kustom untuk vertex-networking-vpc-router1 (Cloud Router untuk vertex-networking-vpc) guna mengiklankan alamat IP endpoint PSC ke jaringan onprem-vpc.

  1. Di konsol Google Cloud, buka halaman Cloud Router.

    Buka Cloud Router

  2. Dalam daftar Cloud Router, klik vertex-networking-vpc-router1.

  3. Di halaman detail Router, klik Edit.

  4. Di bagian Advertised routes untuk Routes, pilih Create custom routes.

  5. Pilih kotak centang Beriklan semua subnet yang terlihat oleh Cloud Router untuk terus mengiklankan subnet yang tersedia untuk Cloud Router. Mengaktifkan opsi ini akan meniru perilaku Cloud Router dalam mode iklan default.

  6. Klik Add a custom route.

  7. Untuk Sumber, pilih Rentang IP kustom.

  8. Untuk rentang alamat IP, masukkan alamat IP berikut:

    192.168.0.1
    
  9. Untuk Description, masukkan teks berikut:

    Custom route to advertise Private Service Connect endpoint IP address
    
  10. Klik Done, lalu klik Save.

Validasi bahwa onprem-vpc telah mempelajari rute yang diiklankan

  1. Di Konsol Google Cloud, buka halaman Routes.

    Buka Rute

  2. Pada tab Effective routes, lakukan hal berikut:

    1. Untuk Network, pilih onprem-vpc.
    2. Untuk Region, pilih us-central1 (Iowa).
    3. Klik View.
    4. Dalam daftar rute, pastikan ada entri yang namanya diawali dengan onprem-vpc-router1-bgp-vertex-networking-vpc-tunnel0 dan onprem-vpc-router1-bgp-vfertex-networking-vpc-tunnel1, serta keduanya memiliki Rentang IP tujuan 192.168.0.1/32. (192.168.0.1 adalah alamat IP endpoint PSC.)

      Jika entri ini tidak langsung muncul, tunggu beberapa menit, lalu muat ulang tab browser Konsol Google Cloud.

Mengonfigurasi instance VM di jaringan lokal

Di bagian ini, Anda akan membuat instance VM Compute Engine di jaringan VPC onprem-vpc. Instance VM ini menyimulasikan klien lokal yang terhubung ke endpoint PSC dan mengakses GenAI API.

Membuat akun layanan yang dikelola pengguna

Dalam tutorial ini, Anda akan membuat akun layanan yang dikelola pengguna dengan mengikuti praktik terbaik Compute Engine dan IAM.

  1. Di Cloud Shell, jalankan perintah berikut, dengan mengganti PROJECT_ID dengan project ID Anda:

    projectid=PROJECT_ID
    gcloud config set project ${projectid}
    
  2. Buat akun layanan:

    gcloud iam service-accounts create user-managed-sa
    
  3. Tetapkan peran IAM Vertex AI User (roles/aiplatform.user) ke akun layanan:

    gcloud projects add-iam-policy-binding $projectid \
       --member="serviceAccount:user-managed-sa@$projectid.iam.gserviceaccount.com" \
       --role="roles/aiplatform.user"
    

Membuat instance VM on-prem-client

Pada langkah ini, Anda akan membuat instance VM yang menggunakan alamat IP Private Service Connect (192.168.0.1) untuk mengakses Google API melalui VPN dengan ketersediaan tinggi (HA).

Agar Identity-Aware Proxy (IAP) dapat terhubung ke instance VM, buat aturan firewall yang:

  • Berlaku untuk semua instance VM yang ingin Anda sediakan akses melalui IAP. (Dalam hal ini, hanya ada on-prem-client.)
  • Mengizinkan traffic TCP melalui port 22 dari rentang IP 35.235.240.0/20. Rentang ini berisi semua alamat IP yang digunakan IAP untuk penerusan TCP.
  1. Buat instance VM on-prem-client. Perintah berikut juga menginstal paket tcpdump dan dnsutils, yang berisi utilitas tcpdump dan dig yang nantinya akan Anda gunakan untuk memvalidasi permintaan API:

    gcloud compute instances create on-prem-client \
       --zone=us-central1-a \
       --image-family=debian-11 \
       --image-project=debian-cloud \
       --subnet=onprem-vpc-subnet1 \
       --scopes=https://www.googleapis.com/auth/cloud-platform \
       --no-address \
       --shielded-secure-boot \
       --service-account=user-managed-sa@$projectid.iam.gserviceaccount.com \
       --metadata startup-script="#! /bin/bash
          sudo apt-get update
          sudo apt-get install tcpdump dnsutils -y"
    
  2. Buat aturan firewall IAP bernama ssh-iap-on-prem-vpc:

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

Memvalidasi akses internet publik ke AI Generatif di Vertex AI

Di bagian ini, Anda akan login ke instance VM on-prem-client menggunakan Identity-Aware Proxy, lalu memvalidasi konektivitas publik ke Vertex AI API (termasuk GenAI) dengan menjalankan perintah dig terhadap domain Vertex AI publik (us-central1-aiplatform.googleapis.com).

  1. Di Cloud Shell (Tab One), jalankan perintah berikut, dengan mengganti PROJECT_ID dengan project ID Anda:

    projectid=PROJECT_ID
    gcloud config set project ${projectid}
    
  2. Login ke instance VM on-prem-client menggunakan IAP:

    gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
    
  3. Jalankan perintah dig:

    dig us-central1-aiplatform.googleapis.com
    

    Anda akan melihat output dig yang mirip dengan berikut ini, dengan alamat IP di bagian jawaban adalah alamat IP publik:

    ; <<>> DiG 9.16.44-Debian <<>> us-central1.aiplatfom.googleapis.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42506
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;us-central1.aiplatfom.googleapis.com. IN A
    
    ;; ANSWER SECTION:
    us-central1.aiplatfom.googleapis.com. 300 IN A  173.194.192.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.152.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  172.217.219.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  209.85.146.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  209.85.147.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.125.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.136.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.148.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  209.85.200.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  209.85.234.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.251.171.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  108.177.112.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.128.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.251.6.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  172.217.212.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  74.125.124.95
    
    ;; Query time: 8 msec
    ;; SERVER: 169.254.169.254#53(169.254.169.254)
    ;; WHEN: Wed Sep 27 04:10:16 UTC 2023
    ;; MSG SIZE  rcvd: 321
    

Mengonfigurasi dan memvalidasi akses pribadi ke AI Generatif di Vertex AI

Di bagian ini, Anda akan mengonfigurasi akses pribadi ke AI Generatif di Vertex AI sehingga saat Anda mengirim permintaan ke endpoint layanan publik (us-central1-aiplatform.googleapis.com), permintaan tersebut akan dialihkan ke endpoint PSC Anda. {i>Endpoint<i} PSC kemudian meneruskan permintaan ke

Update file /etc/hosts agar mengarah ke endpoint PSC

Pada langkah ini, Anda akan menambahkan baris ke file /etc/hosts yang menyebabkan permintaan yang dikirim ke endpoint layanan publik (us-central1-aiplatform.googleapis.com) dialihkan ke endpoint PSC (192.168.0.1).

  1. Pada instance VM on-prem-client (Tab One), gunakan editor teks seperti vim atau nano untuk membuka file /etc/hosts:

    sudo vim /etc/hosts
    
  2. Tambahkan baris berikut ke file:

    192.168.0.1 us-central1-aiplatform.googleapis.com
    

    Baris ini menetapkan alamat IP endpoint PSC (192.168.0.1) ke nama domain yang sepenuhnya memenuhi syarat untuk Vertex AI Google API (us-central1-aiplatform.googleapis.com).

    File yang diedit akan terlihat seperti ini:

    127.0.0.1       localhost
    ::1             localhost ip6-localhost ip6-loopback
    ff02::1         ip6-allnodes
    ff02::2         ip6-allrouters
    
    192.168.0.1 us-central1-aiplatform.googleapis.com  # Added by you
    172.16.10.6 on-prem-client.us-central1-a.c.vertex-genai-400103.internal on-prem-client  # Added by Google
    169.254.169.254 metadata.google.internal  # Added by Google
    
  3. Simpan file sebagai berikut:

    • Jika Anda menggunakan vim, tekan tombol Esc, lalu ketik :wq untuk menyimpan file dan keluar.
    • Jika Anda menggunakan nano, ketik Control+O dan tekan Enter untuk menyimpan file, lalu ketik Control+X untuk keluar.
  4. Ping endpoint Vertex AI sebagai berikut:

    ping us-central1-aiplatform.googleapis.com
    

    Perintah ping akan menampilkan output berikut. 192.168.0.1 adalah alamat IP endpoint PC:

    PING us-central1-aiplatform.googleapis.com (192.168.0.1) 56(84) bytes of data.
    
  5. Ketik Control+C untuk keluar dari ping.

  6. Jalankan perintah tcpdump berikut untuk memvalidasi resolusi DNS dan jalur data IP saat Anda mengirim permintaan prediksi online ke endpoint:

     sudo tcpdump -i any port 53 -n or host 192.168.0.1
    

Membuat permintaan pribadi

Pada langkah ini, Anda akan membuat file teks bernama request.json yang berisi payload untuk contoh permintaan curl yang Anda kirim ke GenAI REST API. Untuk mengetahui informasi selengkapnya tentang contoh permintaan, lihat Contoh permintaan.

  1. Dengan tetap menjalankan perintah tcpdump di Tab Satu, buka sesi Cloud Shell baru (Tab Dua) dengan mengklik buka tab baru di Cloud Shell.

  2. Pada sesi Cloud Shell baru (Tab Dua), jalankan perintah berikut, dengan mengganti PROJECT_ID dengan project ID Anda:

    projectid=PROJECT_ID
    gcloud config set project ${projectid}
    
  3. Login ke instance VM on-prem-client menggunakan IAP:

    gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
    
  4. Jalankan perintah berikut, dengan mengganti PROJECT_ID dengan project ID Anda:

    projectid=PROJECT_ID
    gcloud config set project ${projectid}
    
  5. Gunakan editor teks seperti vim atau nano untuk membuat file baru bernama request.json yang berisi teks berikut:

    {
       "instances": [
          { "prompt": "Give me ten interview questions for the role of program manager."}
       ],
       "parameters": {
          "temperature": 0.2,
          "maxOutputTokens": 256,
          "topK": 40,
          "topP": 0.95
       }
    }
    
  6. Jalankan perintah berikut untuk mengirim permintaan ke endpoint PSC, yang akan meneruskan permintaan ke GenAI API. Saat menerima respons, endpoint akan meneruskannya kembali ke VM on-prem-client:

    curl -X POST \
       -H "Authorization: Bearer $(gcloud auth print-access-token)" \
       -H "Content-Type: application/json; charset=utf-8" \
       -d @request.json \
       "https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/publishers/google/models/text-bison:predict"
    

    Anda akan melihat respons yang mirip dengan contoh berikut:

    {
       "predictions": [
          {
          "content": " 1. **What is your experience in managing programs?**\n2. **What are your strengths and weaknesses as a program manager?**\n3. **What is your approach to managing a program?**\n4. **How do you handle risks and challenges in a program?**\n5. **How do you communicate with stakeholders in a program?**\n6. **How do you measure the success of a program?**\n7. **What is your experience in working with cross-functional teams?**\n8. **What is your experience in managing budgets and resources?**\n9. **What is your experience in managing change in a program?**\n10. **What are your career goals as a program manager?**",
          "citationMetadata": {
             "citations": []
          },
          "safetyAttributes": {
             "categories": [
             "Finance",
             "Health"
             ],
             "blocked": false,
             "scores": [
                0.6,
                0.1
             ]
          }
          }
       ],
       "metadata": {
          "tokenMetadata": {
             "outputTokenCount": {
                "totalBillableCharacters": 505,
                "totalTokens": 153
             },
             "inputTokenCount": {
                "totalBillableCharacters": 54,
                "totalTokens": 12
             }
          }
       }
    }
    
  7. Di Tab One, pastikan alamat IP endpoint PSC (192.168.0.1) digunakan untuk mengakses Vertex AI API dari instance VM on-prem-client (subnet 172.16.10.0/28).

    Dari terminal tcpdump di Tab One Cloud Shell, Anda dapat melihat bahwa pencarian DNS ke us-central1-aiplatform.googleapis.com tidak diperlukan, karena baris yang Anda tambahkan ke file /etc/hosts lebih diutamakan, dan alamat IP endpoint PSC (192.168.0.1) digunakan di jalur data.

    Anda akan melihat output tcpdump yang mirip seperti berikut:

    23:48:49.938797 ens4  Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2054:2093, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 39
    23:48:49.938947 ens4  Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2093:2117, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 24
    23:48:49.939839 ens4  Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [F.], seq 2117, ack 6264, win 501, options [nop,nop,TS val 2943864306 ecr 2340789954], length 0
    23:48:49.940292 ens4  In  IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0
    23:48:49.940437 ens4  In  IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [F.], seq 6264, ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0
    23:48:49.940442 ens4  Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [.], ack 6265, win 501, options [nop,nop,TS val 2943864307 ecr 2340789958], length 0
    23:48:49.941193 ens4  In  IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2118, win 272, options [nop,nop,TS val 2340789959 ecr 2943864306], length 0
    

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

Anda dapat menghapus resource individual dalam project dengan menjalankan perintah berikut di Cloud Shell:

   projectid=PROJECT_ID
   gcloud config set project ${projectid}
   gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet
   gcloud compute instances delete on-prem-client --zone=us-central1-a --quiet
   gcloud iam service-accounts delete user-managed-sa@$projectid.iam.gserviceaccount.com --quiet
   gcloud compute forwarding-rules delete pscvertex --global --quiet
   gcloud compute addresses delete psc-googleapi-ip --global --quiet
   gcloud compute vpn-tunnels delete vertex-networking-vpc-tunnel0 vertex-networking-vpc-tunnel1 onprem-vpc-tunnel0 onprem-vpc-tunnel1 --region=us-central1 --quiet
   gcloud compute routers nats delete us-central-cloudnat-onprem --router=onprem-vpc-router1 --region=us-central1 --quiet
   gcloud compute routers delete vertex-networking-vpc-router1 onprem-vpc-router1 --region=us-central1 --quiet
   gcloud compute vpn-gateways delete vertex-networking-vpn-gw1 onprem-vpn-gw1 --region=us-central1 --quiet
   gcloud compute networks subnets delete onprem-vpc-subnet1 --region=us-central1 --quiet
   gcloud compute networks delete onprem-vpc --quiet
   gcloud compute networks delete vertex-networking-vpc --quiet

Langkah selanjutnya