Mempercepat penskalaan horizontal dengan VM yang ditangguhkan dan dihentikan

Dokumen ini menjelaskan cara kerja kumpulan standby instance virtual machine (VM) yang ditangguhkan dan dihentikan, serta cara menggunakan kumpulan standby untuk mempercepat penskalaan grup instance terkelola (MIG).

Sebelum memulai

  • Tinjau halaman pengantar tentang VM yang ditangguhkan dan dihentikan di MIG.
  • Siapkan autentikasi jika Anda belum melakukannya. Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan kode atau contoh 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 Google Cloud konsol untuk mengakses Google Cloud layanan dan API, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI. Setelah penginstalan, 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 .

  • Tetapkan region dan zona default.
  • Terraform

    Untuk menggunakan contoh Terraform di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

    1. Instal Google Cloud CLI.

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

    3. Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:

      gcloud auth application-default login

      Anda tidak perlu melakukan hal ini jika menggunakan Cloud Shell.

      Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, pastikan Anda telah login ke gcloud CLI dengan identitas gabungan Anda.

    Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

    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

Menggunakan MIG API untuk penskalaan otomatis

Sebaiknya gunakan autoscaler Compute Engine untuk penskalaan otomatis MIG Anda. Namun, jika karena alasan tertentu Anda lebih suka menggunakan autoscaler lain, gunakan endpoint MIG API untuk menangani VM yang ditangguhkan dan dihentikan.

Memilih antara kumpulan yang ditangguhkan dan dihentikan

Memilih antara kumpulan yang ditangguhkan dan dihentikan bergantung pada kasus penggunaan spesifik Anda. Untuk mendapatkan performa terbaik, Anda harus bereksperimen dengan berbagai jenis kumpulan standby untuk skenario penskalaan guna menentukan mana yang paling sesuai dengan kebutuhan Anda. Workload yang berbeda mungkin menunjukkan waktu yang lebih singkat untuk ditayangkan dengan opsi yang berbeda. Dalam beberapa kasus, operasi penyalinan status memori dari penyimpanan ke VM mungkin memerlukan waktu lebih lama daripada memulai ulang VM atau membuat VM baru dari awal.

Untuk menemukan pendekatan terbaik, mulai dari panduan berikut:

  • Gunakan VM yang ditangguhkan jika VM Anda memerlukan inisialisasi memori yang memakan waktu, karena VM yang ditangguhkan mempertahankan status memori. Pastikan aplikasi Anda dapat ditangguhkan dan dilanjutkan. Mempertahankan status memori memerlukan penyimpanan tambahan dan mungkin dikenai biaya tambahan.
  • Gunakan VM yang dihentikan jika inisialisasi VM Anda berfokus terutama pada inisialisasi data yang disimpan di persistent disk.

Mengedit kebijakan standby di MIG

Bagian ini menjelaskan cara menetapkan mode kumpulan standby ke kumpulan penskalaan dan penundaan awal.

Konsol

  1. Di konsol Google Cloud , buka halaman Instance groups.

    Buka Instance groups

  2. Klik nama grup instance yang ingin Anda edit.

  3. Klik Edit untuk mengubah grup instance terkelola ini.

  4. Klik Advanced options untuk meluaskan bagian tersebut.

  5. Di bagian Standby pool, pilih Scale-out.

  6. Di kolom Initial delay, masukkan jumlah detik yang harus ditunggu MIG sebelum menangguhkan atau menghentikan VM. Penundaan awal memberi skrip inisialisasi waktu untuk menyiapkan VM Anda untuk penskalaan cepat.

  7. Klik Save.

gcloud

Gunakan perintah instance-groups managed updatedan tentukan mode operasi serta penundaan awal.

gcloud compute instance-groups managed update MIG_NAME \
  --standby-policy-mode=scale-out-pool \
  --standby-policy-initial-delay=DELAY \
  [--region=REGION | --zone=ZONE]

Ganti kode berikut:

  • MIG_NAME: nama MIG.
  • DELAY: jumlah detik yang harus ditunggu MIG sebelum menangguhkan atau menghentikan VM. Penundaan awal memberi skrip inisialisasi waktu untuk menyiapkan VM Anda untuk penskalaan cepat.
  • REGION: untuk MIG regional, region tempat MIG berada.
  • ZONE: untuk MIG zona, zona tempat MIG berada.

Terraform

Contoh berikut membuat MIG zona dengan kebijakan standby. Gunakan blok standby_policy untuk menetapkan penundaan awal dan menetapkan mode ke SCALE_OUT_POOL.

Contoh ini menggunakan google_compute_instance_group_manager resource. Untuk MIG regional, gunakan google_compute_region_instance_group_manager resource.

resource "google_compute_instance_group_manager" "default" {
  name               = "standby-mig"
  base_instance_name = "test"
  target_size        = 3
  zone               = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  standby_policy {
    initial_delay_sec = 50
    mode              = "SCALE_OUT_POOL"
  }
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

REST

Gunakan metode instanceGroupManager.patch dan tentukan mode operasi serta penundaan awal dalam isi permintaan. Untuk MIG regional, gunakan metode regionInstanceGroupManager.patch.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"standbyPolicy": {
  "mode": "SCALE_OUT_POOL",
  "initialDelaySec": DELAY
}
// ...
}

Ganti kode berikut:

  • PROJECT_ID: ID project Anda.
  • ZONE: untuk MIG zona, zona tempat MIG berada.
    • Untuk MIG regional, ganti zones/ZONE dengan regions/REGION dan tentukan region MIG.
  • MIG_NAME: nama MIG.
  • DELAY: jumlah detik yang harus ditunggu MIG sebelum menangguhkan atau menghentikan VM. Penundaan awal memberi skrip inisialisasi waktu untuk menyiapkan VM Anda untuk penskalaan cepat.

Mengubah ukuran kumpulan standby di MIG

Bagian ini menjelaskan cara mengubah ukuran kumpulan standby VM yang ditangguhkan dan dihentikan di MIG.

Konsol

  1. Di konsol Google Cloud , buka halaman Instance groups.

    Buka Instance groups

  2. Klik nama grup instance yang ingin Anda edit.

  3. Klik Edit untuk mengubah grup instance terkelola ini.

  4. Klik Advanced options untuk meluaskan bagian tersebut.

  5. Di bagian Standby pool, masukkan ukuran baru di kolom Suspended VMs dan Stopped VMs.

  6. Klik Save.

gcloud

Gunakan perintah instance-groups managed updatedengan flag --suspended-size dan --stopped-size.

gcloud compute instance-groups managed update MIG_NAME \
--suspended-size=SUSPENDED_SIZE \
--stopped-size=STOPPED_SIZE \
[--region=REGION | --zone=ZONE]

Ganti kode berikut:

  • MIG_NAME: nama MIG tempat menangguhkan instance.
  • SUSPENDED_SIZE: jumlah VM yang ditangguhkan yang harus dipertahankan MIG pada waktu tertentu.
  • STOPPED_SIZE: jumlah VM yang dihentikan yang harus dipertahankan MIG pada waktu tertentu.
  • REGION: untuk MIG regional, region tempat MIG berada.
  • ZONE: untuk MIG zona, zona tempat MIG berada.

Terraform

Contoh berikut membuat MIG zona dengan ukuran target untuk VM yang ditangguhkan dan dihentikan. Untuk menetapkan ukuran target, gunakan argumen target_suspended_size dan target_stopped_size.

Contoh ini menggunakan google_compute_instance_group_manager resource. Untuk MIG regional, gunakan google_compute_region_instance_group_manager resource.

resource "google_compute_instance_group_manager" "default" {
  name                  = "standby-mig"
  base_instance_name    = "test"
  target_size           = 1
  target_suspended_size = 1
  target_stopped_size   = 2
  zone                  = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  standby_policy {
    initial_delay_sec = 50
    mode              = "SCALE_OUT_POOL"
  }
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

REST

Gunakan metode instanceGroupManager.patchdan tentukan ukuran kumpulan VM yang ditangguhkan dan dihentikan dalam isi permintaan. Untuk MIG regional, gunakan metode regionInstanceGroupManager.patch.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"targetSuspendedSize": SUSPENDED_SIZE,
"targetStoppedSize": STOPPED_SIZE
// ...
}

Ganti kode berikut:

  • PROJECT_ID: ID project Anda.
  • ZONE: untuk MIG zona, zona tempat MIG berada.
    • Untuk MIG regional, ganti zones/ZONE dengan regions/REGION dan tentukan region MIG.
  • MIG_NAME: nama MIG tempat menghentikan instance.
  • SUSPENDED_SIZE: jumlah VM yang ditangguhkan yang harus dipertahankan MIG pada waktu tertentu.
  • STOPPED_SIZE: jumlah VM yang dihentikan yang harus dipertahankan MIG pada waktu tertentu.

Langkah berikutnya