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.
-
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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Buka halaman Grup instance di konsol Google Cloud.
- Jika Anda memiliki grup instance, pilih grup tersebut, lalu klik Edit. Jika Anda tidak memiliki grup instance, klik Buat grup instance.
- Di bagian Mode penskalaan otomatis, pilih Aktif: tambahkan dan hapus instance ke grup untuk mengaktifkan penskalaan otomatis.
- Tentukan jumlah minimum dan maksimum instance yang Anda inginkan untuk dibuat oleh autoscaler dalam grup ini.
- Di bagian Autoscaling signals, klik Add a signal.
- Tetapkan Signal type ke HTTP load balancing utilization.
Masukkan Target penggunaan load balancing HTTP. Nilai ini diperlakukan sebagai persentase. Misalnya, untuk pemakaian load balancing HTTP sebesar 60%, masukkan
60
.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.
Simpan perubahan Anda.
- Pelajari cara mengelola autoscaler.
- Pelajari cara autoscaler membuat keputusan.
- Pelajari cara menggunakan beberapa sinyal penskalaan otomatis untuk menskalakan grup Anda.
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.
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
danRATE
. DenganUTILIZATION
, Anda dapat menentukan target maksimum untuk penggunaan backend rata-rata atas instance dalam grup instance. DenganRATE
, 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:
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
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 referensigcloud
.REST
Untuk membuat autoscaler, gunakan metode
autoscalers.insert
untuk MIG zona atau metoderegionAutoscalers.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
, danautoscalingPolicy
.autoscalingPolicy
harus menentukanloadBalancingUtilization
.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 berikutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-11-27 UTC.
-