Menskalakan berdasarkan kapasitas penyajian load balancing.


Dokumen ini menjelaskan cara menskalakan grup instance terkelola (MIG) berdasarkan kapasitas penyajian Load Balancer Aplikasi eksternal atau Load Balancer Aplikasi internal. Artinya, penskalaan otomatis akan menambahkan atau menghapus instance VM dalam grup saat load balancer menunjukkan bahwa grup telah mencapai fraksi yang dapat dikonfigurasi dari tingkat kepenuhannya, di mana tingkat kepenuhannya ditentukan oleh kapasitas target dari mode balancing yang dipilih dari grup backend instance.

Anda juga dapat menskalakan MIG berdasarkan penggunaan CPU atau berdasarkan Metrik pemantauan.

Batasan

Anda dapat menskalakan grup instance terkelola secara otomatis berdasarkan kapasitas penyajian Load Balancer Aplikasi eksternal dan Load Balancer Aplikasi internal. Jenis load balancing lainnya tidak didukung.

Sebelum memulai

  • Tinjau batasan autoscaler.
  • Baca dasar-dasar autoscaler.
  • 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.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    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, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Penskalaan berdasarkan kapasitas penyajian load balancing HTTP(S)

Compute Engine memberikan dukungan untuk load balancing dalam grup instance Anda. Anda dapat menggunakan penskalaan otomatis bersama dengan load balancing dengan menyiapkan autoscaler yang melakukan penskalaan berdasarkan beban instance Anda.

Load balancer HTTP(S) eksternal atau internal mendistribusikan permintaan ke layanan backend sesuai dengan peta URL-nya. Load balancer dapat memiliki satu atau beberapa layanan backend, yang masing-masing mendukung backend grup instance atau grup endpoint jaringan (NEG). Jika backend adalah grup instance, load balancer HTTP(S) akan menawarkan dua mode balancing: UTILIZATION dan RATE. Dengan UTILIZATION, Anda dapat menentukan target maksimum untuk penggunaan backend rata-rata atas instance dalam grup instance. Dengan RATE, Anda harus menentukan jumlah target permintaan per detik per instance atau per grup. (Hanya grup instance zona yang mendukung penentuan tingkat maksimum untuk seluruh grup. Grup instance terkelola regional tidak mendukung penentuan tingkat maksimum per grup.)

Mode balancing dan kapasitas target yang Anda tetapkan menentukan kondisi yang digunakan Google Cloud untuk menentukan kapan VM backend berada pada kapasitas penuh. Google Cloud akan mencoba mengirimkan traffic ke VM yang responsif dan memiliki kapasitas yang tersisa. Jika semua VM sudah mencapai kapasitasnya, target penggunaan atau kecepatan akan terlampaui.

Saat Anda memasang autoscaler ke backend grup instance pada load balancer HTTP(S), autoscaler akan menskalakan grup instance terkelola untuk mempertahankan sebagian kecil dari kapasitas penyajian load balancing.

Misalnya, anggaplah kapasitas penyajian load balancing dari grup instance terkelola ditetapkan sebagai 100 RPS per instance. Jika Anda membuat autoscaler dengan kebijakan load balancing HTTP(S) dan menetapkannya untuk mempertahankan tingkat penggunaan target sebesar 0,8 atau 80%, autoscaler akan menambahkan atau menghapus instance dari grup instance terkelola untuk mempertahankan 80% kapasitas penyajian, atau 80 RPS per instance.

Diagram berikut menunjukkan cara autoscaler berinteraksi dengan grup instance terkelola dan layanan backend:

Hubungan antara autoscaler, grup instance terkelola, dan layanan backend load balancing.
Autoscaler mengamati kapasitas penyajian grup instance terkelola, yang ditentukan dalam layanan backend, dan melakukan penskalaan berdasarkan target penggunaan. Dalam contoh ini, kapasitas penyajian diukur dalam nilai maxRatePerInstance.

Konfigurasi load balancing yang berlaku

Anda dapat menetapkan salah satu dari tiga opsi untuk kapasitas penyajian load balancing. Saat pertama kali membuat backend, Anda dapat memilih antara pemanfaatan backend maksimum, permintaan maksimum per detik per instance, atau permintaan maksimum per detik dari seluruh grup. Penskalaan otomatis hanya berfungsi dengan penggunaan backend maksimum dan permintaan maksimum per detik/instance karena nilai setelan ini dapat dikontrol dengan menambahkan atau menghapus instance. Misalnya, jika Anda menetapkan backend untuk menangani 10 permintaan per detik per instance, dan autoscaler dikonfigurasi untuk mempertahankan 80% dari rasio tersebut, autoscaler dapat menambahkan atau menghapus instance saat permintaan per detik per instance berubah.

Penskalaan otomatis tidak berfungsi dengan permintaan maksimum per grup karena setelan ini terpisah dari jumlah instance dalam grup instance. Load balancing terus mengirimkan jumlah maksimum permintaan per grup ke grup instance, berapa pun jumlah instance dalam grup.

Misalnya, jika Anda menetapkan backend untuk menangani 100 permintaan maksimum per grup per detik, load balancer akan mengirimkan 100 permintaan per detik ke grup, terlepas dari apakah grup memiliki dua instance atau 100 instance. Karena nilai ini tidak dapat disesuaikan, penskalaan otomatis tidak akan berfungsi dengan konfigurasi load balancing yang menggunakan jumlah maksimum permintaan per detik per grup.

Mengaktifkan penskalaan otomatis berdasarkan kapasitas penayangan load balancing

Konsol

  1. Buka halaman Grup instance di konsol Google Cloud.

    Buka Grup instance

  2. Jika Anda memiliki grup instance, pilih grup tersebut, lalu klik Edit. Jika Anda tidak memiliki grup instance, klik Buat grup instance.
  3. Di bagian Mode penskalaan otomatis, pilih Aktif: tambahkan dan hapus instance ke grup untuk mengaktifkan penskalaan otomatis.
  4. Tentukan jumlah minimum dan maksimum instance yang Anda inginkan untuk dibuat oleh autoscaler dalam grup ini.
  5. Di bagian Metrik penskalaan otomatis, klik Tambahkan metrik.
  6. Tetapkan Jenis metrik ke penggunaan load balancing HTTP.
  7. Masukkan Target penggunaan load balancing HTTP. Nilai ini diperlakukan sebagai persentase. Misalnya, untuk pemakaian load balancing HTTP sebesar 60%, masukkan 60.

  8. Anda dapat menggunakan Periode tunggu untuk menetapkan periode inisialisasi, yang akan memberi tahu autoscaler berapa lama waktu yang diperlukan untuk melakukan inisialisasi aplikasi. Menentukan periode inisialisasi yang akurat akan meningkatkan keputusan autoscaler. Misalnya, saat penskalaan otomatis, autoscaler mengabaikan data dari VM yang masih melakukan inisialisasi karena VM tersebut mungkin belum mewakili penggunaan normal aplikasi Anda. Periode inisialisasi default adalah 60 detik.

  9. Simpan perubahan Anda.

gcloud

Untuk mengaktifkan autoscaler yang melakukan penskalaan sesuai kapasitas penyajian, gunakan sub-perintah set-autoscaling. Misalnya, perintah berikut akan membuat autoscaler yang menskalakan grup instance terkelola target untuk mempertahankan 60% kapasitas penyajian. Bersama dengan parameter --target-load-balancing-utilization, parameter --max-num-replicas juga diperlukan saat membuat autoscaler:

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --max-num-replicas 20 \
    --target-load-balancing-utilization 0.6 \
    --cool-down-period 90

Anda dapat menggunakan flag --cool-down-period untuk menetapkan periode inisialisasi, yang akan memberi tahu autoscaler waktu yang diperlukan aplikasi untuk diinisialisasi. Menentukan periode inisialisasi yang akurat akan meningkatkan keputusan autoscaler. Misalnya, saat penskalaan otomatis, autoscaler mengabaikan data dari VM yang masih melakukan inisialisasi karena VM tersebut mungkin belum mewakili penggunaan normal aplikasi Anda. Periode inisialisasi default adalah 60 detik.

Anda dapat memverifikasi bahwa autoscaler telah berhasil dibuat menggunakan sub-perintah instance-groups managed describe:

gcloud compute instance-groups managed describe example-managed-instance-group

Untuk mengetahui daftar perintah dan flag gcloud yang tersedia, baca referensi gcloud.

REST

Untuk membuat autoscaler, gunakan metode autoscalers.insert untuk MIG zona atau metode regionAutoscalers.insert untuk MIG regional.

Contoh berikut akan membuat autoscaler untuk MIG zona:

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

Isi permintaan Anda harus berisi kolom name, target, dan autoscalingPolicy. autoscalingPolicy harus menentukan loadBalancingUtilization.

Anda dapat menggunakan kolom coolDownPeriodSec untuk menetapkan periode inisialisasi, yang akan memberi tahu autoscaler waktu yang diperlukan aplikasi untuk diinisialisasi. Menentukan periode inisialisasi yang akurat akan meningkatkan keputusan autoscaler. Misalnya, saat penskalaan otomatis, autoscaler mengabaikan data dari VM yang masih melakukan inisialisasi karena VM tersebut mungkin belum mewakili penggunaan normal aplikasi Anda. Periode inisialisasi default adalah 60 detik.

{

 "name": "example-autoscaler",
 "target": "zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
 "autoscalingPolicy": {
    "maxNumReplicas": 20,
    "loadBalancingUtilization": {
       "utilizationTarget": 0.8
     },
    "coolDownPeriodSec": 90
  }
}

Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan penskalaan otomatis berdasarkan kapasitas penyajian load balancing, selesaikan tutorial, Melakukan penskalaan otomatis layanan web secara global di Compute Engine.

Langkah selanjutnya