Mempercepat penskalaan keluar dengan VM yang ditangguhkan dan dihentikan


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

Sebelum memulai

  • Tinjau halaman pengantar tentang VM yang ditangguhkan dan dihentikan di MIG.
  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses yang digunakan untuk memverifikasi identitas Anda agar dapat mengakses Google Cloud layanan dan API. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

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

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.

      REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Untuk informasi selengkapnya, lihat Mengautentikasi untuk menggunakan REST dalam Google Cloud dokumentasi autentikasi.

Menggunakan MIG API untuk penskalaan otomatis

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

Dengan MIG API, Anda dapat menghubungkan autoscaler, misalnya autoscaler GKE, dan menggunakan kumpulan VM standby untuk melakukan penskalaan keluar yang lebih cepat.

Memilih antara kumpulan yang ditangguhkan dan dihentikan

Memilih antara pool yang ditangguhkan dan dihentikan bergantung pada kasus penggunaan Anda. Untuk performa terbaik, Anda harus bereksperimen dengan berbagai jenis kumpulan cadangan untuk skenario penskalaan untuk menentukan mana yang paling sesuai dengan kebutuhan Anda. Beban kerja yang berbeda mungkin menunjukkan waktu yang lebih singkat untuk ditayangkan dengan opsi yang berbeda. Dalam beberapa kasus, operasi menyalin 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, mulailah 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 dapat menimbulkan biaya tambahan.
  • Gunakan VM yang dihentikan jika inisialisasi VM Anda terutama berfokus pada inisialisasi data yang disimpan di persistent disk.

Mengedit kebijakan standby di MIG

Bagian ini menjelaskan cara menetapkan penundaan awal dan cara menetapkan mode kumpulan standby untuk menskalakan kumpulan.

Konsol

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

    Buka Instance groups

  2. Di kolom Name pada daftar, klik nama grup instance tempat Anda ingin mengedit kebijakan standby.

  3. Klik Edit untuk mengubah grup instance terkelola ini.

  4. Klik Show advanced configuration.

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

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

  7. Klik Simpan.

gcloud

Gunakan perintah instance-groups managed update dan 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 resource google_compute_instance_group_manager. Untuk MIG regional, gunakan resource google_compute_region_instance_group_manager.

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 berhenti di MIG.

Konsol

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

    Buka Instance groups

  2. Di kolom Name pada daftar, klik nama grup instance tempat Anda ingin mengedit ukuran kumpulan standby.

  3. Klik Edit untuk mengubah grup instance terkelola ini.

  4. Klik Show advanced configuration.

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

  6. Klik Simpan.

gcloud

Gunakan perintah instance-groups managed update dengan 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 dikelola 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 resource google_compute_instance_group_manager. Untuk MIG regional, gunakan resource google_compute_region_instance_group_manager.

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.patch dan 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: project ID untuk permintaan.
  • 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 dikelola MIG pada waktu tertentu.
  • STOPPED_SIZE: jumlah VM yang dihentikan yang harus dipertahankan MIG pada waktu tertentu.

Langkah berikutnya