Membuat MIG dengan VM di beberapa zona dalam satu region


Dokumen ini menjelaskan cara membuat grup instance terkelola (MIG) dengan VM-nya yang tersebar di beberapa zona dalam satu region. Menyebarkan beban aplikasi di beberapa zona akan melindungi workload Anda dari kegagalan zona. Jika terjadi kegagalan zona, aplikasi Anda dapat terus menyajikan dari instance yang berjalan di zona tersisa yang tersedia di region yang sama.

Jenis MIG ini juga dikenal sebagai MIG regional. Untuk informasi selengkapnya, lihat Tentang MIG regional.

Anda juga dapat membaca skenario dasar lainnya untuk membuat MIG.

Sebelum memulai

  • Buat template instance, yang diperlukan untuk membuat grup instance terkelola.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai 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. Buat kredensial autentikasi lokal untuk Akun Google Anda:

        gcloud auth application-default login

      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 Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

Batasan

Untuk melihat daftar lengkap batasan MIG, yang bervariasi berdasarkan konfigurasi yang Anda gunakan, lihat Batasan MIG.

Membuat MIG dengan VM di beberapa zona dalam satu region

Gunakan Konsol Google Cloud, gcloud CLI, Terraform, atau REST.

Konsol

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

    Buka Grup instance

    Langkah-langkah selanjutnya akan muncul secara otomatis di konsol Google Cloud.

  2. Klik Buat grup instance untuk membuat grup instance baru.
  3. Pilih salah satu Opsi grup instance terkelola baru:
  4. Tetapkan nama dan jika perlu, deskripsi untuk grup instance Anda.
  5. Pilih template instance untuk grup instance atau buat yang baru.
  6. Di bagian Jumlah instance atau dalam Penskalaan otomatis, tentukan jumlah instance untuk grup ini. Jangan lupa untuk menyediakan VM yang cukup untuk mendukung aplikasi Anda jika terjadi kegagalan zona.
  7. Untuk Lokasi, pilih Beberapa zona.
  8. Pilih region, lalu pilih zona yang ingin Anda gunakan. Jika Anda memilih template instance regional, Region akan otomatis dipilih berdasarkan region template.
  9. Di bagian Bentuk distribusi target, pilih Merata. Jika ingin memilih bentuk yang berbeda, lihat Menetapkan bentuk distribusi target untuk VM di MIG regional.
  10. Jika Anda ingin menonaktifkan distribusi ulang instance proaktif, lalu di bagian distribusi ulang instance, hapus centang pada kotak Izinkan distribusi ulang instance.
  11. Lanjutkan dengan proses pembuatan MIG lainnya.
  12. Untuk membuat MIG, klik Buat.

gcloud

Semua MIG memerlukan template instance. Jika Anda belum memilikinya, buat template instance. Misalnya, perintah berikut akan membuat template instance dasar dengan properti default:

gcloud compute instance-templates create example-template

Selanjutnya, gunakan perintah instance-groups managed create dengan flag --region. Misalnya, perintah berikut membuat MIG regional di tiga zona dalam region us-east1:

gcloud compute instance-groups managed create example-rmig \
    --template example-template  \
    --size 30 \
    --region us-east1

Jika Anda ingin memilih zona tertentu yang harus digunakan grup, berikan flag --zones:

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c

Jika Anda ingin menonaktifkan distribusi ulang instance proaktif, lihat Menonaktifkan distribusi ulang instance proaktif.

Terraform

Jika Anda belum membuat template instance, yang menentukan jenis mesin, boot disk image, jaringan, dan properti VM lainnya yang Anda inginkan untuk setiap VM di MIG Anda, buat template instance.

Untuk membuat MIG regional, Anda dapat menggunakan resource google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  target_size               = 30
  base_instance_name        = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

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

REST

Semua MIG memerlukan template instance. Jika Anda belum memilikinya, buat template instance.

Selanjutnya, buat permintaan POST ke metode regionInstanceGroupManagers.insert. Dalam isi permintaan, tentukan nama grup, ukuran grup, dan URL ke template instance. Atau, tentukan kolom lain, seperti nama dasar untuk instance dalam grup.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE"
}

Ganti kode berikut:

  • PROJECT_ID: project ID untuk permintaan ini.
  • REGION: region untuk grup.
  • BASE_INSTANCE_NAME: (opsional) nama instance untuk setiap instance VM yang dibuat sebagai bagian dari grup. Misalnya, nama instance dasar example-instance membuat instance yang memiliki nama seperti example-instance-[RANDOM_STRING] tempat [RANDOM_STRING] dibuat oleh server.
  • INSTANCE_TEMPLATE_NAME: template instance yang akan digunakan. Untuk template instance regional, Anda harus menentukan URL lengkap atau sebagian URL template. Contoh URL lengkap adalah https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template dan sebagian URL adalah projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template.
  • INSTANCE_GROUP_NAME: nama MIG.
  • TARGET_SIZE: jumlah target VM untuk grup.

Jika Anda ingin memilih zona tertentu atau jika Anda membuat VM di region dengan kurang dari atau lebih dari tiga zona, sertakan properti distributionPolicy di permintaan Anda dan berikan daftar zona. Ganti ZONE dengan nama zona untuk membuat VM.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE",
  "distributionPolicy": {
     "zones": [
       {"zone": "zones/ZONE"},
       {"zone": "zones/ZONE"}
      ]
   }
}

Misalnya, kode berikut akan membuat MIG regional bernama example-rmig dengan 10 instance terkelola yang didistribusikan di seluruh zona us-east1-b dan us-east1-c:

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers

{
  "instanceTemplate": "global/instanceTemplates/example-instance",
  "name": "example-rmig",
  "targetSize": 10,
  "distributionPolicy": {
      "zones": [
        {"zone": "zones/us-east1-b"},
        {"zone": "zones/us-east1-c"}
      ]
   }
}

Bergantung pada cara Anda mengonfigurasi dan melakukan tindakan pada MIG, berbagai kebijakan dan tindakan dapat memengaruhi instance dalam grup. Untuk menentukan instance terkelola mana yang aktif dan berjalan, lihat Memeriksa status instance terkelola.

Jika kapasitas di setiap zona tidak cukup untuk mendukung VM bagi grup, Compute Engine akan membuat VM sebanyak mungkin dan terus mencoba membuat VM yang tersisa saat kapasitas tambahan tersedia.

Jika Anda tidak secara eksplisit menentukan masing-masing zona dalam permintaan Anda, Compute Engine akan otomatis memilih tiga zona untuk membuat VM. Jika perlu membuat VM di lebih dari atau kurang dari tiga zona, atau ngin memilih zona mana yang digunakan, Anda dapat memberikan daftar zona dalam permintaan Anda. Untuk mengetahui informasi selengkapnya, lihat Pemilihan zona.

Distribusi VM di seluruh zona

Secara default, MIG regional mendistribusikan VM secara merata di seluruh zona yang dipilih. Karena Anda membuat MIG regional, perlu diingat bahwa resource tertentu bersifat zona, seperti GPU dan persistent disk yang ada. Jika template instance MIG Anda menentukan resource zona, Anda harus memastikan semua resource tersebut ada di semua zona yang dipilih sehingga dapat dipasang ke VM yang dibuat oleh MIG regional. Atau, jika Anda ingin grup memeriksa keberadaan resource zona untuk Anda, Anda dapat menetapkan bentuk distribusi target MIG untuk membuat instance hanya di zona yang berisi resource tersebut.

Untuk informasi selengkapnya, baca dokumen berikut:

Pendistribusian ulang instance proaktif

Pendistribusian ulang instance proaktif diaktifkan secara default. Jika Anda perlu mengelola jumlah VM di setiap zona secara manual, atau jika perlu menetapkan bentuk distribusi target MIG ke BALANCED atau ANY_SINGLE_ZONE, Anda harus menonaktifkan distribusi ulang instance proaktif.

Untuk informasi selengkapnya, baca dokumen berikut:

Langkah selanjutnya