Dalam tutorial ini, Anda akan mempelajari cara membuat file konfigurasi Terraform dan menyediakan instance notebook yang dikelola pengguna di Vertex AI dalam Mode akun layanan.
Gunakan alat berikut untuk menyelesaikan langkah-langkah dalam tutorial ini:
Terraform CLI: Terraform sudah diinstal sebelumnya di Cloud Shell. Anda tidak perlu menginstal Terraform secara terpisah untuk menggunakan perintah Terraform CLI.
Cloud Shell Editor: Gunakan Cloud Shell Editor untuk membuat dan mengelola file konfigurasi Terraform, serta mengelola struktur folder.
Terminal Cloud Shell: Gunakan terminal Cloud Shell untuk menjalankan perintah Terraform CLI berikut, seperti
terraform init
,terraform plan
,terraform apply
, danterraform destroy
.
Sebelum memulai
Sebelum Anda dapat membangun infrastruktur untuk resource Vertex AI menggunakan Terraform, siapkan project Google Cloud dan lingkungan pengembangan. Bagian ini juga menjelaskan cara mengaktifkan Vertex AI API, yang digunakan Terraform untuk berinteraksi dengan resource di project Anda.
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Vertex AI.
Peran yang diperlukan
Jika sudah membuat project, Anda memiliki peran IAM
Pemilik (roles/owner
)
pada project, yang mencakup semua izin yang diperlukan. Langsung ke bagian berikutnya.
Jika Anda tidak membuat project sendiri, lanjutkan di bagian ini.
Untuk memastikan bahwa akun pengguna Anda memiliki izin yang diperlukan untuk membuat instance notebook yang dikelola pengguna Vertex AI Workbench menggunakan Terraform, minta administrator Anda untuk memberikan peran IAM berikut pada project kepada akun pengguna Anda:
-
Admin Notebooks (
roles/notebooks.admin
) untuk membuat dan menghapus instance di Vertex AI Workbench. -
Service Account User (
roles/iam.serviceAccountUser
) untuk menjalankan operasi sebagai akun layanan. Tutorial ini tidak menentukan akun layanan, sehingga instance notebook yang dikelola pengguna menggunakan akun layanan Compute Engine default. -
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer
) untuk memeriksa status dan operasi layanan, serta memakai kuota dan penagihan untuk resource project.
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Administrator mungkin juga dapat memberi akun pengguna Anda izin yang diperlukan melalui peran khusus atau peran yang telah ditetapkan lainnya.
Membuat struktur folder dan file konfigurasi Terraform
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
- Di terminal Cloud Shell, jalankan perintah berikut untuk menetapkan direktori utama sebagai direktori aktif:
cd
- Jalankan perintah berikut untuk membuat folder baru bernama
terraform
:
mkdir terraform
- Luncurkan Cloud Shell Editor.
- Di panel Penjelajah, klik kanan folder
terraform
, lalu klik File Baru. - Masukkan
main.tf
sebagai nama file, lalu klik OK.
Menentukan infrastruktur di file konfigurasi Terraform
Buka file
main.tf
di Cloud Shell Editor.Ganti placeholder PROJECT_NAME dan LOCATION di contoh konfigurasi Terraform berikut, lalu salin contoh tersebut ke file
main.tf
:resource "google_project_service" "notebooks" { provider = google service = "notebooks.googleapis.com" disable_on_destroy = false } resource "google_notebooks_instance" "basic_instance" { project = "PROJECT_ID" name = "notebooks-instance-basic" provider = google location = "LOCATION" machine_type = "e2-medium" vm_image { project = "deeplearning-platform-release" image_family = "tf-ent-2-9-cu113-notebooks" } depends_on = [ google_project_service.notebooks ] }
PROJECT_ID: Masukkan project ID Google Cloud.
LOCATION: Masukkan region dan zona untuk instance notebook yang dikelola pengguna. Contoh,
us-west2-b
. Untuk mendapatkan performa jaringan terbaik, pilih region yang paling dekat secara geografis dengan Anda. Lihat lokasi notebook yang dikelola pengguna yang tersedia.
Simpan file
main.tf
.
Melakukan inisialisasi direktori kerja yang berisi file konfigurasi Terraform
Untuk membuka terminal Cloud Shell, pada toolbar Cloud Shell Editor, klik Open Terminal.
Di terminal Cloud Shell, jalankan perintah berikut untuk menetapkan folder
terraform
sebagai direktori kerja saat ini:cd ~/terraform
Jalankan perintah berikut:
terraform init
Terraform menginisialisasi direktori kerja. Output berikut akan muncul:
Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
Melihat pratinjau rencana eksekusi berdasarkan konfigurasi Terraform
Rencana eksekusi Terraform menunjukkan perubahan yang akan dilakukan Terraform pada infrastruktur dan layanan Vertex AI.
Jalankan perintah berikut untuk melihat rencana eksekusi Terraform.
terraform plan
Jika diminta untuk memberikan otorisasi pada Cloud Shell, klik Authorize Cloud Shell menggunakan kredensial pengguna secara default setelah memberi otorisasi.
Anda akan melihat output yang mirip dengan berikut ini:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following
symbols:
+ create
Terraform will perform the following actions:
# google_notebooks_instance.basic_instance will be created
+ resource "google_notebooks_instance" "basic_instance" {
+ create_time = (known after apply)
+ id = (known after apply)
+ labels = (known after apply)
+ location = "us-west2-b"
+ machine_type = "e2-medium"
+ name = "notebooks-instance-basic"
+ network = (known after apply)
+ project = "my_project"
+ proxy_uri = (known after apply)
+ service_account = (known after apply)
+ state = (known after apply)
+ subnet = (known after apply)
+ update_time = (known after apply)
+ shielded_instance_config {
+ enable_integrity_monitoring = (known after apply)
+ enable_secure_boot = (known after apply)
+ enable_vtpm = (known after apply)
}
+ vm_image {
+ image_family = "tf-ent-2-9-cu113-notebooks"
+ project = "deeplearning-platform-release"
}
}
# google_project_service.notebooks will be created
+ resource "google_project_service" "notebooks" {
+ disable_on_destroy = false
+ id = (known after apply)
+ project = (known after apply)
+ service = "notebooks.googleapis.com"
}
Plan: 2 to add, 0 to change, 0 to destroy.
my_project
menunjukkan project ID Google Cloud yang Anda tentukan.us-west2-b
menunjukkan region dan zona untuk instance notebook yang dikelola pengguna yang Anda tentukan.
Menerapkan perubahan yang diusulkan dalam rencana eksekusi
Jalankan perintah berikut untuk menerapkan perubahan dari rencana eksekusi ke infrastruktur Vertex AI dan membuat instance notebook yang dikelola pengguna:
terraform apply
Anda akan melihat output yang mirip dengan berikut ini:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # google_notebooks_instance.basic_instance will be created + resource "google_notebooks_instance" "basic_instance" { + create_time = (known after apply) + id = (known after apply) + labels = (known after apply) + location = "us-west2-b" + machine_type = "e2-medium" + name = "notebooks-instance-basic" + network = (known after apply) + project = "my_project" + proxy_uri = (known after apply) + service_account = (known after apply) + state = (known after apply) + subnet = (known after apply) + update_time = (known after apply) + shielded_instance_config { + enable_integrity_monitoring = (known after apply) + enable_secure_boot = (known after apply) + enable_vtpm = (known after apply) } + vm_image { + image_family = "tf-ent-2-9-cu113-notebooks" + project = "deeplearning-platform-release" } } # google_project_service.notebooks will be created + resource "google_project_service" "notebooks" { + disable_on_destroy = false + id = (known after apply) + project = (known after apply) + service = "notebooks.googleapis.com" } Plan: 2 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:
my_project
menunjukkan project ID Google Cloud yang Anda tentukan.us-west2-b
menunjukkan region dan zona untuk instance notebook yang dikelola pengguna yang Anda tentukan.
Ketik
yes
dan tekan Enter. Anda akan melihat output yang mirip dengan berikut ini:Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
Melihat instance notebook yang dikelola pengguna
Di konsol Google Cloud, buka halaman Notebook yang dikelola pengguna.
Buka Notebook yang dikelola pengguna
Notebook baru bernama "notebooks-instance-basic" muncul tercantum dalam tabel. Perhatikan bahwa instance notebook yang dikelola pengguna baru mungkin memerlukan waktu beberapa menit untuk disediakan setelah Anda menjalankan terraform apply
.
Membersihkan project
Bersihkan resource Google Cloud yang Anda buat selama berlangsungnya tutorial ini. Ikuti langkah-langkah berikut untuk menghindari biaya tidak terduga dari beberapa resource:
Di terminal Cloud Shell, jalankan perintah berikut untuk menetapkan folder
terraform
sebagai direktori kerja saat ini:cd ~/terraform
Untuk menghapus resource Vertex AI yang Anda buat berdasarkan konfigurasi Terraform, jalankan perintah berikut:
terraform destroy
Anda akan melihat output yang mirip dengan berikut ini:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: - destroy Terraform will perform the following actions: # google_notebooks_instance.basic_instance will be destroyed - resource "google_notebooks_instance" "basic_instance" { - create_time = "2022-12-01T21:14:05.065893475Z" -> null - id = "projects/my_project/locations/us-west2-b/instances/notebooks-instance-basic" -> null - install_gpu_driver = false -> null - labels = { - "goog-caip-notebook" = "" } -> null - location = "us-west2-b" -> null - machine_type = "e2-medium" -> null - name = "notebooks-instance-basic" -> null - network = "https://www.googleapis.com/compute/v1/projects/my_project/global/networks/default" -> null - no_proxy_access = false -> null - no_public_ip = false -> null - project = "my_project" -> null - service_account = "329223940713-compute@developer.gserviceaccount.com" -> null - service_account_scopes = [] -> null - state = "PROVISIONING" -> null - subnet = "https://www.googleapis.com/compute/v1/projects/my_project/regions/us-west2/subnetworks/default" -> null - tags = [] -> null - update_time = "2022-12-01T21:14:19.048432376Z" -> null - shielded_instance_config { - enable_integrity_monitoring = true -> null - enable_secure_boot = false -> null - enable_vtpm = true -> null } - vm_image { - image_family = "tf-ent-2-9-cu113-notebooks" -> null - project = "deeplearning-platform-release" -> null } } # google_project_service.notebooks will be destroyed - resource "google_project_service" "notebooks" { - disable_on_destroy = false -> null - id = "my_project/notebooks.googleapis.com" -> null - project = "my_project" -> null - service = "notebooks.googleapis.com" -> null } Plan: 0 to add, 0 to change, 2 to destroy. Do you really want to destroy all resources? Terraform will destroy all your managed infrastructure, as shown above. There is no undo. Only 'yes' will be accepted to confirm. Enter a value:
my_project
menunjukkan project ID Google Cloud yang Anda tentukan.us-west2-b
menunjukkan region dan zona untuk instance notebook yang dikelola pengguna yang Anda tentukan.
Ketik
yes
dan tekan Enter. Anda akan melihat output yang mirip dengan berikut ini:Destroy complete! Resources: 2 destroyed.
Untuk memverifikasi bahwa instance notebook yang dikelola pengguna telah dihapus, buka halaman Notebook yang dikelola pengguna.
Untuk menghapus folder
terraform
beserta isinya, klik kanan folderterraform
di panel Penjelajah, lalu klik Hapus.Saat diminta, klik OK untuk mengonfirmasi.
Lebih banyak cara untuk menggunakan Terraform di Vertex AI
Tutorial ini menunjukkan cara menggunakan Terraform dengan hanya membuat satu file konfigurasi dan menyediakan infrastruktur berdasarkan satu resource Terraform. Anda juga dapat menggunakan Terraform dengan cara berikut:
Menambahkan beberapa resource Terraform ke file konfigurasi Terraform yang sama. Untuk mengetahui daftar resource Terraform untuk Vertex AI, lihat Resource Terraform yang tersedia untuk Vertex AI.
Membuat struktur direktori yang terdiri dari beberapa folder dan file konfigurasi Terraform. Misalnya, Anda dapat membuat folder dan file konfigurasi Terraform terpisah untuk setiap jenis resource Terraform.
Langkah selanjutnya
Pelajari lebih lanjut resource Terraform
google_notebooks_instance
di registry Terraform.Pelajari lebih lanjut notebook yang dikelola pengguna dan Vertex AI Workbench.
Instal Terraform di antarmuka command line lokal Anda.
Pelajari Terraform lebih lanjut di situs Terraform Developer.
Lihat dokumentasi resource Terraform di registry Terraform.