Arsitektur referensi
Dalam arsitektur referensi berikut, VPC Bersama di-deploy dengan
model Gemini di project layanan,
ph-fm-svc-project
(project layanan model dasar) dengan atribut kebijakan
layanan yang mengizinkan akses pribadi ke Vertex AI API dari AWS:
- Satu perimeter Kontrol Layanan VPC
- Identitas pengguna yang ditentukan project
Opsional: Buat tingkat akses
Jika pengguna akhir Anda memerlukan akses ke Vertex AI melalui konsol Google Cloud , ikuti petunjuk di bagian ini untuk membuat tingkat akses Kontrol Layanan VPC. Namun, jika akses terprogram ke API berasal dari sumber pribadi (seperti di lokal dengan Akses Google Pribadi atau Cloud Workstation), tingkat akses tidak diperlukan.
Dalam arsitektur referensi ini, kami menggunakan rentang CIDR perusahaan, corp-public-block
,
untuk mengizinkan traffic karyawan perusahaan mengakses konsol Google Cloud .
Access Context Manager memungkinkan administrator organisasi Google Cloud menentukan kontrol akses berbasis atribut yang terperinci untuk project dan resource diGoogle Cloud.
Tingkat akses menjelaskan persyaratan agar permintaan disetujui. Contohnya meliputi:
- Jenis perangkat dan sistem operasi (memerlukan lisensi Chrome Enterprise Premium)
- Alamat IP
- Identitas pengguna
Jika ini adalah pertama kalinya organisasi menggunakan Access Context Manager, administrator harus menentukan kebijakan akses, yang merupakan penampung untuk tingkat akses dan perimeter layanan.
Di pemilih project di bagian atas konsol Google Cloud , klik tab Semua, lalu pilih organisasi Anda.
Buat tingkat akses dasar dengan mengikuti petunjuk di halaman Membuat tingkat akses dasar. Tentukan opsi berikut:
- Di bagian Create conditions in, pilih Basic mode.
- Di kolom Access level title, masukkan
corp-public-block
. - Di bagian Conditions, untuk opsi When condition is met, return, pilih TRUE.
- Di bagian IP Subnetworks, pilih Public IP.
- Untuk rentang alamat IP, tentukan rentang CIDR eksternal yang memerlukan akses ke perimeter Kontrol Layanan VPC.
Membuat perimeter layanan Kontrol Layanan VPC
Saat membuat perimeter layanan, Anda mengizinkan akses ke layanan yang dilindungi dari di luar perimeter dengan menentukan project yang dilindungi. Saat menggunakan Kontrol Layanan VPC dengan VPC Bersama, Anda membuat satu perimeter besar yang mencakup project host dan layanan. (Jika Anda hanya memilih project layanan di perimeter, endpoint jaringan yang termasuk dalam project layanan akan tampak berada di luar perimeter karena subnet hanya dikaitkan dengan project host.)
Pilih jenis konfigurasi untuk perimeter baru
Di bagian ini, Anda akan membuat perimeter layanan Kontrol Layanan VPC dalam mode uji coba. Dalam mode uji coba, perimeter mencatat pelanggaran seolah-olah perimeter diterapkan, tetapi tidak mencegah akses ke layanan yang dibatasi. Menggunakan mode uji coba sebelum beralih ke mode yang diterapkan direkomendasikan sebagai praktik terbaik.
Di menu navigasi konsol Google Cloud , klik Security, lalu klik VPC Service Controls.
Di halaman VPC Service Controls, klik Dry run mode.
Klik Perimeter baru.
Di tab Perimeter Layanan VPC Baru, di kotak Nama Perimeter, masukkan nama perimeter. Jika tidak, terima nilai default.
Nama perimeter dapat memiliki panjang maksimum 50 karakter, harus dimulai dengan huruf, dan hanya boleh berisi huruf Latin ASCII (a-z, A-Z), angka (0-9), atau garis bawah (_). Nama perimeter peka huruf besar/kecil dan harus unik dalam kebijakan akses.
Pilih resource yang akan dilindungi
Klik Fasilitas yang akan dilindungi.
Untuk menambahkan project atau jaringan VPC yang ingin Anda amankan dalam perimeter, lakukan hal berikut:
Klik Tambahkan Fasilitas.
Untuk menambahkan project ke perimeter, di panel Tambahkan resource, klik Tambahkan project.
Untuk memilih project, di dialog Tambahkan project, pilih kotak centang project tersebut. Dalam arsitektur referensi ini, kami memilih project berikut:
infra-host-project
aiml-host-project
ph-fm-svc-project
Klik Tambahkan referensi yang dipilih. Project yang ditambahkan akan muncul di bagian Project.
Pilih layanan yang dibatasi
Dalam arsitektur referensi ini, cakupan API yang dibatasi terbatas, sehingga hanya mengaktifkan API yang diperlukan untuk Gemini. Namun, sebagai praktik terbaik, sebaiknya Anda membatasi semua layanan saat membuat perimeter untuk mengurangi risiko pemindahan data yang tidak sah dari layananGoogle Cloud .
Untuk memilih layanan yang akan diamankan dalam perimeter, lakukan hal berikut:
Klik Layanan yang Dibatasi.
Di panel Restricted Services, klik Add services.
Pada dialog Tentukan layanan yang akan dibatasi, pilih Vertex AI API.
Klik Add Vertex AI API.
Opsional: Pilih layanan yang dapat diakses VPC
Setelan Layanan yang dapat diakses VPC membatasi kumpulan layanan yang dapat diakses dari endpoint jaringan di dalam perimeter layanan Anda. Dalam arsitektur referensi ini, kita mempertahankan setelan default Semua Layanan.
Opsional: Pilih tingkat akses
Jika Anda membuat tingkat akses CIDR perusahaan di bagian sebelumnya, lakukan tindakan berikut untuk mengizinkan akses ke resource terlindungi dari luar perimeter:
Klik Tingkat Akses.
Klik kotak Pilih Tingkat Akses.
Anda juga dapat menambahkan tingkat akses setelah perimeter dibuat.
Centang kotak yang sesuai dengan tingkat akses. (Dalam arsitektur referensi ini, ini adalah
corp-public-block
.)
Kebijakan masuk dan keluar
Dalam arsitektur referensi ini, Anda tidak perlu menentukan setelan apa pun di panel Kebijakan Masuk atau Kebijakan Keluar.
Membuat perimeter
Setelah Anda menyelesaikan langkah-langkah konfigurasi sebelumnya, buat perimeter dengan mengklik Buat perimeter.
Mengonfigurasi konektivitas jaringan antara AWS dan Google API
Mengonfigurasi Private Service Connect untuk Google API
Private Service Connect untuk mengakses Google API adalah alternatif untuk menggunakan Akses Google Pribadi atau nama domain publik untuk Google API. Dalam hal ini, produsernya adalah Google.
Menggunakan Private Service Connect memungkinkan Anda melakukan hal berikut:
- Buat satu atau beberapa alamat IP internal guna mengakses Google API untuk berbagai kasus penggunaan.
- Mengarahkan traffic lokal ke alamat IP dan region tertentu saat mengakses Google API.
- Buat nama DNS endpoint kustom yang digunakan untuk me-resolve Google API.
Dalam arsitektur referensi, endpoint Google API Private Service Connect
bernama restricted
, dengan Alamat IP 10.10.10.3,
di-deploy dengan
VPC-SC target, yang digunakan sebagai Virtual IP (VIP) untuk mengakses layanan terbatas
yang dikonfigurasi di Perimeter VPC-SC. Penargetan layanan yang tidak dibatasi dengan VIP tidak didukung. Untuk mengetahui informasi selengkapnya, lihat
Tentang mengakses Vertex AI API | Google Cloud.
Mengonfigurasi jaringan AWS VPC
Konektivitas jaringan antara Amazon Web Services (AWS) dan Google Cloud dibuat menggunakan tunnel Virtual Private Network dengan Ketersediaan Tinggi (HA VPN). Koneksi aman ini memfasilitasi komunikasi pribadi antara dua lingkungan cloud. Namun, untuk mengaktifkan pemilihan rute dan komunikasi yang lancar antara resource di AWS dan Google Cloud, Border Gateway Protocol (BGP) digunakan.
Di lingkungan Google Cloud , diperlukan iklan rute kustom. Rute kustom ini secara khusus mengiklankan alamat IP Google API Private Service Connect ke jaringan AWS. Dengan mengiklankan alamat IP ini, AWS dapat membuat rute langsung ke Google API, sehingga mengabaikan internet publik dan meningkatkan performa.
Dalam arsitektur referensi, instance Sagemaker di-deploy dengan asosiasi dengan VPC AWS tempat VPN dibuat dengan Google Cloud. Border Gateway Protocol (BGP) digunakan untuk mengiklankan rute di seluruh VPN dengan ketersediaan tinggi (HA) antara jaringan AWS dan Google Cloud . Akibatnya, Google Cloud dan AWS dapat merutekan traffic dua arah melalui VPN. Untuk informasi selengkapnya tentang cara menyiapkan koneksi VPN dengan ketersediaan tinggi (HA), lihat Membuat koneksi VPN dengan ketersediaan tinggi (HA) antara Google Cloud dan AWS.
Mengonfigurasi update Route 53
Buat zona yang dihosting secara pribadi bernama p.googleapis.com
di AWS Route 53 dan tambahkan nama domain yang memenuhi syarat sepenuhnya REGION-aiplatform-restricted.p.googleapis.com
dengan alamat IP 10.10.10.3
(IP Googleapis Private Service Connect) sebagai data A DNS.
Saat Jupyter Notebook SDK melakukan pencarian DNS untuk Vertex AI
API guna menjangkau Gemini, Route 53 akan menampilkan
alamat IP Google API Private Service Connect. Jupyter Notebook menggunakan alamat IP yang diperoleh dari Route 53 untuk membuat koneksi ke endpoint Google API Private Service Connect yang dirutekan melalui HA VPN ke Google Cloud.
Mengonfigurasi update Sagemaker
Arsitektur referensi ini menggunakan instance Amazon SageMaker Notebook untuk mengakses Vertex AI API. Namun, Anda dapat mencapai penyiapan yang sama dengan layanan komputasi lain yang mendukung VPC, seperti Amazon EC2 atau AWS Lambda.
Untuk mengautentikasi permintaan, Anda dapat menggunakan kunci akun layanan Google Cloud atau menggunakan Workload Identity Federation. Untuk informasi tentang cara menyiapkan Workload Identity Federation, lihat Penyedia cloud lokal atau penyedia cloud lainnya.
Instance Jupyter Notebook memanggil panggilan API ke model Gemini yang dihosting di
Google Cloud dengan melakukan resolusi DNS ke nama domain lengkap Google API Private Service Connect kustom
REGION-aiplatform-restricted.p.googleapis.com
yang mengganti
nama domain lengkap default
(REGION-aiplatform.googleapis.com
).
Vertex AI API dapat dipanggil menggunakan Rest, gRPC, atau SDK. Untuk menggunakan nama domain lengkap pelanggan Private Service Connect, update API_ENDPOINT di Jupyter Notebook dengan hal berikut:
Petunjuk untuk menggunakan Vertex AI SDK untuk Python
Instal SDK:
pip install --upgrade google-cloud-aiplatform
Impor dependensi:
from google.cloud import aiplatform from vertexai.generative_models import GenerativeModel, Part, SafetySetting import vertexai import base64
Lakukan inisialisasi variabel lingkungan berikut:
PROJECT_ID="ph-fm-svc-projects" # Google Cloud Project ID LOCATION_ID="us-central1" # Enter Vertex AI Gemini region such a s us-central1 API_ENDPOINT="us-central1-aiplatform-restricted.p.googleapis.com" # PSC Endpoint MODEL_ID="gemini-1.5-flash-002" # Gemini Model ID
Lakukan inisialisasi Vertex AI SDK untuk Python:
vertexai.init(project=PROJECT_ID,api_endpoint=API_ENDPOINT, api_transport="rest")
Buat permintaan berikut ke Vertex AI Gemini API:
import base64 from vertexai.generative_models import GenerativeModel, Part, SafetySetting def generate(model_id, prompt): model = GenerativeModel( model_id, ) responses = model.generate_content( [prompt], generation_config=generation_config, safety_settings=safety_settings, stream=True, ) for response in responses: print(response.text, end="") generation_config = { "max_output_tokens": 8192, "temperature": 1, "top_p": 0.95, } safety_settings = [ SafetySetting( category=SafetySetting.HarmCategory.HARM_CATEGORY_HATE_SPEECH, threshold=SafetySetting.HarmBlockThreshold.OFF ), SafetySetting( category=SafetySetting.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, threshold=SafetySetting.HarmBlockThreshold.OFF ), SafetySetting( category=SafetySetting.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT, threshold=SafetySetting.HarmBlockThreshold.OFF ), SafetySetting( category=SafetySetting.HarmCategory.HARM_CATEGORY_HARASSMENT, threshold=SafetySetting.HarmBlockThreshold.OFF ), ] prompt = "which weighs more: 1kg feathers or 1kg stones" generate(MODEL_ID,prompt)
Pada tahap ini, Anda dapat melakukan panggilan API ke Gemini dari Jupyter notebook untuk mengakses Gemini yang dihosting di Google Cloud. Jika panggilan berhasil, output-nya akan terlihat seperti berikut:
They weigh the same. Both weigh 1 kilogram.
Petunjuk untuk menggunakan Vertex AI REST API
Di bagian ini, Anda akan menyiapkan beberapa variabel penting yang akan digunakan selama proses. Variabel ini menyimpan informasi tentang project Anda, seperti lokasi resource, model Gemini tertentu, dan endpoint Private Service Connect yang ingin Anda gunakan.
Buka jendela terminal di dalam notebook Jupyter.
Lakukan inisialisasi variabel lingkungan berikut:
export PROJECT_ID="ph-fm-svc-projects" export LOCATION_ID="us-central1" export API_ENDPOINT="us-central1-aiplatform-restricted.p.googleapis.com" export MODEL_ID="gemini-1.5-flash-002"
Gunakan editor teks seperti
vim
ataunano
untuk membuat file baru bernamarequest.json
yang berisi permintaan berformat berikut untuk Vertex AI Gemini API:{ "contents": [ { "role": "user", "parts": [ { "text": "which weighs more: 1kg feathers or 1kg stones" } ] } ], "generationConfig": { "temperature": 1, "maxOutputTokens": 8192, "topP": 0.95, "seed": 0 }, "safetySettings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "OFF" }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "OFF" }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "OFF" }, { "category": "HARM_CATEGORY_HARASSMENT", "threshold": "OFF" } ] }
Buat permintaan cURL berikut ke Vertex AI Gemini API:
curl -v \ -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://$API_ENDPOINT/v1/projects/$PROJECT_ID/locations/$LOCATION_ID/publishers/google/models/$MODEL_ID:streamGenerateContent" -d '@request.json'
Memvalidasi perimeter Anda dalam mode uji coba
Dalam arsitektur referensi ini, perimeter layanan dikonfigurasi dalam mode uji coba, sehingga Anda dapat menguji pengaruh kebijakan akses tanpa penerapan. Artinya, Anda dapat melihat dampak kebijakan terhadap lingkungan jika kebijakan tersebut aktif, tetapi tanpa risiko mengganggu traffic yang sah.
Setelah memvalidasi perimeter dalam mode uji coba, alihkan ke mode diterapkan.
Langkah selanjutnya
- Pelajari cara Menggunakan nama DNS
p.googleapis.com
. - Untuk mempelajari cara memvalidasi perimeter dalam mode uji coba, tonton video logging uji coba Kontrol Layanan VPC.
- Pelajari cara menggunakan Vertex AI REST API.
- Pelajari lebih lanjut cara menggunakan Vertex AI SDK untuk Python.