Tutorial ini menjelaskan cara menggunakan penskalaan otomatis untuk menyesuaikan jumlah instance VM yang menghosting aplikasi Anda secara otomatis, sehingga aplikasi Anda dapat beradaptasi dengan berbagai jumlah traffic.
Untuk menggunakan penskalaan otomatis, hosting aplikasi Anda di grup instance terkelola. Grup instance terkelola adalah kumpulan instance yang semuanya menjalankan aplikasi yang sama dan dapat dikelola sebagai satu entity. Jika grup instance terkelola mengaktifkan penskalaan otomatis, jumlah VM dalam grup instance akan otomatis meningkat (meningkatkan skala) atau menurun (menurunkan skala) sesuai dengan nilai target yang Anda tentukan untuk kebijakan penskalaan otomatis Anda.
Tutorial ini berisi langkah-langkah mendetail untuk meluncurkan aplikasi web pada grup instance terkelola, menyiapkan penskalaan otomatis, mengonfigurasi akses jaringan, dan mengamati penskalaan otomatis dengan menyimulasikan lonjakan dan penurunan beban. Tergantung pada pengalaman Anda dengan fitur ini, perlu waktu sekitar 20 menit untuk menyelesaikan tutorial ini.
Tujuan
- Luncurkan aplikasi web demo pada grup instance terkelola.
- Amati efek penskalaan otomatis dengan menyimulasikan lonjakan dan penurunan traffic.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang dapat ditagih berikut:
- Compute Engine
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Arsitektur aplikasi
Aplikasi ini mencakup komponen Compute Engine berikut:
- Aturan firewall: firewall Google Cloud yang memungkinkan Anda mengizinkan atau menolak traffic ke instance.
- Template instance: template yang digunakan untuk membuat setiap instance VM dalam grup instance terkelola.
- Grup instance terkelola regional: grup instance VM yang menjalankan aplikasi yang sama di beberapa zona.
Meluncurkan aplikasi web
Tutorial ini menggunakan aplikasi web yang disimpan di GitHub. Jika Anda ingin mempelajari lebih lanjut cara pengimplementasian aplikasi, lihat repositori GoogleCloudPlatform/python-docs-samples di GitHub.
Luncurkan aplikasi web di setiap VM dalam grup instance terkelola dengan menyertakan skrip startup dalam template instance. Untuk mengizinkan traffic HTTP ke aplikasi web, buat aturan firewall.
Membuat aturan firewall
Buat aturan firewall untuk mengizinkan traffic HTTP ke aplikasi web:
Di konsol Google Cloud, buka halaman Firewall.
Klik Create firewall rule.
Di bagian Name, masukkan
default-allow-http
.Tetapkan Jaringan ke
default
.Tetapkan Target untuk memilih
Specified target tags
.Di bagian Tag Target, masukkan
http-server
.Setel Source filter ke
IPv4 ranges
.Di bagian Source IPv4 ranges, masukkan
0.0.0.0/0
untuk mengizinkan akses ke semua alamat IP.
Di bagian Protocols and ports, pilih Specified protocols and ports. Kemudian, pilih TCP dan masukkan
80
untuk mengizinkan akses untuk traffic HTTP.Klik Create.
Membuat template instance
Buat template instance yang meluncurkan aplikasi web demo saat memulai:
Di konsol Google Cloud, buka halaman Template instance.
Klik Create instance template.
Di bagian Name, masukkan
autoscaling-web-app-template
.Di bagian Konfigurasi mesin, tetapkan jenis mesin ke
e2-standard-2
.Di bagian Firewall, centang kotak Izinkan traffic HTTP. Tindakan ini akan menerapkan tag jaringan
http-server
ke setiap instance yang dibuat dari template ini.Luaskan bagian Advanced options untuk melihat setelan lanjutan.
Luaskan bagian Management.
Di bagian Automation, masukkan skrip startup berikut:
sudo apt update && sudo apt -y install git gunicorn3 python3-pip git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/compute/managed-instances/demo sudo pip3 install -r requirements.txt sudo gunicorn3 --bind 0.0.0.0:80 app:app --daemon
Skrip ini menyebabkan setiap VM menjalankan aplikasi web selama startup.
Klik Create.
Membuat grup instance terkelola
Buat grup instance regional untuk mulai menjalankan aplikasi web:
Di konsol Google Cloud, buka halaman Grup instance.
Klik Buat grup instance untuk membuat grup instance baru.
Pilih Grup instance terkelola baru (stateless)."
Untuk Name, masukkan
autoscaling-web-app-group
.Untuk Template instance, pilih
autoscaling-web-app-template
.Untuk Lokasi, pilih Beberapa zona.
Untuk Region, pilih us-central1.
Untuk Zones, pilih zona berikut dari menu drop-down:
- us-central1-b
- us-central1-c
- us-central1-f
Konfigurasikan penskalaan otomatis untuk grup instance:
- Untuk Mode penskalaan otomatis, pilih Aktif: tambah dan hapus instance ke grup.
Tetapkan Jumlah minimum instance ke
3
.Tetapkan Jumlah minimum instance ke
6
.Tetapkan Periode inisialisasi ke
120
detik.Di bagian Metrik Penskalaan Otomatis, pilih penggunaan CPU sebagai jenis metriknya. Untuk mempelajari metrik penskalaan otomatis lebih lanjut, lihat Kebijakan penskalaan otomatis.
Tetapkan Target penggunaan CPU ke
60
.Klik Done.
Di bagian Autohealing, pilih Tidak ada health check dari menu drop-down Health check.
Klik Buat. Tindakan ini akan mengalihkan Anda ke halaman Grup instance.
Untuk memastikan bahwa instance Anda berjalan:
- Pada halaman Grup instance di konsol Google Cloud, klik
autoscaling-web-app-group
untuk melihat instance dalam grup tersebut. Di bagian IP Eksternal, klik alamat IP untuk menghubungkan instance tersebut. Tab browser baru akan terbuka dan menampilkan aplikasi web demo:
Setelah selesai, tutup tab browser untuk aplikasi web demo.
- Pada halaman Grup instance di konsol Google Cloud, klik
Mengamati penskalaan otomatis
Untuk mengetahui informasi selengkapnya tentang perilaku penskalaan otomatis, lihat Memahami keputusan penskalaan otomatis.
Memantau penskalaan otomatis
Grup instance yang Anda buat menggunakan Kebijakan penskalaan otomatis berdasarkan
penggunaan CPU. Artinya, autoscaler menambah atau mengurangi grup sesuai kebutuhan
untuk mempertahankan target penggunaan CPU sebesar 60
%.
Untuk memantau ukuran dan penggunaan CPU grup instance Anda, gunakan diagram penskalaan otomatis di konsol Google Cloud:
- Pada halaman Grup instance untuk grup instance
autoscaling-web-app-group
, klik tab Pemantauan. - Anda dapat memantau penskalaan otomatis dari diagram Ukuran grup. Grafik menampilkan Instance, yang mewakili jumlah instance VM dalam grup dari waktu ke waktu.
Opsional: Untuk memantau kapasitas versus penggunaan yang diskalakan otomatis, lihat diagram Penggunaan Autoscaler (CPU). Grafik menampilkan Pemanfaatan, yang merupakan total penggunaan CPU instance VM dalam grup, dan Kapasitas, yang merupakan target penggunaan CPU kumulatif grup (target penggunaan CPU dikalikan dengan jumlah instance VM).
Penskalaan otomatis mencoba membuat Kapasitas cocok dengan Penggunaan dengan mengubah jumlah Instance, jika memungkinkan.
Biarkan jendela ini tetap terbuka.
Menyimulasikan penyebaran skala
Penyebaran skala terjadi saat penggunaan CPU rata-rata grup instance jauh lebih tinggi daripada nilai target. Selama penyebaran skala, autoscaler secara bertahap meningkatkan ukuran grup instance hingga penggunaan CPU berkurang ke nilai penggunaan CPU target atau sampai ukuran grup instance sama dengan Jumlah maksimum instance, yang sebelumnya ditetapkan ke 6
.
Untuk memicu penyebaran skala, tingkatkan penggunaan CPU untuk instance Anda:
Di konsol Google Cloud, buka Cloud Shell.
Cloud Shell akan terbuka di bagian bawah konsol Google Cloud. Perlu waktu beberapa detik untuk sesi dimulai.
Buat variabel bash lokal untuk project ID:
export PROJECT_ID=[PROJECT_ID]
dengan
PROJECT_ID
adalah project ID untuk project Anda saat ini, yang ditampilkan pada setiap baris baru di Cloud Shell:user@cloudshell:~ ([PROJECT_ID])$
Jalankan skrip bash berikut. Skrip ini menyebabkan instance aplikasi web demo mengalami peningkatan beban, sehingga meningkatkan penggunaan CPU. Setelah beberapa menit, penggunaan CPU akan melampaui nilai target, sehingga penskalaan otomatis akan meningkatkan ukuran grup instance.
export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "autoscaling-web-app-group") for i in $MACHINES; do NAME=$(echo "$i" | cut -f1 -d,) IP=$(echo "$i" | cut -f2 -d,) echo "Simulating high load for instance $NAME" curl -q -s "http://$IP/startLoad" >/dev/null --retry 2 done
Buka tab Pemantauan di konsol Google Cloud.
Setelah beberapa menit, tab Pemantauan menampilkan bahwa Penggunaan CPU meningkat, sehingga penskalaan otomatis meningkatkan Kapasitas dengan meningkatkan jumlah Instance.
Anda mungkin juga akan melihat bahwa 6 instance kini tercantum di bagian tab Ringkasan.
Biarkan kedua jendela tetap terbuka.
Menyimulasikan penurunan skala
Penurunan skala terjadi saat penggunaan CPU rata-rata grup instance jauh lebih rendah daripada nilai target. Selama penurunan skala, autoscaler secara bertahap menurunkan ukuran grup instance hingga penggunaan CPU meningkat ke nilai penggunaan CPU target atau sampai ukuran grup instance sama dengan Jumlah minimum instance, yang sebelumnya ditetapkan ke 3
.
Untuk memicu penurunan skala, kurangi penggunaan CPU untuk instance Anda:
Jalankan skrip bash berikut. Skrip ini menyebabkan instance aplikasi web demo mengalami penurunan beban, sehingga mengurangi penggunaan CPU. Setelah beberapa menit, pemakaian CPU akan turun di bawah nilai target, sehingga autoscaler akan mengurangi ukuran grup instance.
export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "autoscaling-web-app-group") for i in $MACHINES; do NAME=$(echo "$i" | cut -f1 -d,) IP=$(echo "$i" | cut -f2 -d,) echo "Simulating low load for instance $NAME" curl -q -s "http://$IP/stopLoad" >/dev/null --retry 2 done
Buka tab Pemantauan di konsol Google Cloud.
Setelah beberapa menit, tab Pemantauan menunjukkan bahwa Penggunaan CPU menurun. Setelah periode stabilisasi, yang memverifikasi bahwa beban secara konsisten berkurang, penskalaan otomatis mengurangi Kapasitas dengan mengurangi jumlah Instance.
Anda mungkin juga akan melihat bahwa hanya 3 instance yang tercantum di bagian tab Ringkasan.
Tutup kedua jendela setelah selesai.
Pembersihan
Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.
Jika Anda membuat project terpisah untuk tutorial ini, hapus seluruh project tersebut. Atau, jika project memiliki resource yang ingin Anda pertahankan, hapus resource yang dibuat dalam tutorial ini saja.
Menghapus project
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Menghapus resource tertentu
Menghapus grup instance
- In the Google Cloud console, go to the Instance groups page.
-
Select the checkbox for
your
autoscaling-web-app-group
instance group. - To delete the instance group, click Delete.
Menghapus template instance
Di konsol Google Cloud, buka halaman Template instance.
Klik kotak centang di samping
autoscaling-web-app-template
.Klik
Hapus di bagian atas halaman. Di jendela baru, klik Hapus untuk mengonfirmasi penghapusan.
Menghapus aturan firewall
Di konsol Google Cloud, buka halaman Aturan firewall.
Klik kotak centang di samping aturan firewall bernama
default-allow-http
.Klik
Delete. Di jendela baru, klik Delete untuk mengonfirmasi penghapusan.
Langkah selanjutnya
- Coba tutorial lain:
- Pelajari Grup Instance Terkelola lebih lanjut.
- Pelajari Penskalaan otomatis lebih lanjut.
- Pelajari lebih lanjut cara Merancang Sistem yang tangguh.
- Pelajari lebih lanjut cara Membuat Aplikasi Web yang Skalabel dan Tangguh di Google Cloud.