Mengurangi waktu penonaktifan instance Compute Engine


Dokumen ini menjelaskan cara mengurangi waktu penonaktifan untuk instance Compute Engine dengan mengonfigurasi instance agar melewati penonaktifan OS tamu saat dihentikan atau dihapus.

Jika Anda mengonfigurasi instance untuk melewati penonaktifan OS tamu saat dihentikan atau dihapus, Compute Engine akan segera menonaktifkan OS tamu saat status instance berubah menjadi STOPPING. Tindakan ini membantu Anda melepaskan kuota atau resource lebih cepat dengan mempercepat penghentian atau penghapusan instance. Untuk mempelajari lebih lanjut fase yang dilalui instance selama penghentian atau penghapusan, termasuk interval default untuk penonaktifan OS tamu yang bersih, lihat Operasi penghentian.

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    2. Set a default region and zone.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, Anda menggunakan kredensial yang Anda berikan ke gcloud CLI.

      Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      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

Untuk mendapatkan izin yang Anda perlukan guna mengonfigurasi instance agar melewati penonaktifan OS tamu, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengonfigurasi instance agar melewati penonaktifan OS tamu. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengonfigurasi instance agar melewati penonaktifan OS tamu:

  • Untuk membuat instance:
    • compute.instances.create pada project
    • Untuk menggunakan image kustom guna membuat VM: compute.images.useReadOnly pada image
    • Untuk menggunakan snapshot untuk membuat VM: compute.snapshots.useReadOnly pada snapshot
    • Untuk menggunakan template instance guna membuat VM: compute.instanceTemplates.useReadOnly di template instance
    • Untuk menetapkan jaringan lama ke VM: compute.networks.use pada project
    • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use di project
    • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama: compute.networks.useExternalIp di project
    • Untuk menentukan subnet bagi VM: compute.subnetworks.use pada project atau pada subnet yang dipilih
    • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC: compute.subnetworks.useExternalIp di project atau di subnet yang dipilih
    • Untuk menetapkan metadata instance VM untuk VM: compute.instances.setMetadata di project
    • Untuk menyetel tag untuk VM: compute.instances.setTags di VM
    • Untuk menyetel label VM: compute.instances.setLabels di VM
    • Untuk menyetel akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
    • Untuk membuat disk baru untuk VM: compute.disks.create di project
    • Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis: compute.disks.use pada disk
    • Untuk memasang disk yang ada dalam mode hanya baca: compute.disks.useReadOnly pada disk
  • Untuk membuat template instance: compute.instanceTemplates.create pada project
  • Untuk memperbarui instance: compute.instances.update pada instance

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Mengonfigurasi instance untuk melewati penonaktifan OS tamu

Untuk mengonfigurasi instance komputasi agar melewati penonaktifan OS tamu saat Anda menghentikan atau menghapus instance, gunakan salah satu metode berikut:

Mengonfigurasi penonaktifan OS tamu di instance yang ada

Anda hanya dapat mengonfigurasi instance komputasi untuk melewati penonaktifan OS tamu jika instance dihentikan (TERMINATED).

Untuk mengonfigurasi instance agar melewati penonaktifan OS tamu, pilih salah satu opsi berikut:

gcloud

  1. Jika Anda belum melakukannya, hentikan instance.

  2. Untuk mengonfigurasi instance agar melewati penonaktifan OS tamu, gunakan perintah gcloud beta compute instances set-scheduling dengan flag --skip-guest-os-shutdown:

    gcloud beta compute instances set-scheduling INSTANCE_NAME \
        --skip-guest-os-shutdown \
        --zone=ZONE
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance.

    • ZONE: zona tempat instance berada.

REST

  1. Jika Anda belum melakukannya, hentikan instance.

  2. Untuk mengonfigurasi instance agar melewati penonaktifan OS tamu, buat permintaan POST ke metode instances.setScheduling beta. Dalam isi permintaan, sertakan kolom skipGuestOsShutdown dan tetapkan ke true:

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling
    
    {
      "skipGuestOsShutdown": true
    }
    

Untuk mengetahui informasi selengkapnya tentang cara mengupdate instance, lihat Memperbarui properti instance.

Mengonfigurasi penonaktifan OS tamu saat Anda membuat instance

Untuk membuat instance komputasi yang dikonfigurasi untuk melewati penonaktifan OS tamu, pilih salah satu opsi berikut:

gcloud

Untuk membuat instance yang dikonfigurasi untuk melewati penonaktifan OS tamu, gunakan perintah gcloud compute instances create dengan flag --skip-guest-os-shutdown:

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --skip-guest-os-shutdown \
    --zone=ZONE

Ganti kode berikut:

  • INSTANCE_NAME: nama instance.

  • MACHINE_TYPE: jenis mesin yang akan digunakan untuk instance.

  • ZONE: zona tempat Anda ingin membuat instance.

REST

Untuk membuat instance yang dikonfigurasi untuk melewati penonaktifan OS tamu, buat permintaan POST ke metode instances.insert. Dalam isi permintaan, sertakan kolom skipGuestOsShutdown yang ditetapkan ke true:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "skipGuestOsShutdown": true
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin membuat instance.

  • ZONE: zona tempat Anda ingin membuat instance.

  • INSTANCE_NAME: nama instance.

  • MACHINE_TYPE: jenis mesin yang akan digunakan untuk 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 image OS—misalnya, debian-12-bookworm-v20240617.

    • Kelompok image, yang harus Anda format sebagai family/IMAGE_FAMILY. Nilai ini menentukan image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan menggunakan versi terbaru dalam kelompok image Debian 12. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.

Untuk mengetahui informasi selengkapnya tentang cara membuat instance, lihat Membuat dan memulai instance Compute Engine.

Mengonfigurasi penonaktifan OS tamu saat Anda membuat instance secara massal

Untuk membuat instance komputasi secara massal yang dikonfigurasi untuk melewati penonaktifan OS tamu, pilih salah satu opsi berikut:

gcloud

Untuk membuat instance secara massal yang dikonfigurasi untuk melewati penonaktifan OS tamu, gunakan perintah gcloud compute instances bulk create dengan flag --skip-guest-os-shutdown.

Misalnya, untuk membuat instance secara massal yang menggunakan pola nama dalam satu zona, jalankan perintah berikut:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --skip-guest-os-shutdown \
    --zone=ZONE

Ganti kode berikut:

  • COUNT: jumlah instance yang akan dibuat.

  • MACHINE_TYPE: jenis mesin yang akan digunakan untuk instance.

  • NAME_PATTERN: pola nama untuk instance. Untuk mengganti urutan angka dalam nama instance, gunakan urutan karakter hash (#). Misalnya, jika Anda menggunakan instance-# sebagai pola nama, Compute Engine akan membuat instance dengan nama yang diawali dengan instance-1, instance-2, dan melanjutkan pola inkremental ini hingga jumlah instance yang Anda tentukan di COUNT.

  • ZONE: zona tempat Anda ingin membuat instance.

REST

Untuk membuat instance secara massal yang dikonfigurasi untuk melewati penonaktifan OS tamu, buat permintaan POST ke metode instances.bulkInsert. Dalam isi permintaan, sertakan kolom skipGuestOsShutdown yang ditetapkan ke true.

Misalnya, untuk membuat instance secara massal yang menggunakan pola nama dalam satu zona, buat permintaan POST sebagai berikut:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "skipGuestOsShutdown": true
    }
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin membuat instance secara massal.

  • ZONE: zona tempat Anda ingin membuat instance.

  • COUNT: jumlah instance yang akan dibuat.

  • NAME_PATTERN: pola nama untuk instance. Untuk mengganti urutan angka dalam nama instance, gunakan urutan karakter hash (#). Misalnya, jika Anda menggunakan instance-# sebagai pola nama, Compute Engine akan membuat instance dengan nama yang diawali dengan instance-1, instance-2, dan melanjutkan pola inkremental ini hingga jumlah instance yang Anda tentukan di COUNT.

  • MACHINE_TYPE: jenis mesin yang akan digunakan untuk 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 image OS—misalnya, debian-12-bookworm-v20240617.

    • Kelompok image, yang harus Anda format sebagai family/IMAGE_FAMILY. Nilai ini menentukan image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan menggunakan versi terbaru dalam kelompok image Debian 12. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.

Untuk mengetahui informasi selengkapnya tentang cara membuat instance secara massal, lihat Membuat instance secara massal.

Mengonfigurasi penonaktifan OS tamu saat Anda membuat template instance

Setelah membuat template instance yang dikonfigurasi untuk melewati penonaktifan OS tamu saat Anda menghentikan atau menghapus instance komputasi, Anda dapat menggunakan template instance tersebut untuk melakukan hal berikut:

Untuk membuat template instance yang dikonfigurasi agar melewati penonaktifan OS tamu, pilih salah satu opsi berikut:

gcloud

Untuk membuat template instance yang dikonfigurasi untuk melewati penonaktifan OS tamu, gunakan perintah gcloud compute instance-templates create dengan flag --skip-guest-os-shutdown.

Misalnya, untuk membuat template instance regional yang menentukan untuk melewati penonaktifan OS tamu, jalankan perintah berikut. Jika Anda ingin membuat template instance global, gunakan perintah yang sama tanpa flag --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --skip-guest-os-shutdown

Ganti kode berikut:

  • INSTANCE_TEMPLATE_NAME: nama template instance.

  • REGION: region tempat Anda ingin membuat template instance.

  • MACHINE_TYPE: jenis mesin yang akan ditentukan dalam template instance.

REST

Untuk membuat template instance yang dikonfigurasi agar melewati penonaktifan OS tamu, buat permintaan POST ke salah satu metode berikut:

Dalam isi permintaan, sertakan kolom skipGuestOsShutdown yang ditetapkan ke true.

Misalnya, untuk membuat template instance regional yang menentukan untuk melewati penonaktifan OS tamu, buat permintaan POST sebagai 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": {
      "skipGuestOsShutdown": true
    }
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin membuat template instance.

  • REGION: region tempat Anda ingin membuat template instance.

  • 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 image OS—misalnya, debian-12-bookworm-v20240617.

    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini menentukan image OS terbaru yang tidak digunakan lagi. Misalnya, jika Anda menentukan family/debian-12, versi terbaru dalam kelompok image Debian 12 akan digunakan. Untuk mengetahui informasi selengkapnya tentang penggunaan kelompok image, lihat Praktik terbaik kelompok image.

  • MACHINE_TYPE: jenis mesin yang akan ditentukan dalam template instance.

Untuk mengetahui informasi selengkapnya tentang cara membuat template instance, lihat Membuat template instance.

Melihat setelan penonaktifan OS tamu

Anda dapat memeriksa apakah Compute Engine melewati penonaktifan OS tamu saat Anda menghentikan atau menghapus instance komputasi.

Untuk melihat waktu penonaktifan OS tamu di instance, pilih salah satu opsi berikut:

gcloud

Untuk melihat detail instance dan apakah instance tersebut melewati penonaktifan OS tamu, gunakan perintah gcloud compute instances describe:

gcloud compute instances describe INSTANCE_NAME \
    --zone=ZONE

Ganti kode berikut:

  • INSTANCE_NAME: nama instance.

  • ZONE: zona tempat instance berada.

Jika Anda mengonfigurasi instance untuk melewati penonaktifan OS tamu, maka output akan berisi kolom skipGuestOsShutdown yang ditetapkan ke true, seperti dalam contoh berikut:

...
scheduling:
  automaticRestart: true
  skipGuestOsShutdown: true
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD
...

Jika tidak, jika kolom skipGuestOsShutdown tidak ada atau disetel ke false, OS tamu akan menggunakan waktu penonaktifan default.

REST

Untuk melihat detail instance dan apakah instance tersebut melewati penonaktifan OS tamu, buat permintaan GET ke metode instances.get:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Ganti kode berikut:

  • PROJECT_ID: ID project tempat instance berada.

  • ZONE: zona tempat instance berada.

  • INSTANCE_NAME: nama instance.

Jika Anda mengonfigurasi instance untuk melewati penonaktifan OS tamu, maka output akan berisi kolom skipGuestOsShutdown yang ditetapkan ke true, seperti dalam contoh berikut:

{
  ...
  "scheduling": {
    "automaticRestart": true,
    "skipGuestOsShutdown": true,
    "onHostMaintenance": "MIGRATE",
    "preemptible": false,
    "provisioningModel": "STANDARD"
  },
  ...
}

Jika tidak, jika kolom skipGuestOsShutdown tidak ada atau disetel ke false, OS tamu akan menggunakan waktu penonaktifan default.

Langkah berikutnya