1. Ringkasan
Vertex AI API dapat diakses melalui internet, tetapi di perusahaan Anda, Anda mungkin ingin mengakses Vertex AI API secara pribadi tanpa melalui internet. Di lab ini, Anda akan terlebih dahulu mengakses Anthropic Claude di Vertex melalui python sdk yang berjalan di instance VM melalui internet publik.
Kemudian, Anda akan membuat endpoint Private Service Connect ke Googleapis, dan mengubah alur traffic untuk menggunakan endpoint pribadi guna terhubung ke Vertex API.
Dalam lab ini, Anda akan membuat pola berikut.
Gambar 1.
2. Tujuan
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Menyiapkan instance VM untuk menggunakan python sdk
- Menghubungkan ke chat Anthropic Claude melalui skrip python
- Mengonfigurasi endpoint PSC untuk terhubung ke Googleapis
- Mengonfigurasi entri DNS manual
- Memverifikasi jalur konektivitas ke Googleais
Penyiapan lab
Penyiapan lingkungan mandiri
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.
- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
- Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai
PROJECT_ID
). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project. - Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:
Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:
Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.
3. Tugas 1. Menyiapkan Lingkungan
Kita akan membuat VPC kustom dengan aturan Firewall. Jika sudah memiliki VPC dan Project, Anda dapat melewati bagian ini.
Buka Cloud Shell yang terletak di bagian atas konsol di sebelah kanan. Lalu konfigurasikan sebagai berikut:
- Mengaktifkan beberapa API yang akan kita gunakan di lab ini
gcloud services enable dns.googleapis.com gcloud services enable aiplatform.googleapis.com gcloud services enable servicedirectory.googleapis.com
- Tetapkan beberapa variabel. Variabel ini adalah Project ID dan Network ID VPC kustom (Anda akan membuat VPC di langkah 4).
projectid=$(gcloud config get-value project) networkid=anthropic-net echo $projectid echo $networkid clear
- Sekarang buat VPC kustom bernama anthropic-net.
gcloud compute networks create $networkid \ --project=$projectid \ --subnet-mode=custom \ --mtu=1460 \ --bgp-routing-mode=global
- Membuat vm1-subnet di VPC baru
gcloud compute networks subnets create vm-subnet \ --project=$projectid --range=10.0.88.0/24 \ --stack-type=IPV4_ONLY --network=$networkid \ --region=us-east1
- Menambahkan aturan firewall ICMP ke VPC
gcloud compute firewall-rules create $networkid-allow-icmp --project=$projectid \ --network=$networkid \ --description="Allows ICMP connections from any source to any instance on the network." \ --direction=INGRESS \ --priority=65534 \ --source-ranges=0.0.0.0/0 \ --action=ALLOW \ --rules=icmp
- Menambahkan aturan firewall SSH ke VPC
gcloud compute firewall-rules create $networkid-allow-ssh \ --project=$projectid \ --network=$networkid \ --description="Allows TCP connections from any source to any instance on the network using port 22." \ --direction=INGRESS --priority=65534 \ --source-ranges=0.0.0.0/0 --action=ALLOW \ --rules=tcp:22
4. Tugas 2. Mengaktifkan Anthropic di model garden Vertex
Kita perlu memberikan akses eksternal keluar ke internet, jadi mari kita buat gateway Cloud NAT dan melampirkannya.
- Buka Vertex AI, lalu pilih Model Garden
- Telusuri Anthropic dan pilih Claude 3.5 Sonnet
- Pilih Aktifkan, Anda akan diminta untuk mengisi beberapa info. Isi formulir, lalu pilih Berikutnya
- Di halaman terakhir, pilih Setuju untuk mengaktifkan Claude 3.5 Sonnet
5. Tugas 3. Membuat gateway NAT dan VM
Kita perlu memberikan akses eksternal keluar ke internet, jadi mari kita buat gateway Cloud NAT dan melampirkannya.
Di Cloud Shell, gunakan perintah berikut
- Buat Cloud NAT.
gcloud compute routers create anthro-out-nat \ --network $networkid \ --region us-east1
- Buat gateway Cloud NAT.
gcloud compute routers nats create anthro-out-nat-gw \
--router-region us-east1 \
--router anthro-out-nat \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
Sekarang, mari kita buat satu VM untuk mengakses Anthropic di Vertex AI melalui Python SDK.
Kita akan membuat VM untuk diuji dengan menginstal paket berikut
- Dalam sesi cloud shell yang sama, buat anthro-vm menggunakan perintah berikut.
gcloud compute instances create anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--network-interface=stack-type=IPV4_ONLY,subnet=vm-subnet,no-address,network=$networkid \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install python3 python3-dev python3-venv -y
sudo apt-get install tcpdump dnsutils -y
sudo -i
sudo mkdir -p ~/py-anthro-env
cd ~/py-anthro-env
python3 -m venv env
source env/bin/activate
pip install -U ipython google-cloud-aiplatform 'anthropic[vertex]'"
Anda akan melihat VM yang dibuat tanpa alamat IP publik. Sekarang, mari kita konfigurasikan
6. Tugas 4. Mengonfigurasi VM dan menguji
- Buka instance VM. Pilih VM yang dimulai dengan anthro-vm. Pilih SSH.
- Setelah Anda menerapkan SSH ke anthro-vm, aktifkan root dengan mengetik
sudo -i
- Aktifkan lingkungan venv Anda:
cd py-anthro-env
source env/bin/activate
- Sekarang, mari kita autentikasi untuk melakukan beberapa pengujian nanti. Jalankan perintah berikut di VM, tekan y saat diminta.
gcloud auth application-default login
- Selanjutnya, salin URL yang muncul di awal dengan https://, buka tab baru di jendela browser lab Anda, lalu tempel URL. Setujui perintah.
- Saat Anda melihat salinan pilih berikut, beralihlah kembali ke sesi vm anthro-vm dan untuk Enter authorization code:, tempelkan kode yang Anda salin dan tekan enter untuk mengautentikasi.
- Sekarang, mari kita lakukan pengujian singkat untuk melihat apakah kita dapat terhubung ke Vertex Gemini API, yang menggunakan us-east5-aiplatform.googleapis.com sehingga kita akan melakukan
dig
ke alamat tersebut untuk melihat bagaimana rute traffic.
dig us-east5-aiplatform.googleapis.com
- Anda akan melihat sesuatu yang serupa (alamatnya akan berbeda). Perhatikan bahwa jalurnya melalui alamat IP publik karena API adalah API publik.
; <<>> DiG 9.16.48-Debian <<>> us-east5-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9117
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-east5-aiplatform.googleapis.com. IN A
;; ANSWER SECTION:
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.210.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.211.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.212.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.213.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.215.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.216.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.12.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.13.95
us-east5-aiplatform.googleapis.com. 300 IN A 74.125.26.95
- Sekarang mari kita gunakan python. Ketik
ipython
untuk mengaktifkan antarmuka ipython.
ipython
- Sekarang, salin dan tempel kode berikut. Pertanyaan ini akan menanyakan kepada Claude "Di mana Olimpiade akan diadakan pada tahun 2024?" . Catatan: Ganti
YOUR-Project-ID-Here
dengan nama project ID Anda
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "Where is the olympics being held in 2024!",
}
],
)
print(message)
- Tekan enter untuk menjalankan dan melihat hasilnya.
- Permintaan ini mengakses Anthropic melalui API publik Vertex.
- Tutup sesi SSH, mari kita lanjutkan.
7. Tugas 5. Membuat endpoint PSC ke googleapis
Untuk mengaktifkan konektivitas pribadi ke endpoint Vertex API, kita akan membuat endpoint Private Service Connect untuk googleapis. Hal ini akan memungkinkan kita menggunakan alamat IP pribadi yang ditetapkan untuk merutekan traffic ke googleapis yang kita perlukan, dalam hal ini Vertex Gemini.
- Buka Cloud Shell jika belum terbuka. Buat IP untuk endpoint PSC. Dalam hal ini, kita akan menggunakan 192.168.255.230.
gcloud compute addresses create anthro-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=192.168.255.230 \
--network=$networkid
- Memverifikasi IP yang dibuat
gcloud compute addresses list --filter="name=( 'anthro-ip' ...)"
- Selanjutnya, buat endpoint PSC
gcloud compute forwarding-rules create pscanthrovertex \
--global \
--network=$networkid \
--address=anthro-ip \
--target-google-apis-bundle=all-apis
- Tindakan ini akan membuat endpoint dan entri direktori layanan. Memverifikasi keberadaan endpoint
gcloud compute forwarding-rules describe pscanthrovertex --global
8. Tugas 6. Memverifikasi konektivitas endpoint melalui zona direktori layanan otomatis
Mari kita terhubung menggunakan endpoint pribadi untuk terhubung ke Gemini.
- Buka Instance VM anthro-vm1. Pilih SSH dan SSH ke VM
- Dapatkan akses root dengan mengetik
sudo -i
- Periksa jalur konektivitas ke aiplatform-pscanthrovertex.p.googleapis.com menggunakan perintah
dig
. Anda akan melihat IP endpoint PSC
dig aiplatform-pscanthrovertex.p.googleapis.com
9. Tugas 7. Membuat entri DNS Manual ke googleapis (Opsional)
Anda dapat membuat entri DNS manual untuk mengarah ke endpoint PSC menggunakan DNS pribadi. Tindakan ini akan memengaruhi semua jaringan yang Anda tetapkan ke jaringan tersebut.
- Buka Layanan jaringan, lalu pilih Cloud DNS.
- Di zona, Anda akan melihat zona yang dibuat secara otomatis untuk Private Service Connect untuk Google API, dengan direktori layanan jenis zona. Ini dapat digunakan untuk terhubung ke endpoint PSC dengan format **SERVICE-ENDPOINT.p.googleapis.com Contoh
aiplatform-pscvertexgemini.p.googleapis.com
- Dalam hal ini, kita ingin membuat entri DNS pribadi secara manual. Buka Cloud DNS dan pilih Create Zone
- Konfigurasikan sebagai berikut
Konfigurasi | Nama |
Jenis zona | Pribadi |
Nama zona | googleapis-private |
Nama DNS | googleapis.com |
Menambahkan Jaringan (pilih selesai jika ditambahkan) | anthropic-net |
Untuk menyelesaikan pemilihan | Buat |
- Di area Detail zona, pilih Tambahkan standar untuk menambahkan data A
Konfigurasi | Nama |
Jenis data resource | A |
Alamat IPv4 (tambahkan alamat IP endpoint) | 192.168.255.230 |
Untuk menyelesaikan pemilihan | Buat |
- Di area Detail zona, pilih Tambahkan standar untuk menambahkan data CNAME
Konfigurasi | Nama |
Nama DNS | * |
Jenis resource data | CNAME |
Nama kanonis 1 | googleapis.com |
Untuk menyelesaikan pemilihan | Buat |
- Anda akan melihat penyiapan dengan data A dan CNAME seperti ini, lihat
- Selanjutnya, kita akan memverifikasi konektivitas dengan perubahan ini di anthro-vm
10. Tugas 8. Memverifikasi konektivitas endpoint melalui alamat IP (Opsional)
Mari kita terhubung menggunakan endpoint pribadi untuk terhubung ke Gemini.
- Buka Instance VM anthro-vm. Pilih SSH dan SSH ke VM
- Dapatkan akses root dengan mengetik
sudo -i
- Periksa jalur konektivitas ke us-east5-aiplatform.googleapis.com menggunakan perintah
ping
. Tindakan ini akan melakukan ping ke alamat IP di DNS pribadi, data A untuk googleapis. IP ini adalah endpoint PSC dan ping Anda tidak akan berhasil.
ping -c 2 us-east5-aiplatform.googleapis.com
- Periksa jalur konektivitas dengan
ping
menggunakan entri DNS yang dibuat secara otomatis untuk Google API PSC denganaiplatform-pscanthrovertex.p.googleapis.com
. Ini mengarah ke alamat IP endpoint PSC dan ping Anda tidak akan berhasil.
ping -c 2 aiplatform-pscanthrovertex.p.googleapis.com
- Periksa jalur konektivitas ke us-east5-aiplatform.googleapis.com menggunakan perintah
dig
. Ini harus berupa alamat IP endpoint PSC.
dig us-east5-aiplatform.googleapis.com
- Kembali ke konsol dan buka instance lain dari Instance VM anthro-vm. Pilih SSH dan SSH ke VM
- Dapatkan akses root dengan mengetik
sudo -i
- Jalankan perintah berikut untuk melihat konektivitas dalam dump TCP
sudo tcpdump -i any port 53 -n or host us-east5-aiplatform.googleapis.com
- Sekarang, beralihlah kembali ke instance SSH pertama Instance VM anthro-vm
- Aktifkan env menggunakan
cd py-gem-env
source env/bin/activate
- Sekarang mari kita uji python. Ketik
ipython
untuk mengaktifkan antarmuka ipython.
ipython
- Sekarang, salin dan tempel kode berikut. Perintah ini akan menanyakan kepada Claude "Apa itu roti?". Catatan: Ganti
YOUR-Project-ID-Here
dengan nama project ID Anda
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "What is a roti?",
}
],
)
print(message)
- Tekan enter untuk menjalankan dan melihat hasilnya.
- Beralih kembali ke instance kedua Instance VM anthro-vm. Anda akan melihat hasil TCPDUMP. Anda akan melihat masuk dan keluar serta alamat IP VM menggunakan alamat IP endpoint PSC untuk terhubung ke us-east5-aiplatform.googleapis.com
Menutup semua sesi SSH ke Instance VM anthro-vm
11. Selamat
Selamat, Anda telah berhasil terhubung ke Anthropic di Vertex menggunakan alamat API publik dan secara pribadi menggunakan Endpoint Private Service Connect untuk Googleapis. Fungsi ini dapat memperluas konektivitas API pribadi ke lingkungan cloud lokal/cloud lainnya yang terhubung melalui (Interconnect, Cross-Cloud Interconnect, dan VPC).
Pembersihan
gcloud compute instances delete anthro-vm --zone=us-east1-b --quiet
gcloud compute routers nats delete anthro-out-nat-gw --router=anthro-out-nat --region=us-east1 --quiet
gcloud compute routers delete anthro-out-nat --region=us-east1 --quiet
gcloud compute firewall-rules delete anthropic-net-allow-icmp anthropic-net-allow-ssh --quiet
gcloud compute forwarding-rules delete pscanthrovertex --global
gcloud dns record-sets delete googleapis.com. --zone googleapis-private --type A
gcloud dns record-sets delete *.googleapis.com --zone googleapis-private --type CNAME
gcloud dns managed-zones delete googleapis-private
gcloud compute addresses delete anthro-ip --global
gcloud compute networks subnets delete vm-subnet --region=us-east1 --quiet
gcloud compute networks delete anthropic-net --quiet
Anda dapat membaca selengkapnya tentang jaringan Vertex AI