Dokumen ini menjelaskan cara membuat grup instance terkelola (MIG) yang menggunakan VM Spot.
Spot VM adalah instance virtual machine (VM) yang dapat Anda peroleh dengan harga diskon besar. Namun, Compute Engine dapat menghentikan atau menghapus Spot VM kapan saja untuk memulihkan kapasitas. Gunakan Spot VM untuk menjalankan workload fault-tolerant, seperti tugas batch processing atau aplikasi stateless, dengan biaya rendah.
Untuk metode lain yang dapat Anda gunakan untuk membuat MIG, lihat Skenario dasar untuk membuat MIG.
Sebelum memulai
- Baca tentang Spot VM, terutama batasannya.
- Pastikan Anda memiliki kuota yang cukup untuk resource yang ingin Anda minta. Untuk mengetahui informasi selengkapnya, lihat Kuota alokasi.
-
Sebelum membuat Spot VM untuk workload, selesaikan langkah-langkah berikut:
Konfigurasi workload Anda untuk mengelola preempti. Secara khusus, sebaiknya Anda menyiapkan skrip untuk menangani preemption yang berjalan sebagai bagian dari workload atau berupa file yang dapat Anda tambahkan dalam metadata VM untuk dijalankan selama penonaktifan. Untuk mengetahui petunjuknya, lihat Mengelola preemption Spot VM.
Sebaiknya Anda melihat data untuk Spot VM guna membantu Anda memilih jenis mesin dan lokasi. Dengan memilih jenis mesin dan lokasi dengan ketersediaan resource yang lebih tinggi, Anda dapat membantu meningkatkan peluang untuk menghindari error ketersediaan resource dan memiliki waktu aktif yang lebih lama sebelum penghentian sementara.
Untuk data historis terkait preempti dan harga, yang sangat berguna saat merencanakan workload jangka panjang, lihat Melihat data harga dan tingkat preempti untuk Spot VM.
Untuk data ketersediaan saat ini, yang sangat berguna tepat sebelum Anda membuat Spot VM untuk workload jangka pendek, lihat Melihat ketersediaan Spot VM.
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan konsol Google Cloud untuk mengakses layanan Google Cloud dan API, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
- Tetapkan region dan zona default.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Peran yang diperlukan
Agar mendapatkan izin yang Anda perlukan untuk membuat MIG yang menggunakan VM Spot, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) di project.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk membuat MIG yang menggunakan VM Spot. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat MIG yang menggunakan Spot VM:
-
Untuk membuat template instance:
compute.instanceTemplates.createdi project -
Untuk membuat MIG:
compute.instanceGroupManagers.createpada project
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Membuat MIG yang menggunakan Spot VM
Untuk membuat MIG yang menggunakan Spot VM, Anda harus menyelesaikan langkah-langkah berikut:
Membuat template instance yang dikonfigurasi untuk membuat Spot VM
Untuk membuat template instance yang dikonfigurasi untuk membuat Spot VM, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Instance templates.
Klik Buat template instance . Halaman Create an instance template akan muncul.
Di kolom Name, masukkan nama untuk template instance.
Di bagian Lokasi, pilih jenis template instance yang ingin Anda buat:
Untuk template instance regional, pilih Regional, lalu pilih region tempat Anda ingin membuat template. Berdasarkan jenis mesin yang ingin Anda gunakan untuk VM Spot, tentukan wilayah yang didukung.
Untuk template instance global, pilih Global.
Di bagian Machine configuration, pilih seri mesin yang didukung untuk VM Spot.
Di bagian Provisioning model, lakukan tindakan berikut:
Dalam daftar VM provisioning model, pilih Spot. Bagian Setelan lanjutan model penyediaan VM akan meluas.
Dalam daftar Durasi pemberitahuan penghentian sementara, pilih opsi berdasarkan cara Anda ingin menangani penghentian sementara.
Jika Anda memilih 120 detik (direkomendasikan), pastikan Anda menangani preemption dalam workload sebelum membuat Spot VM. Misalnya, verifikasi bahwa workload Anda mencakup skrip untuk menyimpan progres Anda yang menunggu untuk dijalankan hingga preempti terdeteksi.
Jika Anda memilih 0 detik (default), pastikan Anda menangani preemption menggunakan skrip penonaktifan. Sebelum membuat Spot VM, buat file yang berisi skrip shutdown yang menyimpan progres Anda saat shutdown disebabkan oleh preemption. Lampirkan skrip penonaktifan ini seperti yang dijelaskan pada langkah berikutnya.
Untuk menentukan apakah akan menghentikan atau menghapus VM Spot saat terjadi preemption, dalam daftar On VM termination, pilih salah satu opsi berikut:
Untuk menghentikan Spot VM, pilih Hentikan.
Untuk menghapus VM Spot, pilih Hapus.
Untuk menambahkan skrip penonaktifan, selesaikan langkah-langkah berikut. Jika Anda memilih 0 detik (default) untuk Durasi notifikasi pengambilalihan, maka langkah ini diperlukan untuk menangani pengambilalihan. Jika tidak, jika Anda memilih 120 detik, langkah ini bersifat opsional.
- Luaskan bagian Advanced options.
- Luaskan bagian Management.
- Di bagian Metadata, klik Tambahkan item.
- Di kolom Key, masukkan
shutdown-scriptuntuk kunci metadata. - Di kolom Value, tambahkan konten skrip shutdown yang menangani preempti.
Opsional: Untuk mengubah jenis atau image boot disk nilai default, di bagian Boot disk, klik Ubah. Kemudian, ikuti prompt untuk mengubah boot disk.
Klik Create.
gcloud
Untuk membuat template instance yang dikonfigurasi untuk membuat
VM Spot, gunakan
perintah gcloud compute instance-templates create.
Perintah berikut akan membuat template instance regional. Jika Anda ingin
membuat template instance global, gunakan perintah yang sama tanpa flag
--instance-template-region.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--instance-template-region=REGION \
--instance-termination-action=TERMINATION_ACTION \
--machine-type=MACHINE_TYPE \
--provisioning-model=SPOT \
--preemption-notice-duration=PREEMPTION_NOTICE_DURATION \
--metadata shutdown-script=SHUTDOWN_SCRIPT
Ganti kode berikut:
INSTANCE_TEMPLATE_NAME: nama template instance yang akan dibuat.IMAGE_PROJECT: project gambar yang berisi gambar; misalnya,debian-cloud. Untuk mengetahui informasi selengkapnya tentang project gambar yang didukung, lihat Gambar publik.IMAGE_FAMILY: kelompok image. Tindakan ini menentukan OS image terbaru yang masih digunakan. Misalnya, jika Anda menentukandebian-12, versi terbaru dalam kelompok image Debian 12 akan digunakan. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.REGION: region tempat membuat template instance. Berdasarkan jenis mesin yang Anda inginkan untuk digunakan VM Spot, tentukan wilayah yang didukung.TERMINATION_ACTION: apakah Compute Engine menghentikan atau menghapus Spot VM saat terjadi preemption. Anda harus menentukan apakah akan menghentikan (STOP) atau menghapus (DELETE) VM.MACHINE_TYPE: jenis mesin yang didukung untuk VM Spot. Jika Anda menentukan jenis mesin N1, Anda harus menyertakan flag--acceleratoruntuk menentukan jumlah dan jenis GPU yang akan dipasang ke VM Anda.PREEMPTION_NOTICE_DURATION: apakah akan mengaktifkan durasi pemberitahuan pengambilalihan. Untuk gcloud CLI, nilainya harus berupa120satau0s.Jika Anda menentukan
120s(direkomendasikan), tangani preempti dalam workload Anda. (Secara opsional, Anda juga dapat menentukan skrip penonaktifan.)Jika Anda menentukan
0s(default), tangani preemption dalam skrip penonaktifan.
SHUTDOWN_SCRIPT: skrip shutdown.Jika Anda menyetel
PREEMPTION_NOTICE_DURATIONke0s(default), maka untuk menangani penghentian sementara, Anda harus menentukan skrip penonaktifan. Untuk mengetahui informasi selengkapnya tentang cara memformat dan menentukan skrip shutdown, lihat Menjalankan skrip shutdown.Jika tidak, jika Anda tidak ingin menentukan skrip penonaktifan, Anda dapat menghapus tanda
--metadata shutdown-script.
REST
Untuk membuat template instance yang dikonfigurasi untuk membuat
Spot VM, buat salah satu permintaan POST berikut:
Untuk membuat template instance regional: metode
regionInstanceTemplates.insertUntuk membuat template instance global: metode
instanceTemplates.insert
Misalnya, untuk membuat template instance regional, buat permintaan seperti berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"scheduling": {
"instanceTerminationAction": "TERMINATION_ACTION",
"provisioningModel": "SPOT",
"preemptionNoticeDuration": { "seconds": PREEMPTION_NOTICE_DURATION }
},
"metadata": {
"items": [
{
"key": "shutdown-script",
"value": "SHUTDOWN_SCRIPT"
}
]
}
}
}
Ganti kode berikut:
PROJECT_ID: ID project tempat template instance akan dibuat.REGION: region tempat membuat template instance. Berdasarkan jenis mesin yang Anda inginkan untuk digunakan VM Spot, tentukan wilayah yang didukung.INSTANCE_TEMPLATE_NAME: nama template instance.IMAGE_PROJECT: project gambar yang berisi gambar; misalnya,debian-cloud. Untuk mengetahui informasi selengkapnya tentang project gambar yang didukung, lihat Gambar publik.IMAGE: tentukan salah satu dari berikut ini:Versi tertentu dari OS image—misalnya,
debian-12-bookworm-v20240617.Kelompok image, yang harus diformat sebagai
family/IMAGE_FAMILY. Tindakan ini menentukan image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukanfamily/debian-12, versi terbaru dalam kelompok image Debian 12 akan digunakan. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.
MACHINE_TYPE: jenis mesin yang didukung untuk VM Spot. Jika Anda menentukan jenis mesin N1, Anda harus menyertakan kolomguestAcceleratorsuntuk menentukan jumlah dan jenis GPU yang akan dipasang ke VM Anda.TERMINATION_ACTION: apakah Compute Engine menghentikan atau menghapus Spot VM saat terjadi preemption. Anda harus menentukan apakah akan menghentikan (STOP) atau menghapus (DELETE) VM.PREEMPTION_NOTICE_DURATION: apakah akan mengaktifkan durasi pemberitahuan pengambilalihan. Untuk REST, nilainya harus berupa120atau0.Jika Anda menentukan
120(direkomendasikan), tangani preempti dalam workload Anda. (Secara opsional, Anda juga dapat menentukan skrip penonaktifan.)Jika Anda menentukan
0(default), tangani preemption dalam skrip penonaktifan.
SHUTDOWN_SCRIPT: skrip shutdown.Jika Anda menyetel
PREEMPTION_NOTICE_DURATIONke0s(default), maka untuk menangani penghentian sementara, Anda harus menentukan skrip penonaktifan. Untuk mengetahui informasi selengkapnya tentang cara memformat dan menentukan skrip shutdown, lihat Menjalankan skrip shutdown.Jika tidak, jika Anda tidak ingin menentukan skrip penonaktifan, Anda dapat menghapus kolom dan sub-kolom
metadata.
TERMINATION_ACTION: Opsional: tentukan tindakan penghentian yang akan dilakukan saat Compute Engine melakukan preempt terhadap VM, baikSTOP(perilaku default) atauDELETE.
Setelah membuat template instance, Anda dapat melihat detail template untuk meninjau propertinya.
Membuat MIG regional atau zona
Untuk membuat MIG regional atau zona, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Instance groups.
Klik Create instance group. Halaman Create instance group akan terbuka.
Di kolom Name, masukkan nama untuk MIG.
Dalam daftar Instance template, pilih template instance yang Anda buat di bagian sebelumnya.
Di kolom Number of instances, masukkan jumlah Spot VM yang akan dibuat di MIG. Jika workload Anda memerlukan VM dengan nama tertentu, masukkan
0untuk melewati pembuatan VM pada tahap ini. Setelah membuat MIG, tambahkan VM dengan nama tertentu ke MIG tersebut.Di bagian Location, tentukan apakah Anda ingin membuat MIG zonal atau regional sebagai berikut:
Untuk membuat MIG zona, pilih Single zone. Atau, untuk membuat MIG regional, pilih Beberapa zona.
Pilih Region dan Zona untuk MIG.
Klik Create.
gcloud
Untuk membuat MIG, gunakan
perintah gcloud compute instance-groups managed create.
Berdasarkan jenis MIG yang ingin Anda buat, sertakan flag berikut dalam perintah:
Untuk membuat MIG zona, sertakan tanda
--zone:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONEUntuk membuat MIG regional, sertakan tanda
--region:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION
Ganti kode berikut:
INSTANCE_GROUP_NAME: nama MIG.INSTANCE_TEMPLATE_URL: URL template instance yang Anda buat di bagian sebelumnya. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:Untuk template instance regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_IDUntuk template instance global:
INSTANCE_TEMPLATE_ID
SIZE: jumlah Spot VM yang akan dibuat di MIG. Jika workload Anda memerlukan nama VM tertentu, tentukan0untuk melewati pembuatan VM pada tahap ini. Setelah membuat MIG, tambahkan VM dengan nama tertentu ke MIG tersebut.ZONE: zona tempat MIG zona akan dibuat. Jika Anda menggunakan template instance regional untuk membuat MIG, Anda harus menentukan zona dalam region yang sama dengan template.REGION: region tempat MIG regional akan dibuat. Jika Anda menggunakan template instance regional untuk membuat MIG, Anda harus menentukan region yang sama dengan region template.
REST
Untuk membuat MIG, buat permintaan POST ke salah satu metode berikut:
Untuk membuat MIG zona, buat permintaan
POSTke metodeinstanceGroupManagers.insert:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "targetSize": SIZE }Untuk membuat MIG regional, buat permintaan
POSTke metoderegionInstanceGroupManagers.insert:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "targetSize": SIZE }
Ganti kode berikut:
PROJECT_ID: ID project tempat MIG regional atau zonal dibuat.ZONE: zona tempat MIG zona akan dibuat. Jika Anda menggunakan template instance regional untuk membuat MIG, Anda harus menentukan zona dalam region yang sama dengan template.REGION: region tempat MIG regional akan dibuat. Jika Anda menggunakan template instance regional untuk membuat MIG, Anda harus menentukan region yang sama dengan region template.INSTANCE_GROUP_NAME: nama MIG.INSTANCE_TEMPLATE_URL: URL template instance yang Anda buat di bagian sebelumnya. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:Untuk template instance regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_IDUntuk template instance global:
INSTANCE_TEMPLATE_ID
SIZE: jumlah Spot VM yang akan dibuat di MIG. Jika workload Anda memerlukan nama VM tertentu, maka tentukan0untuk melewati pembuatan VM pada tahap ini. Setelah membuat MIG, tambahkan VM dengan nama tertentu ke MIG tersebut.
Setelah membuat MIG, Anda dapat melihat detail MIG untuk meninjau propertinya.
Langkah berikutnya
Pelajari lebih lanjut praktik terbaik untuk Spot VM.
Pelajari lebih lanjut cara memperbaiki VM untuk ketersediaan tinggi di MIG.
Pelajari lebih lanjut cara menskalakan VM secara otomatis di MIG.
Pelajari lebih lanjut MIG stateful.