Mempercepat penskalaan keluar dengan VM yang ditangguhkan dan dihentikan


Dokumen ini menjelaskan cara kerja pool standby instance virtual machine (VM) yang ditangguhkan dan dihentikan serta cara menggunakan pool standby untuk mempercepat penskalaan 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 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:

    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. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      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. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        3. To initialize the gcloud CLI, run the following command:

          gcloud init
        4. 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.

          If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

        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.

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        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 memilih menggunakan autoscaler lain, 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 penskalaan yang lebih cepat.

Memilih antara kumpulan yang ditangguhkan dan dihentikan

Memilih antara pool yang ditangguhkan dan dihentikan bergantung pada kasus penggunaan spesifik Anda. Untuk performa terbaik, Anda harus bereksperimen dengan berbagai jenis kumpulan siaga untuk skenario penskalaan horizontal guna menentukan jenis yang paling sesuai dengan kebutuhan Anda. Beban kerja yang berbeda mungkin menunjukkan waktu penayangan yang lebih singkat 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, mulailah dari panduan berikut:

  • Gunakan VM yang ditangguhkan jika VM Anda memerlukan inisialisasi memori yang memakan waktu lama, 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 berfokus terutama pada inisialisasi data yang disimpan di persistent disk.

Mengedit kebijakan siaga di MIG

Bagian ini menjelaskan cara menyetel penundaan awal dan cara menyetel mode pool siaga untuk menskalakan pool.

Konsol

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

    Buka Instance groups

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

  3. Klik Edit untuk mengubah grup instance terkelola ini.

  4. Klik Tampilkan konfigurasi lanjutan.

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

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

  7. Klik Simpan.

gcloud

Gunakan perintah instance-groups managed update dan tentukan mode operasi dan 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 agar dapat melakukan penskalaan horizontal dengan 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 siaga. Gunakan blok standby_policy untuk menyetel penundaan awal dan menyetel mode ke SCALE_OUT_POOL.

Contoh ini menggunakan google_compute_instance_group_manager resource. 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 dan penundaan awal di 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 agar dapat melakukan penskalaan horizontal dengan cepat.

Mengubah ukuran pool siaga di MIG

Bagian ini menjelaskan cara mengubah ukuran pool siaga VM yang ditangguhkan dan dihentikan dalam 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 pool siaga.

  3. Klik Edit untuk mengubah grup instance terkelola ini.

  4. Klik Tampilkan konfigurasi lanjutan.

  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 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 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 pool VM yang ditangguhkan dan dihentikan di 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 dipertahankan MIG pada waktu tertentu.
  • STOPPED_SIZE: jumlah VM yang dihentikan yang harus dipertahankan MIG pada waktu tertentu.

Langkah berikutnya