Labs: Provision Vertex AI Workbench dengan Terraform
🚀 Panduan singkat untuk membantu kalian provision Vertex AI Workbench menggunakan Terraform dan eksplorasi dataset Iris dengan Python. Cocok untuk sesi workshop dan lab mandiri.
🎤 Cerita Singkat dari Workshop Google I/O Extended Bogor 2025
Section titled “🎤 Cerita Singkat dari Workshop Google I/O Extended Bogor 2025”Beberapa waktu lalu, gua diminta jadi narasumber/fasilitator untuk sesi Code & Create - Build with AI Workshops Session 2 Dev Connect di event Google I/O Extended Bogor 2025.
Sebagai orang yang kerja di bidang system engineering dan infrastruktur, jujur aja waktu disuruh pake topiknya ada embel-embel AI, gua langsung mikir:
“Waduh… ini di luar zona nyaman gua banget.”
Gua nggak punya latar belakang ML/Data Science, dan jujur agak struggle buat ngerti service-service AI di GCP.
Tapi di sisi lain, gua juga punya keinginan kuat buat tetap bisa sharing sesuatu yang relevan dari perspektif gua sebagai orang infra; yaitu tentang automation dan provisioning tools seperti Terraform.
Akhirnya gua ambil kesempatan ini sebagai tantangan:
- Gua belajar pake Vertex AI Workbench
- Gua cobain provisioning-nya dari nol
- Dan gua ramu semuanya ke dalam lab praktis yang fokus ke automation, bukan modeling atau training berat
🧠 Dan justru dari situ gua belajar satu hal penting:
Kolaborasi AI dan Infra bukan soal siapa paling ngerti, tapi gimana bisa saling bantu pake tools masing-masing.
Tim ML butuh environment yang repeatable, aman, dan bisa diskalakan → dan disitulah automation tools kayak Terraform bisa bantu.
📦 Apa yang Akan Kalian Lakukan
Section titled “📦 Apa yang Akan Kalian Lakukan”- Provision environment JupyterLab pakai Vertex AI Workbench
- Eksplorasi dataset Iris dengan Python dan pandas
- Latih dan evaluasi model ML sederhana (RandomForest)
⚙️ Prasyarat
Section titled “⚙️ Prasyarat”Sebelum mulai, pastikan:
- Kalian punya project GCP dengan billing aktif
- Kalian sudah buat service account dengan role berikut:
Vertex AI AdminCompute AdminIAM Service Account UserService Usage Admin
- API yang harus di-enable:
vertexai.googleapis.comnotebooks.googleapis.comcloudresourcemanager.googleapis.com
🧱 Struktur Proyek
Section titled “🧱 Struktur Proyek”Directorygdg-workbench-lab/
Directory.env
- service_account_key.json
- main.tf
- variables.tf
- terraform.tfvars
- explore-iris.ipynb
- enable-apis.sh
- README.md
🛠 Langkah-Langkah
Section titled “🛠 Langkah-Langkah”1. Clone Repo-nya
Section titled “1. Clone Repo-nya”git clone https://github.com/fadharpra/terraform-vertex-ai-workbench.gitcd gdg-workbench-labDi dalam repo ini kalian akan menemukan file Terraform utama, main.tf, yang mendefinisikan resource Vertex AI Workbench untuk deploy JupyterLab environment-nya.
Selain itu, ada juga file pendukung seperti:
variables.tf— untuk mendeklarasikan variabel inputterraform.tfvars— untuk mengisi nilai-nilai variabel tersebutenable-apis.sh— shell script buat aktifin API di GCPexplore-iris.ipynb— notebook demo untuk eksplorasi dataset Iris
Berikut cuplikan isi main.tf:
terraform { required_providers { google = { source = "hashicorp/google" version = ">= 5.0.0" } }}
provider "google" { project = var.project_id region = var.region credentials = file(var.service_account_key_path)}
resource "google_project_service" "resource_manager_api" { service = "cloudresourcemanager.googleapis.com" disable_on_destroy = true}
resource "google_project_service" "enable_apis" { for_each = toset([ "aiplatform.googleapis.com", "datacatalog.googleapis.com", "dataproc.googleapis.com" ]) service = each.key disable_on_destroy = true
depends_on = [google_project_service.resource_manager_api]}
resource "google_workbench_instance" "notebook" { name = "gdg-workbench-demo" location = var.zone
gce_setup { machine_type = "n1-standard-1"
boot_disk { disk_type = "PD_STANDARD" disk_size_gb = 150 }
vm_image { project = "cloud-notebooks-managed" family = "workbench-instances" }
disable_public_ip = false enable_ip_forwarding = false }
instance_owners = [var.user_email]}2. Tambahkan file variables.tf
Section titled “2. Tambahkan file variables.tf”Buat file baru bernama variables.tf untuk mendeklarasikan variable yang digunakan:
variable "project_id" {}
variable "region" { default = "asia-southeast2"}
variable "zone" { default = "asia-southeast2-a"}
variable "service_account_key_path" { default = ".env/service_account_key.json"}
variable "user_email" { description = "Email user yang boleh akses notebook"}3. Edit variabelnya
Section titled “3. Edit variabelnya”Ubah terraform.tfvars:
project_id = "project-id-kalian"region = "asia-southeast2"zone = "asia-southeast2-a"service_account_key_path = ".env/service_account_key.json"4. Aktifkan API yang Dibutuhkan
Section titled “4. Aktifkan API yang Dibutuhkan”bash enable-apis.sh5. Deploy Infrastrukturnya
Section titled “5. Deploy Infrastrukturnya”terraform initterraform apply📊 Eksplorasi Notebook
Section titled “📊 Eksplorasi Notebook”Setelah instance aktif, buka JupyterLab dari Vertex AI Workbench Console, upload explore-iris.ipynb, dan jalankan semua sel.
Kalian akan melihat:
- Preview dataset
- Statistik ringkas
- Training dan evaluasi model ML sederhana
🎓 Bonus
Section titled “🎓 Bonus”Kalian bisa lanjutkan lab ini dengan:
- Akses dataset dari BigQuery
- Upload dan load model dari GCS
- Terhubung ke Vertex AI endpoint via Python SDK
✅ Kesimpulan
Section titled “✅ Kesimpulan”Vertex AI Workbench bikin setup ML environment di GCP jadi lebih gampang, aman, dan repeatable.
Dengan Terraform, kalian bisa otomatisasi setup ini dan integrasikan ke workflow infrastruktur kalian.
Happy hacking! 🎉