1. Pengantar
Instance notebook Vertex AI Workbench yang dikelola pengguna memungkinkan Anda membuat dan mengelola instance mesin virtual (VM) deep learning dengan JupyterLab bawaan.
Instance notebook yang dikelola pengguna memiliki rangkaian paket deep learning bawaan, termasuk dukungan untuk framework TensorFlow dan PyTorch. Anda dapat mengonfigurasi instance khusus CPU, atau yang mendukung GPU.
Yang akan Anda bangun
Tutorial ini menjelaskan proses men-deploy notebook yang dikelola pengguna yang aman berdasarkan praktik terbaik dari Jaringan dan Keamanan. Langkah-langkah yang diperlukan adalah:
- Membuat VPC
- Membuat Cloud Router dan Cloud NAT
- Konfigurasi instance notebook dengan setelan keamanan yang sesuai
Tutorial ini memberikan petunjuk mendetail untuk setiap langkah. Panduan ini juga mencakup tips dan praktik terbaik untuk mengamankan notebook yang dikelola pengguna. Gambar 1 adalah ilustrasi deployment menggunakan VPC Mandiri.
Gambar 1

Yang akan Anda pelajari
- Cara menentukan apakah VPC Bersama atau Mandiri tepat untuk organisasi Anda
- Cara membuat VPC Mandiri
- Cara membuat Cloud Router dan Cloud NAT
- Cara membuat notebook yang dikelola pengguna
- Cara mengakses notebook yang dikelola pengguna
- Cara memantau kondisi notebook yang dikelola pengguna
- Cara membuat dan menerapkan jadwal instance
Yang Anda butuhkan
- Project Google Cloud
Izin IAM
- Compute Network Admin
- Compute Security Admin
- Compute Instance Admin
- Notebooks Admin
- Storage Admin
- Project IAM Admin
- Service Account Admin
- Pengguna Akun Layanan
- Storage Object Viewer (Diterapkan ke akun layanan)
- Vertex AI User (Diterapkan ke akun layanan)
2. Jaringan VPC
Jaringan VPC dapat digambarkan sama seperti jaringan fisik, tetapi bedanya jaringan ini divirtualisasikan di dalam Google Cloud. Jaringan VPC adalah resource global yang terdiri dari subnet regional. Jaringan VPC secara logis terpisah satu sama lain dalam Google Cloud.
VPC Mandiri
Gambar 2 adalah contoh VPC global mandiri yang terdiri dari subnet regional (us-central1) selain Cloud Router dan Cloud NAT yang digunakan untuk memungkinkan Notebook yang Dikelola Pengguna membuat konektivitas ke Internet secara aman.
Gambar 2

VPC Bersama
Dengan VPC Bersama, Anda dapat mengekspor subnet dari jaringan VPC dalam project host ke project layanan dalam organisasi yang sama. Project host berisi resource jaringan yang dibagikan dengan project layanan seperti subnet, Cloud NAT, dan aturan firewall. Project layanan berisi resource tingkat aplikasi yang memanfaatkan resource jaringan di project host.
Gambar 3 adalah ilustrasi VPC Bersama Global, yang infrastruktur jaringan dan keamanannya di-deploy di project host, sedangkan beban kerjanya di-deploy di project layanan.
Gambar 3

VPC Mandiri vs. VPC Bersama
Satu jaringan VPC sudah cukup untuk banyak kasus penggunaan sederhana, karena lebih mudah dibuat, dikelola, dan dipahami daripada alternatif yang lebih kompleks. VPC Bersama adalah alat yang efektif untuk organisasi dengan beberapa tim, karena memungkinkan mereka memperluas kesederhanaan arsitektur satu jaringan VPC di beberapa kelompok kerja melalui penggunaan project layanan.
Praktik Terbaik VPC yang digunakan dalam tutorial
- Aktifkan Cloud NAT untuk mengakses notebook.
- Aktifkan Akses Google Pribadi saat Anda membuat subnet.
- Buat aturan firewall preskriptif untuk mengurangi traffic yang tidak diminta, misalnya, jangan gunakan tcp 0.0.0.0/0, tetapi tentukan alamat IP host atau subnet yang tepat.
- Manfaatkan kebijakan firewall untuk memperdalam cakupan aturan ingress, misalnya lokasi geografis, daftar kecerdasan ancaman, nama domain sumber, dll.
3. Praktik Terbaik Notebook
Menyesuaikan ukuran instance Anda
- Menghentikan dan/atau menghapus instance yang tidak digunakan
- Gunakan instance awal yang lebih kecil dan lakukan iterasi dengan data sampel yang lebih kecil
- Menskalakan instance sesuai kebutuhan
- Bereksperimen dengan set data yang lebih kecil
Pilih jenis mesin yang tepat
- VM yang dioptimalkan untuk biaya
- Memanfaatkan sumber daya hardware dengan lebih baik untuk menurunkan biaya
- Penghematan hingga 31% dibandingkan dengan N1
- Penghematan tambahan (20-50%) untuk komitmen 1 atau 3 tahun
- Meningkatkan ukuran mesin atau menambahkan GPU dapat membantu meningkatkan performa dan mengatasi error batasan memori
Menjadwalkan instance untuk dimatikan
- Menonaktifkan instance saat tidak ada aktivitas (hanya membayar penyimpanan disk)
- Menjadwalkan instance VM notebook untuk dimatikan dan diaktifkan secara otomatis pada jam tertentu
Memantau status kondisi notebook
- Instance notebook yang dikelola pengguna memiliki alat diagnostik bawaan yang dapat membantu Anda memantau kondisi instance.
Pertimbangan Keamanan
Berikut adalah pertimbangan keamanan yang direkomendasikan saat membuat notebook yang dikelola pengguna:
- Pilih opsi untuk akses notebook "khusus satu pengguna". Jika pengguna yang ditentukan bukan pembuat instance, Anda harus memberikan peran Pengguna Akun Layanan (roles/iam.serviceAccountUser) kepada pengguna yang ditentukan di akun layanan instance tersebut.
- Nonaktifkan opsi berikut:
- akses root
- nbconvert
- mendownload file dari UI JupyterLab
- Cloud NAT akan digunakan, bukan menetapkan alamat IP eksternal ke notebook yang dikelola pengguna.
- Pilih opsi komputasi berikut:
- Booting Aman
- Virtual Trusted Platform Module (vTPM)
- Pemantauan integritas
4. Sebelum memulai
Mengupdate project untuk mendukung tutorial
Tutorial ini menggunakan $variables untuk membantu penerapan konfigurasi gcloud di Cloud Shell.
Di dalam Cloud Shell, lakukan hal berikut:
gcloud config list project
gcloud config set project [your-project-name]
projectid=your-project-name
echo $projectid
5. Penyiapan VPC
Buat VPC Mandiri
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks create securevertex-vpc --project=$projectid --subnet-mode=custom
Buat subnet notebook yang dikelola pengguna
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks subnets create securevertex-subnet-a --project=$projectid --range=10.10.10.0/28 --network=securevertex-vpc --region=us-central1 --enable-private-ip-google-access
Konfigurasi Cloud Router dan NAT
Cloud NAT digunakan dalam tutorial untuk mendownload paket software notebook karena instance notebook yang dikelola pengguna tidak memiliki alamat IP eksternal. Cloud NAT juga menawarkan kemampuan NAT keluar, yang berarti bahwa host internet tidak diizinkan untuk memulai komunikasi dengan notebook yang dikelola pengguna, sehingga lebih aman.
Di dalam Cloud Shell, buat Cloud Router regional.
gcloud compute routers create cloud-router-us-central1 --network securevertex-vpc --region us-central1
Di dalam Cloud Shell, buat gateway Cloud NAT regional.
gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1 --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
6. Membuat bucket penyimpanan
Bucket penyimpanan menawarkan upload/pengambilan file yang aman. Dalam tutorial ini, penyimpanan cloud akan berisi skrip pasca-startup untuk menginstal paket AI Generatif di notebook yang dikelola pengguna.
Buat bucket Cloud Storage dan ganti BUCKET_NAME dengan nama unik secara global yang Anda inginkan.
Di dalam Cloud Shell, buat bucket penyimpanan yang unik.
gsutil mb -l us-central1 -b on gs://BUCKET_NAME
Simpan ‘BUCKET_NAME' selama durasi lab
BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME
7. Membuat skrip pasca-startup
Untuk mengaktifkan download paket AI Generatif, buat skrip pasca-startup di Cloud Shell menggunakan editor vi atau nano dan simpan sebagai poststartup.sh.
#! /bin/bash
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Changing dir to /home/jupyter" >> /tmp/notebook_config.log 2>&1
cd /home/jupyter
echo "Cloning generative-ai from github" >> /tmp/notebook_config.log 2>&1
su - jupyter -c "git clone https://github.com/GoogleCloudPlatform/generative-ai.git" >> /tmp/notebook_config.log 2>&1
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Installing python packages" >> /tmp/notebook_config.log 2&1
su - jupyter -c "pip install --upgrade --no-warn-conflicts --no-warn-script-location --user \
google-cloud-bigquery \
google-cloud-pipeline-components \
google-cloud-aiplatform \
seaborn \
kfp" >> /tmp/notebook_config.log 2>&1
Contoh:
vpc_admin@cloudshell$ more poststartup.sh
#! /bin/bash
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Changing dir to /home/jupyter" >> /tmp/notebook_config.log 2>&1
cd /home/jupyter
echo "Cloning generative-ai from github" >> /tmp/notebook_config.log 2>&1
su - jupyter -c "git clone https://github.com/GoogleCloudPlatform/generative-ai.git" >> /tmp/notebook_config.log 2>&1
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Installing python packages" >> /tmp/notebook_config.log 2&1
su - jupyter -c "pip install --upgrade --no-warn-conflicts --no-warn-script-location --user \
google-cloud-bigquery \
google-cloud-pipeline-components \
google-cloud-aiplatform \
seaborn \
kfp" >> /tmp/notebook_config.log 2>&1
Upload skrip post startup ke bucket penyimpanan Anda dari Cloud Shell menggunakan gsutil
gsutil cp poststartup.sh gs://$BUCKET_NAME
8. Membuat akun layanan
Untuk memberikan tingkat kontrol yang baik pada notebook yang dikelola pengguna, diperlukan akun layanan. Setelah dibuat, izin akun layanan dapat diubah berdasarkan persyaratan bisnis. Dalam tutorial ini, akun layanan akan menerapkan aturan berikut:
Anda harus Service Account API sebelum melanjutkan.
Di dalam Cloud Shell, buat akun layanan.
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
Di dalam Cloud Shell, perbarui akun layanan dengan peran Storage Object Viewer
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.objectViewer"
Di dalam Cloud Shell, perbarui akun layanan dengan peran Vertex AI User
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
Di dalam Cloud Shell, buat daftar akun layanan dan catat alamat email yang akan digunakan saat membuat notebook yang dikelola pengguna.
gcloud iam service-accounts list
Contoh:
$ gcloud iam service-accounts list
DISPLAY NAME: user-managed-notebook-sa
EMAIL: user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com
DISABLED: False
9. Membuat notebook yang dikelola pengguna yang aman
Instance notebook yang dikelola pengguna adalah instance mesin virtual Deep Learning dengan library machine learning dan data science terbaru yang telah diinstal sebelumnya. Anda dapat menyertakan GPU Nvidia secara opsional untuk akselerasi hardware.
Aktifkan API konsumen
Buat notebook yang dikelola pengguna
- Buka Workbench
- Pilih User-Managed Notebooks, lalu pilih Create Notebook. Halaman Buat notebook yang dikelola pengguna akan terbuka.
- Jika notebook yang ada sudah di-deploy, pilih User-Managed Notebooks → New Notebook → Customize
- Di halaman Create a user-managed notebook, di bagian Details, berikan informasi berikut untuk instance baru Anda:
- Nama: Berikan nama untuk instance baru Anda.
- Region dan Zona: Tutorial ini akan menggunakan region us-central1 dan zona us-central1-a
Pilih Lanjutkan
- Di bagian Environment, berikan hal berikut:
- Sistem operasi: Pilih sistem operasi yang ingin Anda gunakan.
- Pilih lingkungan yang ingin Anda gunakan.
- Versi: Pilih versi yang ingin Anda gunakan.
- Skrip setelah startup (Opsional, gunakan skrip AI generatif yang dibuat sebelumnya) pilih Jelajahi untuk memilih skrip yang akan dijalankan setelah instance dimulai.
- Metadata: Opsional: Sediakan kunci metadata kustom untuk instance.
Pilih Lanjutkan
- Di bagian Machine type, berikan hal berikut:
- Jenis mesin: Pilih jumlah CPU dan jumlah RAM untuk instance baru Anda. Vertex AI Workbench menyediakan perkiraan biaya bulanan untuk setiap jenis mesin yang Anda pilih.
- Jenis GPU: Pilih jenis GPU dan Jumlah GPU untuk instance baru Anda. Untuk mengetahui informasi tentang berbagai GPU, lihat GPU di Compute Engine.
- Centang kotak Instal driver GPU NVIDIA secara otomatis untuk saya.
Shielded VM
- Aktifkan Booting Aman
- Aktifkan vTPM
- Aktifkan Pemantauan Integritas
Pilih Lanjutkan
- Di bagian Disk, berikan hal berikut:
- Disk: Opsional: Untuk mengubah setelan booting default atau disk data, pilih Jenis boot disk, Ukuran boot disk dalam GB, Jenis disk data, dan Ukuran disk data dalam GB yang Anda inginkan. Untuk mengetahui informasi selengkapnya tentang jenis disk, lihat Opsi penyimpanan.
- Hapus ke sampah: Opsional: Centang kotak ini untuk menggunakan perilaku sampah default sistem operasi. Jika Anda menggunakan perilaku sampah default, file yang dihapus menggunakan antarmuka pengguna JupyterLab dapat dipulihkan, tetapi file yang dihapus ini menggunakan kapasitas disk.
- Pencadangan: Opsional: Untuk menyinkronkan lokasi Cloud Storage dengan disk data instance Anda, pilih Jelajahi dan tentukan lokasi Cloud Storage. Untuk mempelajari biaya penyimpanan, lihat Harga Cloud Storage.
- Enkripsi: Kunci enkripsi yang dikelola Google
Pilih Lanjutkan
- Di bagian Networking, berikan hal berikut:
- Networking: Pilih Networks in this project atau Networks shared with me. Jika menggunakan VPC Bersama di project host, Anda juga harus memberikan peran Compute Network User (roles/compute.networkUser) ke Agen Layanan Notebooks dari project layanan.
- Di kolom Network, pilih jaringan yang Anda inginkan. Tutorial ini menggunakan jaringan securevertex-vpc. Anda dapat memilih jaringan VPC, asalkan jaringan tersebut telah mengaktifkan Akses Google Pribadi atau dapat mengakses internet. Di kolom Subnetwork, pilih subnetwork yang Anda inginkan. Dalam tutorial ini, subnetwork securevertex-subnet-a digunakan.
- Membatalkan pilihan tetapkan alamat IP eksternal
- Pilih izinkan akses proxy
Pilih Lanjutkan

- Di bagian IAM dan keamanan, berikan hal berikut:
- Pilih Single user, lalu di kolom User email, masukkan akun pengguna yang ingin Anda beri akses. Jika pengguna yang ditentukan bukan pembuat instance, Anda harus memberikan peran Pengguna Akun Layanan (roles/iam.serviceAccountUser) kepada pengguna yang ditentukan di akun layanan instance tersebut.
- Batalkan pilihan Gunakan akun layanan Compute Engine default di VM untuk memanggil Google Cloud API
- Masukkan alamat email akun layanan yang baru dibuat, contoh: user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com
Opsi keamanan
- Membatalkan pilihan aktifkan akses root ke instance
- Membatalkan pilihan aktifkan nbconvert
- Membatalkan pilihan Aktifkan download file dari UI JupyterLab
- Aktifkan terminal (Batalkan pilihan untuk lingkungan produksi)
Pilih Lanjutkan

- Di bagian Kondisi sistem, berikan hal berikut
Upgrade lingkungan dan kesehatan sistem
- Centang kotak Aktifkan upgrade otomatis lingkungan.
- Pilih apakah Anda akan mengupgrade notebook secara Mingguan atau Bulanan.
Di bagian Kondisi sistem dan pelaporan, centang atau hapus centang pada kotak berikut:
- Mengaktifkan laporan kesehatan sistem
- Melaporkan metrik kustom ke Cloud Monitoring
- Menginstal agen Cloud Monitoring
Pilih Buat.
10. Validasi
Vertex AI Workbench membuat instance notebook yang dikelola pengguna berdasarkan properti yang Anda tentukan dan otomatis memulai instance tersebut. Saat instance siap digunakan, Vertex AI Workbench akan mengaktifkan link Open JupyterLab yang memungkinkan pengguna akhir mengakses notebook.
11. Kemampuan observasi
Memantau metrik sistem dan aplikasi melalui Monitoring
Untuk instance notebook yang dikelola pengguna dengan Monitoring telah diinstal, Anda dapat memantau metrik sistem dan aplikasi menggunakan konsol Google Cloud:
- Di konsol Google Cloud, buka halaman Notebook yang dikelola pengguna.
- Klik nama instance yang ingin Anda lihat metrik sistem dan aplikasinya.
- Di halaman Notebook details, klik tab Monitoring. Tinjau metrik sistem dan aplikasi untuk instance Anda.
12. Membuat Jadwal Notebook
Dengan jadwal instance, Anda dapat memulai dan menghentikan instance virtual machine (VM) secara otomatis. Menggunakan jadwal instance untuk mengotomatiskan deployment instance VM dapat membantu Anda mengoptimalkan biaya dan mengelola instance VM secara lebih efisien. Anda dapat menggunakan jadwal instance untuk workload berulang dan tunggal. Misalnya, gunakan jadwal instance untuk menjalankan instance VM selama jam kerja saja atau untuk menyediakan kapasitas untuk peristiwa yang bersifat tunggal.
Untuk menggunakan jadwal instance, buat kebijakan resource yang menjelaskan perilaku mulai dan berhenti, lalu sertakan kebijakan tersebut ke satu atau beberapa instance VM.
Tutorial ini akan menunjukkan cara membuat jadwal instance yang akan mengaktifkan notebook Anda pada pukul 07.00 dan menonaktifkannya pada pukul 18.00.
Untuk membuat jadwal instance, Anda memerlukan izin compute.instances.start dan compute.instances.stop. Oleh karena itu, sebaiknya gunakan peran khusus yang dibuat oleh administrator dan diberikan kepada Anda.
Setelah dibuat, peran kustom akan ditetapkan ke akun layanan Compute Engine default di project Anda, yang akan memungkinkan jadwal instance untuk memulai dan menghentikan notebook Anda.
Membuat peran khusus
Di dalam Cloud Shell, buat peran khusus, VmScheduler, dan sertakan izin yang diperlukan.
gcloud iam roles create Vm_Scheduler --project=$projectid \
--title=vm-scheduler-notebooks \
--permissions="compute.instances.start,compute.instances.stop" --stage=ga
Jelaskan peran khusus dari Cloud Shell.
gcloud iam roles describe Vm_Scheduler --project=$projectid
Contoh:
$ gcloud iam roles describe Vm_Scheduler --project=$projectid
etag: BwX991B0_kg=
includedPermissions:
- compute.instances.start
- compute.instances.stop
name: projects/$projectid/roles/Vm_Scheduler
stage: GA
title: vm-scheduler-notebooks
Memperbarui akun layanan default
Di bagian berikut, Anda akan mengidentifikasi dan memperbarui akun layanan default yang terdiri dari format: PROJECT_NUMBER-compute@developer.gserviceaccount.com
Di Cloud Shell, identifikasi nomor project saat ini.
gcloud projects list --filter=$projectid
Di Cloud Shell, simpan nomor project sebagai variabel.
project_number=your_project_number
echo $project_number
Di Cloud Shell, perbarui akun layanan Compute default dengan peran kustom, VM_Scheduler.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:$project_number-compute@developer.gserviceaccount.com" --role="projects/$projectid/roles/Vm_Scheduler"
Buat jadwal instance
Di Cloud Shell, buat jadwal mulai dan berhenti.
gcloud compute resource-policies create instance-schedule optimize-notebooks \
--region=us-central1 \
--vm-start-schedule='0 7 * * *' \
--vm-stop-schedule='0 18 * * *' \
--timezone=America/Chicago
Di Cloud Shell, simpan nama notebook Anda.
gcloud compute instances list
notebook_vm=your_notebookvm_name
echo $notebook_vm
Anda dapat menyertakan jadwal instance ke instance VM yang ada, yang terletak di region yang sama dengan jadwal instance.
Di Cloud Shell, kaitkan jadwal dengan notebook Anda.
gcloud compute instances add-resource-policies $notebook_vm \
--resource-policies=optimize-notebooks \
--zone=us-central1-a
13. Pembersihan
Hapus notebook yang dikelola pengguna dari konsol, buka Vertex AI → Workbench, pilih dan hapus notebook.
Dari Cloud Shell, hapus komponen VPC.
gcloud compute routers delete cloud-router-us-central1 --region=us-central1 --quiet
gcloud compute routers nats delete cloud-nat-us-central1 --region=us-central1 --router=cloud-router-us-central1 --quiet
gcloud compute instances remove-resource-policies $notebook_vm \
--resource-policies=optimize-notebooks \
--zone=us-central1-a --quiet
gcloud compute resource-policies delete optimize-notebooks --region=us-central1 --quiet
gcloud compute instances delete $notebook_vm --zone=us-central1-a --quiet
gcloud compute networks subnets delete securevertex-subnet-a --region=us-central1 --quiet
gcloud iam service-accounts delete user-managed-notebook-sa@$projectid.iam.gserviceaccount.com --quiet
gcloud projects remove-iam-policy-binding $projectid --member="serviceAccount:$project_number-compute@developer.gserviceaccount.com" --role="projects/$projectid/roles/Vm_Scheduler"
gcloud iam roles delete Vm_Scheduler --project=$projectid
gcloud compute networks delete securevertex-vpc --quiet
14. Selamat
Bagus! Anda telah berhasil mengonfigurasi dan memvalidasi notebook yang dikelola pengguna yang aman dengan membuat VPC Mandiri kustom menggunakan praktik terbaik penguatan keamanan untuk notebook terkelola dan menerapkan jadwal instance untuk mengoptimalkan pembelanjaan.
Apa selanjutnya?
Lihat beberapa tutorial ini...
Bacaan lebih lanjut & Video
- Mulai menggunakan Notebooks untuk machine learning
- Mulai menggunakan Vertex AI
- Pengantar AI Generatif
Dokumen referensi
- Pengantar Vertex AI Workbench
- Pengantar notebook yang dikelola pengguna
- Menggunakan instance notebook yang dikelola pengguna dalam perimeter layanan
- Buat akun layanan
- Menjadwalkan instance VM untuk dimulai dan dihentikan