Mengurangi latensi dengan menggunakan kebijakan penempatan rapat


Dokumen ini menjelaskan cara mengurangi latensi jaringan di antara instance virtual machine (VM) Anda dengan membuat dan menerapkan kebijakan penempatan ringkas ke instance tersebut. Untuk mempelajari kebijakan penempatan lebih lanjut, termasuk seri mesin yang didukung, batasan, dan harganya, lihat Ringkasan kebijakan penempatan.

Kebijakan penempatan rapat menentukan bahwa VM Anda harus ditempatkan lebih dekat satu sama lain secara fisik. Hal ini dapat membantu meningkatkan performa dan mengurangi latensi jaringan di antara VM Anda saat, misalnya, Anda menjalankan komputasi berperforma tinggi (HPC), machine learning (ML), atau workload server database.

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. 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:

    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. 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.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat dan menerapkan kebijakan penempatan yang ringkas ke VM, minta administrator untuk memberi Anda peran IAM berikut 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 membuat dan menerapkan kebijakan penempatan yang ringkas ke VM. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat dan menerapkan kebijakan penempatan yang ringkas ke VM:

  • Untuk membuat kebijakan penempatan: compute.resourcePolicies.create pada project
  • Untuk menerapkan kebijakan penempatan ke VM yang ada: compute.instances.addResourcePolicies pada project
  • Untuk membuat VM:
    • compute.instances.create pada project
    • Untuk menggunakan image kustom guna membuat VM: compute.images.useReadOnly pada image
    • Untuk menggunakan snapshot guna 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 di project
    • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use pada 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 di project atau di 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 pada project
    • Untuk menetapkan tag untuk VM: compute.instances.setTags di VM
    • Untuk menetapkan label untuk VM: compute.instances.setLabels di VM
    • Untuk menetapkan akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
    • Untuk membuat disk baru bagi VM: compute.disks.create pada 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 pemesanan: compute.reservations.create pada project
  • Untuk membuat template instance: compute.instanceTemplates.create pada project
  • Untuk membuat grup instance terkelola (MIG): compute.instanceGroupManagers.create pada project
  • Untuk melihat detail VM: compute.instances.get pada project

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

Membuat kebijakan penempatan rapat.

Kecuali jika Anda ingin menerapkan kebijakan penempatan rapat ke VM N2 atau N2D, Google Cloud merekomendasikan untuk menentukan nilai jarak maksimum saat membuat kebijakan. Untuk mengetahui informasi selengkapnya, lihat Cara kerja kebijakan penempatan rapat.

Untuk membuat kebijakan penempatan rapat, pilih salah satu opsi berikut:

gcloud

  • Untuk menerapkan kebijakan penempatan rapat ke VM N2 atau N2D, buat kebijakan menggunakan perintah gcloud compute resource-policies create group-placement dengan flag --collocation=collocated.

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --region=REGION
    

    Ganti kode berikut:

    • POLICY_NAME: nama kebijakan penempatan ringkas.

    • REGION: region tempat membuat kebijakan penempatan.

  • Untuk menerapkan kebijakan penempatan ringkas ke VM lain yang didukung, buat kebijakan menggunakan perintah gcloud beta compute resource-policies create group-placement dengan flag --collocation=collocated dan --max-distance.

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --max-distance=MAX_DISTANCE \
        --region=REGION
    

    Ganti kode berikut:

    • POLICY_NAME: nama kebijakan penempatan ringkas.

    • MAX_DISTANCE: konfigurasi jarak maksimum untuk VM Anda. Nilainya harus antara 1, yang menentukan untuk menempatkan VM di rak yang sama untuk latensi jaringan serendah mungkin, dan 3, yang menentukan untuk menempatkan VM di cluster yang berdekatan. Jika ingin menerapkan kebijakan penempatan rapat ke pemesanan, Anda tidak dapat menentukan nilai 1.

    • REGION: region tempat membuat kebijakan penempatan.

REST

  • Untuk menerapkan kebijakan penempatan rapat ke VM N2 atau N2D, buat kebijakan dengan membuat permintaan POST ke metode resourcePolicies.insert. Dalam isi permintaan, sertakan kolom collocation dan tetapkan ke COLLOCATED.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED"
      }
    }
    

    Ganti kode berikut:

    • PROJECT_ID: ID project tempat Anda ingin membuat kebijakan penempatan.

    • REGION: region tempat membuat kebijakan penempatan.

    • POLICY_NAME: nama kebijakan penempatan ringkas.

  • Untuk menerapkan kebijakan penempatan rapat ke VM lain yang didukung, buat kebijakan dengan membuat permintaan POST ke metode beta.resourcePolicies.insert. Dalam isi permintaan, sertakan hal berikut:

    • Kolom collocation ditetapkan ke COLLOCATED.

    • Kolom maxDistance.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "maxDistance": MAX_DISTANCE
      }
    }
    

    Ganti kode berikut:

    • PROJECT_ID: ID project tempat Anda ingin membuat kebijakan penempatan.

    • REGION: region tempat membuat kebijakan penempatan.

    • POLICY_NAME: nama kebijakan penempatan ringkas.

    • MAX_DISTANCE: konfigurasi jarak maksimum untuk VM Anda. Nilainya harus antara 1, yang menentukan untuk menempatkan VM di rak yang sama untuk latensi jaringan serendah mungkin, dan 3, yang menentukan untuk menempatkan VM di cluster yang berdekatan. Jika ingin menerapkan kebijakan penempatan rapat ke pemesanan, Anda tidak dapat menentukan nilai 1.

Menerapkan kebijakan penempatan rapat

Anda dapat menerapkan kebijakan penempatan yang ringkas ke VM atau MIG yang ada, atau saat membuat VM, template instance, MIG, atau reservasi VM.

Untuk menerapkan kebijakan penempatan rapat ke resource Compute Engine, pilih salah satu metode berikut:

Setelah menerapkan kebijakan penempatan yang ringkas ke VM, Anda dapat memverifikasi lokasi fisik VM sehubungan dengan VM lain yang menentukan kebijakan penempatan yang sama.

Menerapkan kebijakan ke VM yang ada

Sebelum menerapkan kebijakan penempatan yang ringkas ke VM yang ada, pastikan hal-hal berikut:

Jika tidak, penerapan kebijakan penempatan rapat ke VM akan gagal. Jika VM sudah menentukan kebijakan penempatan dan Anda ingin menggantinya, lihat Mengganti kebijakan penempatan di VM sebagai gantinya.

Untuk menerapkan kebijakan penempatan yang ringkas ke VM yang ada, pilih salah satu opsi berikut:

gcloud

  1. Hentikan VM.

  2. Untuk menerapkan kebijakan penempatan yang ringkas ke VM yang ada, gunakan perintah gcloud compute instances add-resource-policies.

    gcloud compute instances add-resource-policies VM_NAME \
        --resource-policies=POLICY_NAME \
        --zone=ZONE
    

    Ganti kode berikut:

    • VM_NAME: nama VM yang ada.

    • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

    • ZONE: zona tempat VM berada.

  3. Mulai ulang VM.

REST

  1. Hentikan VM.

  2. Untuk menerapkan kebijakan penempatan yang ringkas ke VM yang ada, buat permintaan POST ke metode instances.addResourcePolicies.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies
    
    {
      "resourcePolicies": [
        "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
    }
    

    Ganti kode berikut:

    • PROJECT_ID: ID project tempat kebijakan penempatan ringkas dan VM berada.

    • ZONE: zona tempat VM berada.

    • VM_NAME: nama VM yang ada.

    • REGION: region tempat kebijakan penempatan ringkas berada.

    • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

  3. Mulai ulang VM.

Menerapkan kebijakan saat membuat VM

Anda hanya dapat membuat VM yang menentukan kebijakan penempatan ringkas di region yang sama dengan kebijakan penempatan.

Untuk membuat VM yang menentukan kebijakan penempatan yang ringkas, pilih salah satu opsi berikut:

gcloud

Untuk membuat VM yang menentukan kebijakan penempatan ringkas, gunakan perintah gcloud compute instances create dengan flag --maintenance-policy dan --resource-policies.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ganti kode berikut:

  • VM_NAME: nama VM yang akan dibuat.

  • MACHINE_TYPE: jenis mesin yang didukung untuk kebijakan penempatan rapat.

  • MAINTENANCE_POLICY: kebijakan pemeliharaan host VM. Jika kebijakan penempatan rapat yang Anda tentukan menggunakan nilai jarak maksimum 1 atau 2, Anda hanya dapat menentukan TERMINATE. Jika tidak, Anda dapat menentukan MIGRATE atau TERMINATE.

  • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

  • ZONE: zona tempat untuk membuat VM.

REST

Untuk membuat VM yang menentukan kebijakan penempatan ringkas, buat permintaan POST ke metode instances.insert. Dalam isi permintaan, sertakan kolom onHostMaintenance dan resourcePolicies.

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

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan ringkas berada.

  • ZONE: zona tempat membuat VM dan tempat jenis mesin berada. Anda hanya dapat menentukan zona dalam region kebijakan penempatan ringkas.

  • VM_NAME: nama VM yang akan dibuat.

  • MACHINE_TYPE: jenis mesin yang didukung untuk kebijakan penempatan rapat.

  • IMAGE_PROJECT: project image yang berisi image—misalnya, debian-cloud. Untuk informasi selengkapnya tentang project image yang didukung, lihat Image publik.

  • IMAGE: tentukan salah satu dari hal berikut:

    • 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 masih digunakan. 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.

  • REGION: region tempat kebijakan penempatan yang ringkas berada.

  • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

  • MAINTENANCE_POLICY: kebijakan pemeliharaan host VM. Jika kebijakan penempatan rapat yang Anda tentukan menggunakan nilai jarak maksimum 1 atau 2, Anda hanya dapat menentukan TERMINATE. Jika tidak, Anda dapat menentukan MIGRATE atau TERMINATE.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk membuat VM, lihat Membuat dan memulai instance VM.

Menerapkan kebijakan saat membuat VM secara massal

Anda hanya dapat membuat VM secara massal dengan kebijakan penempatan ringkas di region yang sama dengan kebijakan penempatan.

Untuk membuat VM secara massal yang menentukan kebijakan penempatan ringkas, pilih salah satu opsi berikut:

gcloud

Untuk membuat VM secara massal yang menentukan kebijakan penempatan ringkas, gunakan perintah gcloud compute instances bulk create dengan flag --maintenance-policy dan --resource-policies.

Misalnya, untuk membuat VM secara massal di satu zona dan menentukan pola nama untuk VM, jalankan perintah berikut:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ganti kode berikut:

  • COUNT: jumlah VM yang akan dibuat, yang tidak boleh lebih tinggi dari jumlah maksimum VM yang didukung dari kebijakan penempatan yang ringkas yang ditentukan.

  • MACHINE_TYPE: jenis mesin yang didukung untuk kebijakan penempatan rapat.

  • MAINTENANCE_POLICY: kebijakan pemeliharaan host VM. Jika kebijakan penempatan rapat yang Anda tentukan menggunakan nilai jarak maksimum 1 atau 2, Anda hanya dapat menentukan TERMINATE. Jika tidak, Anda dapat menentukan MIGRATE atau TERMINATE.

  • NAME_PATTERN: pola nama untuk VM. Untuk mengganti urutan angka dalam nama VM, gunakan urutan karakter hash (#). Misalnya, menggunakan vm-# untuk pola nama akan menghasilkan VM dengan nama yang dimulai dengan vm-1, vm-2, dan berlanjut hingga jumlah VM yang ditentukan oleh COUNT.

  • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

  • ZONE: zona tempat membuat VM secara massal.

REST

Untuk membuat VM secara massal yang menentukan kebijakan penempatan ringkas, buat permintaan POST ke metode instances.bulkInsert. Dalam isi permintaan, sertakan kolom onHostMaintenance dan resourcePolicies.

Misalnya, untuk membuat VM secara massal di satu zona dan menentukan pola nama untuk VM, 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"
      }
    ],
    "resourcePolicies": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan ringkas berada.

  • ZONE: zona tempat membuat VM secara massal.

  • COUNT: jumlah VM yang akan dibuat, yang tidak boleh lebih tinggi dari jumlah maksimum VM yang didukung dari kebijakan penempatan yang ringkas yang ditentukan.

  • NAME_PATTERN: pola nama untuk VM. Untuk mengganti urutan angka dalam nama VM, gunakan urutan karakter hash (#). Misalnya, menggunakan vm-# untuk pola nama akan menghasilkan VM dengan nama yang dimulai dengan vm-1, vm-2, dan berlanjut hingga jumlah VM yang ditentukan oleh COUNT.

        with names starting with `vm-1`, `vm-2`, and continuing up to the number
    

    VM yang ditentukan oleh COUNT.

  • MACHINE_TYPE: jenis mesin yang didukung untuk kebijakan penempatan rapat.

  • IMAGE_PROJECT: project image yang berisi image—misalnya, debian-cloud. Untuk informasi selengkapnya tentang project image yang didukung, lihat Image publik.

  • IMAGE: tentukan salah satu dari hal berikut:

    • 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 masih digunakan. 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.

  • REGION: region tempat kebijakan penempatan yang ringkas berada.

  • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

  • MAINTENANCE_POLICY: kebijakan pemeliharaan host VM. Jika kebijakan penempatan rapat yang Anda tentukan menggunakan nilai jarak maksimum 1 atau 2, Anda hanya dapat menentukan TERMINATE. Jika tidak, Anda dapat menentukan MIGRATE atau TERMINATE.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk membuat VM secara massal, lihat Membuat VM secara massal.

Menerapkan kebijakan saat membuat reservasi

Jika ingin membuat pemesanan satu project on demand yang menentukan kebijakan penempatan rapat, Anda harus membuat pemesanan yang ditargetkan secara khusus. Saat Anda membuat VM untuk menggunakan reservasi, pastikan hal-hal berikut:

  • VM harus menentukan kebijakan penempatan rapat yang sama yang diterapkan ke pemesanan.

  • VM harus menargetkan reservasi secara khusus untuk menggunakannya. Untuk mengetahui informasi selengkapnya, lihat Menggunakan VM dari reservasi tertentu.

Untuk membuat pemesanan satu project dengan kebijakan penempatan rapat, pilih salah satu metode berikut:

Untuk membuat pemesanan satu project dengan kebijakan penempatan rapat dengan menentukan properti secara langsung, pilih salah satu opsi berikut:

gcloud

Untuk membuat pemesanan satu project dengan kebijakan penempatan rapat dengan menentukan properti secara langsung, gunakan perintah gcloud compute reservations create dengan flag --require-specific-reservation dan --resource-policies=policy.

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --require-specific-reservation \
    --resource-policies=policy=POLICY_NAME \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Ganti kode berikut:

  • RESERVATION_NAME: nama pemesanan.

  • MACHINE_TYPE: jenis mesin yang didukung untuk kebijakan penempatan rapat.

  • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

  • NUMBER_OF_VMS: jumlah VM yang akan dipesan, yang tidak boleh lebih tinggi dari jumlah maksimum VM yang didukung dari kebijakan penempatan rapat yang ditentukan.

  • ZONE: zona tempat VM dipesan. Anda hanya dapat mencadangkan VM di zona dalam region kebijakan penempatan compact yang ditentukan.

REST

Untuk membuat pemesanan satu project dengan kebijakan penempatan rapat dengan menentukan properti secara langsung, buat permintaan POST ke metode reservations.insert. Dalam isi permintaan, sertakan kolom resourcePolicies, dan kolom specificReservationRequired yang ditetapkan ke true.

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

{
  "name": "RESERVATION_NAME",
  "resourcePolicies": {
    "policy" : "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  },
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan ringkas berada.

  • ZONE: zona tempat VM dipesan. Anda hanya dapat mencadangkan VM di zona dalam region kebijakan penempatan compact yang ditentukan.

  • RESERVATION_NAME: nama pemesanan.

  • REGION: region tempat kebijakan penempatan yang ringkas berada.

  • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

  • NUMBER_OF_VMS: jumlah VM yang akan dipesan, yang tidak boleh lebih tinggi dari jumlah maksimum VM yang didukung dari kebijakan penempatan rapat yang ditentukan.

  • MACHINE_TYPE: jenis mesin yang didukung untuk kebijakan penempatan rapat.

Untuk informasi selengkapnya tentang opsi konfigurasi untuk membuat pemesanan project tunggal, lihat Membuat pemesanan untuk satu project.

Menerapkan kebijakan saat membuat template instance

Jika ingin membuat template instance regional, Anda harus membuat template di region yang sama dengan kebijakan penempatan rapat. Jika tidak, pembuatan template instance akan gagal.

Setelah membuat template instance yang menentukan kebijakan penempatan rapat, Anda dapat menggunakan template tersebut untuk melakukan hal berikut:

Untuk membuat template instance yang menentukan kebijakan penempatan rapat, pilih salah satu opsi berikut:

gcloud

Untuk membuat template instance yang menentukan kebijakan penempatan ringkas, gunakan perintah gcloud compute instance-templates create dengan flag --maintenance-policy dan --resource-policies.

Misalnya, untuk membuat template instance global yang menentukan kebijakan penempatan ringkas, jalankan perintah berikut:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME

Ganti kode berikut:

  • INSTANCE_TEMPLATE_NAME: nama template instance.

  • MACHINE_TYPE: jenis mesin yang didukung untuk kebijakan penempatan rapat.

  • MAINTENANCE_POLICY: kebijakan pemeliharaan host VM. Jika kebijakan penempatan rapat yang Anda tentukan menggunakan nilai jarak maksimum 1 atau 2, Anda hanya dapat menentukan TERMINATE. Jika tidak, Anda dapat menentukan MIGRATE atau TERMINATE.

  • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

REST

Untuk membuat template instance yang menentukan kebijakan penempatan ringkas, buat permintaan POST ke salah satu metode berikut:

Dalam isi permintaan, sertakan kolom onHostMaintenance dan resourcePolicies.

Misalnya, untuk membuat template instance global yang menentukan kebijakan penempatan ringkas, buat permintaan POST sebagai berikut:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/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"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan ringkas berada.

  • INSTANCE_TEMPLATE_NAME: nama template instance.

  • IMAGE_PROJECT: project image yang berisi image—misalnya, debian-cloud. Untuk informasi selengkapnya tentang project image yang didukung, lihat Image publik.

  • IMAGE: tentukan salah satu dari hal berikut:

    • 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 masih digunakan. 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 didukung untuk kebijakan penempatan rapat.

  • POLICY_NAME: nama kebijakan penempatan ringkas yang ada.

  • MAINTENANCE_POLICY: kebijakan pemeliharaan host VM. Jika kebijakan penempatan rapat yang Anda tentukan menggunakan nilai jarak maksimum 1 atau 2, Anda hanya dapat menentukan TERMINATE. Jika tidak, Anda dapat menentukan MIGRATE atau TERMINATE.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk membuat template instance, lihat Membuat template instance.

Menerapkan kebijakan ke VM di MIG

Setelah membuat template instance yang menentukan kebijakan penempatan rapat, Anda dapat menggunakan template tersebut untuk melakukan hal berikut:

Menerapkan kebijakan saat membuat MIG

Anda hanya dapat membuat VM yang menentukan kebijakan penempatan rapat jika VM tersebut berada di region yang sama dengan kebijakan penempatan.

Untuk membuat MIG menggunakan template instance yang menentukan kebijakan penempatan ringkas, pilih salah satu opsi berikut:

gcloud

Untuk membuat MIG menggunakan template instance yang menentukan kebijakan penempatan ringkas, gunakan perintah gcloud compute instance-groups managed create.

Misalnya, untuk membuat MIG zona menggunakan template instance global yang menentukan kebijakan penempatan ringkas, jalankan perintah berikut:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size=SIZE \
    --template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: nama MIG yang akan dibuat.

  • SIZE: ukuran MIG.

  • INSTANCE_TEMPLATE_NAME: nama template instance global yang ada dan menentukan kebijakan penempatan yang ringkas.

  • ZONE: zona tempat membuat MIG, yang harus berada dalam region tempat kebijakan penempatan yang ringkas berada.

REST

Untuk membuat MIG menggunakan template instance yang menentukan kebijakan penempatan ringkas, buat permintaan POST ke salah satu metode berikut:

Misalnya, untuk membuat MIG zona menggunakan template instance global yang menentukan kebijakan penempatan ringkas, buat permintaan POST sebagai berikut:

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

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE,
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
    }
  ]
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan ringkas dan template instance yang menentukan kebijakan penempatan berada.

  • ZONE: zona tempat membuat MIG, yang harus berada dalam region tempat kebijakan penempatan yang ringkas berada.

  • INSTANCE_GROUP_NAME: nama MIG yang akan dibuat.

  • INSTANCE_TEMPLATE_NAME: nama template instance global yang ada dan menentukan kebijakan penempatan ringkas.

  • SIZE: ukuran MIG.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk membuat MIG, lihat Skenario dasar untuk membuat MIG.

Menerapkan kebijakan ke MIG yang ada

Anda hanya dapat menerapkan kebijakan penempatan yang ringkas ke MIG yang ada jika MIG tersebut berada di region yang sama dengan kebijakan penempatan atau, untuk MIG zona, di zona dalam region yang sama dengan kebijakan penempatan.

Untuk memperbarui MIG agar menggunakan template instance yang menentukan kebijakan penempatan ringkas, pilih salah satu opsi berikut:

gcloud

Untuk memperbarui MIG agar menggunakan template instance yang menentukan kebijakan penempatan ringkas, gunakan perintah gcloud compute instance-groups managed rolling-action start-update.

Misalnya, untuk memperbarui MIG zonal agar menggunakan template instance yang menentukan kebijakan penempatan ringkas, dan mengganti VM yang ada dari MIG dengan VM baru yang menentukan properti template, jalankan perintah berikut:

gcloud compute instance-groups managed rolling-action start-update MIG_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Ganti kode berikut:

  • MIG_NAME: nama MIG yang ada.

  • INSTANCE_TEMPLATE_NAME: nama template instance global yang ada dan menentukan kebijakan penempatan ringkas.

  • ZONE: zona tempat MIG berada. Anda hanya dapat menerapkan kebijakan penempatan rapat ke MIG yang berada dalam region yang sama dengan kebijakan penempatan.

REST

Untuk memperbarui MIG agar menggunakan template instance yang menentukan kebijakan penempatan ringkas, dan otomatis menerapkan properti template serta kebijakan penempatan ke VM yang ada di MIG, buat permintaan PATCH ke salah satu metode berikut:

Misalnya, untuk memperbarui MIG zona agar menggunakan template instance global yang menentukan kebijakan penempatan ringkas, dan mengganti VM yang ada dari MIG dengan VM baru yang menentukan properti template, buat permintaan PATCH berikut:

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

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat MIG, kebijakan penempatan ringkas, dan template instance yang menentukan kebijakan penempatan berada.

  • ZONE: zona tempat MIG berada. Anda hanya dapat menerapkan kebijakan penempatan rapat ke MIG yang berada dalam region yang sama dengan kebijakan penempatan.

  • MIG_NAME: nama MIG yang ada.

  • INSTANCE_TEMPLATE_NAME: nama template instance global yang ada dan menentukan kebijakan penempatan ringkas.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk mengupdate VM di MIG, baca Memperbarui dan menerapkan konfigurasi baru ke VM di MIG.

Memverifikasi lokasi fisik VM

Setelah menerapkan kebijakan penempatan yang ringkas ke VM, Anda dapat melihat lokasi fisik VM sehubungan dengan VM lain. Perbandingan ini terbatas pada VM yang terletak di project Anda dan menentukan kebijakan penempatan rapat yang sama. Melihat lokasi fisik VM membantu Anda melakukan hal berikut:

  • Pastikan kebijakan berhasil diterapkan.

  • Identifikasi VM mana yang paling dekat satu sama lain.

Untuk melihat lokasi fisik VM sehubungan dengan VM lain yang menentukan kebijakan penempatan rapat yang sama, pilih salah satu opsi berikut:

gcloud

Untuk melihat lokasi fisik VM yang menentukan kebijakan penempatan rapat, gunakan perintah gcloud compute instances describe dengan flag --format.

gcloud compute instances describe VM_NAME \
    --format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \
    --zone=ZONE

Ganti kode berikut:

  • VM_NAME: nama VM yang ada, yang menentukan kebijakan penempatan ringkas.

  • ZONE: zona tempat VM berada.

Outputnya mirip dengan hal berikut ini:

VM-Position

RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy']
PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA

Nilai untuk kolom PHYSICAL_HOST terdiri dari tiga bagian. Setiap bagian ini mewakili cluster, rak, dan host tempat VM berada.

Saat membandingkan posisi dua VM yang menggunakan kebijakan penempatan ringkas yang sama dalam project Anda, semakin banyak bagian kolom PHYSICAL_HOST yang dibagikan VM, semakin dekat lokasi fisiknya satu sama lain. Misalnya, asumsikan bahwa dua VM menentukan salah satu nilai contoh berikut untuk kolom PHYSICAL_HOST:

  • /CCCCCCC/xxxxxx/xxxx: kedua VM ditempatkan di cluster yang sama, yang sama dengan nilai jarak maksimum 2. VM yang ditempatkan di cluster yang sama akan mengalami latensi jaringan yang rendah.

  • /CCCCCCC/BBBBBB/xxxx: kedua VM ditempatkan di rak yang sama, yang sama dengan nilai jarak maksimum 1. VM yang ditempatkan di rak yang sama akan mengalami latensi jaringan yang lebih rendah daripada VM yang ditempatkan di cluster yang sama.

  • /CCCCCCC/BBBBBB/AAAA: kedua VM menggunakan host yang sama. VM yang ditempatkan di host yang sama akan meminimalkan latensi jaringan serendah mungkin.

REST

Untuk melihat lokasi fisik VM yang menentukan kebijakan penempatan ringkas, buat permintaan GET ke metode instances.get.

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

Ganti kode berikut:

  • PROJECT_ID: ID project tempat VM berada.

  • ZONE: zona tempat VM berada.

  • VM_NAME: nama VM yang ada, yang menentukan kebijakan penempatan ringkas.

Outputnya mirip dengan hal berikut ini:

{
  ...
  "resourcePolicies": [
    "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/example-policy"
  ],
  "resourceStatus": {
    "physicalHost": "/xxxxxxxx/xxxxxx/xxxxx"
  },
  ...
}

Nilai untuk kolom physicalHost terdiri dari tiga bagian. Setiap bagian ini mewakili cluster, rak, dan host tempat VM berada.

Saat membandingkan posisi dua VM yang menggunakan kebijakan penempatan ringkas yang sama dalam project Anda, semakin banyak bagian kolom physicalHost yang dibagikan VM, semakin dekat lokasi fisiknya satu sama lain. Misalnya, asumsikan bahwa dua VM menentukan salah satu nilai contoh berikut untuk kolom physicalHost:

  • /CCCCCCC/xxxxxx/xxxx: kedua VM ditempatkan di cluster yang sama, yang sama dengan nilai jarak maksimum 2. VM yang ditempatkan di cluster yang sama akan mengalami latensi jaringan yang rendah.

  • /CCCCCCC/BBBBBB/xxxx: kedua VM ditempatkan di rak yang sama, yang sama dengan nilai jarak maksimum 1. VM yang ditempatkan di rak yang sama akan mengalami latensi jaringan yang lebih rendah daripada VM yang ditempatkan di cluster yang sama.

  • /CCCCCCC/BBBBBB/AAAA: kedua VM menggunakan host yang sama. VM yang ditempatkan di host yang sama akan meminimalkan latensi jaringan serendah mungkin.

Apa langkah selanjutnya?