Tutorial: Menskalakan Set Skala Komputer Virtual secara otomatis dengan Azure CLI

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan perencanaan Anda yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

Saat membuat set skala, Anda menentukan jumlah instans komputer virtual yang ingin Anda jalankan. Saat permintaan aplikasi berubah, Anda dapat secara otomatis meningkatkan atau mengurangi jumlah instans VM. Kemampuan untuk menskalakan otomatis memungkinkan Anda mengikuti permintaan pelanggan atau menanggapi perubahan performa aplikasi sepanjang siklus hidup aplikasi Anda. Dalam tutorial ini, Anda akan mempelajari cara:

  • Menggunakan skala otomatis dengan set skala
  • Membuat dan menggunakan aturan skala otomatis
  • Menguji tekanan instans komputer virtual dan pemicu aturan skala otomatis
  • Skala otomatis kembali karena permintaan berkurang

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

  • Tutorial ini memerlukan versi antarmuka tingkat panggilan Azure 2.0.32 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.

Membuat set skala

Membuat grup sumber daya dengan membuat grup az.

az group create --name myResourceGroup --location eastus

Sekarang buat Virtual Machine Scale Set dengan az vmss create. Contoh berikut membuat set skala dengan jumlah instans 2, dan menghasilkan kunci SSH jika tidak ada.

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image <SKU image> \
  --orchestration-mode Flexible \
  --instance-count 2 \
  --admin-username azureuser \
  --generate-ssh-keys

Menentukan profil skala otomatis

Untuk mengaktifkan skala otomatis pada set skala, tentukan profil skala otomatis terlebih dahulu. Profil ini menentukan kapasitas set skala default, minimum, dan maksimum. Batas ini memungkinkan Anda mengontrol biaya dengan tidak terus-menerus membuat instans VM, dan menyeimbangkan kinerja yang dapat diterima dengan jumlah instans minimum yang tetap berada dalam peristiwa penskalaan. Buat profil skala otomatis dengan buat skala otomatis pemantau az. Contoh berikut menetapkan kapasitas default dan minimum 2 instans VM, dan maksimum 10:

az monitor autoscale create \
  --resource-group myResourceGroup \
  --resource myScaleSet \
  --resource-type Microsoft.Compute/virtualMachineScaleSets \
  --name autoscale \
  --min-count 2 \
  --max-count 10 \
  --count 2

Membuat aturan untuk skala otomatis

Jika permintaan aplikasi Anda meningkat, beban pada instans komputer virtual dalam set skala Anda juga akan meningkat. Jika peningkatan beban ini konsisten dan bukan permintaan singkat, Anda dapat mengonfigurasi aturan skala otomatis untuk meningkatkan jumlah instans VM dalam set skala. Ketika instans komputer virtual ini dibuat dan aplikasi Anda disebar, set skala akan mulai mendistribusikan lalu lintas kepada keduanya melalui penyeimbang beban. Anda mengontrol metrik apa yang akan dipantau, berapa lama beban aplikasi harus memenuhi ambang tertentu, dan berapa banyak instans VM yang akan ditambahkan ke set skala.

Buat aturan dengan buat aturan skala otomatis monitor az yang meningkatkan jumlah instans VM dalam set skala ketika beban CPU rata-rata lebih besar dari 70% selama periode 5 menit. Ketika aturan memicu, jumlah instans komputer virtual ditingkatkan tiga tingkat.

az monitor autoscale rule create \
  --resource-group myResourceGroup \
  --autoscale-name autoscale \
  --condition "Percentage CPU > 70 avg 5m" \
  --scale out 3

Membuat aturan untuk perluasan skala otomatis

Pada malam hari atau akhir pekan, permintaan aplikasi Anda mungkin menurun. Jika penurunan beban ini terjadi terus-menerus selama periode waktu tertentu, Anda dapat mengonfigurasi aturan skala otomatis untuk mengurangi jumlah instans komputer virtual dalam set skala. Tindakan penskalaan ini mengurangi biaya untuk menjalankan set skala Anda karena Anda hanya menjalankan jumlah instans yang diperlukan untuk memenuhi permintaan saat ini.

Buat aturan lain dengan buat aturan skala otomatis pemantauan az yang mengurangi jumlah instans VM dalam skala yang ditetapkan ketika beban CPU rata-rata kemudian turun hingga kurang dari 30% selama periode 5 menit. Contoh berikut mendefinisikan aturan untuk menskalakan dalam jumlah instans VM satu per satu.

az monitor autoscale rule create \
  --resource-group myResourceGroup \
  --autoscale-name autoscale \
  --condition "Percentage CPU < 30 avg 5m" \
  --scale in 1

Hasilkan beban CPU pada set skala

Untuk menguji aturan skala otomatis, berikan sebagian beban CPU pada instans komputer virtual dalam set skala. Beban CPU yang disimulasikan ini menyebabkan aturan skala otomatis diperluas dan meningkatkan jumlah instans VM. Karena beban CPU yang disimulasikan kemudian berkurang, aturan skala otomatis meluas dan mengurangi jumlah instans VM.

Untuk menyambungkan ke instans individual, lihat Tutorial: Koneksi ke instans Virtual Machine Scale Set

Setelah masuk, pasang utilitas stres atau stress-ng . Mulai 10pekerja stres yang menghasilkan beban CPU. Para pekerja ini dijalankan selama 420 detik, yang cukup untuk menyebabkan aturan skala otomatis menerapkan tindakan yang diinginkan.

sudo apt-get update
sudo apt-get -y install stress
sudo stress --cpu 10 --timeout 420 &

Ketika stres menunjukkan output yang mirip dengan stres: info: [2688] perlambatan pengiriman: 10 cpu, 0 io, 0 vm, 0 hdd, tekan tombol Enter untuk kembali ke wantian.

Untuk mengonfirmasi bahwa stres menghasilkan beban CPU, periksa beban sistem aktif dengan utilitas teratas:

top

Keluar dari atas, lalu tutup koneksi Anda ke instans VM. stres terus berjalan pada instans VM.

Ctrl-c
exit

Sambungkan ke instans VM kedua dengan nomor port yang tercantum pada az vmss list-instance-connection-info sebelumnya:

ssh azureuser@13.92.224.66 -p 50003

Instal dan jalankan stres atau stress-ng, lalu mulai sepuluh pekerja pada instans VM kedua ini.

sudo apt-get -y install stress
sudo stress --cpu 10 --timeout 420 &

Sama seperti sebelumnya, ketika stres menunjukkan output yang mirip dengan stres: info: [2713] perlambatan pengiriman: 10 cpu, 0 io, 0 vm, 0 hdd, tekan tombol Enter untuk kembali ke permintaan.

Tutup koneksi Anda ke instans VM kedua. stres terus berjalan pada instans VM.

exit

Memantau aturan skala otomatis aktif

Untuk memantau jumlah instans VM dalam set skala Anda, gunakan menonton. Dibutuhkan 5 menit agar aturan skala otomatis memulai proses perluasan skala sebagai respons terhadap beban CPU yang dihasilkan oleh Stres pada setiap instans VM:

watch az vmss list-instances \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --output table

Setelah ambang CPU terpenuhi, aturan skala otomatis meningkatkan jumlah instans VM dalam set skala. Output berikut menunjukkan tiga komputer virtual yang dibuat sebagai skala yang ditetapkan secara otomatis:

Every 2.0s: az vmss list-instances --resource-group myResourceGroup --name myScaleSet --output table

  InstanceId  LatestModelApplied    Location    Name          ProvisioningState    ResourceGroup    VmId
------------  --------------------  ----------  ------------  -------------------  ---------------  ------------------------------------
           1  True                  eastus      myScaleSet_1  Succeeded            myResourceGroup  4f92f350-2b68-464f-8a01-e5e590557955
           2  True                  eastus      myScaleSet_2  Succeeded            myResourceGroup  d734cd3d-fb38-4302-817c-cfe35655d48e
           4  True                  eastus      myScaleSet_4  Creating             myResourceGroup  061b4c90-0d73-49fc-a066-19eab0b3d95c
           5  True                  eastus      myScaleSet_5  Creating             myResourceGroup  4beff8b9-4e65-40cb-9652-43899309da27
           6  True                  eastus      myScaleSet_6  Creating             myResourceGroup  9e4133dd-2c57-490e-ae45-90513ce3b336

Setelah stres berhenti pada instans VM awal, beban CPU rata-rata kembali normal. Setelah 5 menit, aturan skala otomatis kemudian mengurangi skala jumlah instans komputer virtual. Tindakan pengurangan skala menghapus instans VM dengan ID tertinggi terlebih dahulu. Saat set skala menggunakan Set Ketersediaan atau Zona Ketersediaan, skala dalam tindakan didistribusikan secara merata di seluruh instans VM tersebut. Contoh output berikut menunjukkan satu instans komputer virtual dihapus sebagai skala yang ditetapkan skala otomatis di:

6  True                  eastus      myScaleSet_6  Deleting             myResourceGroup  9e4133dd-2c57-490e-ae45-90513ce3b336

Keluar menonton dengan Ctrl-c. Set skala terus berkurang dalam setiap 5 menit dan menghapus satu instans komputer virtual hingga jumlah instans minimum dua tercapai.

Membersihkan sumber daya

Untuk menghapus set skala dan sumber daya tambahan Anda, hapus grup sumber daya dan semua sumber dayanya dengan az group delete. Parameter --no-wait mengembalikan kontrol ke permintaan tanpa menunggu operasi selesai. Parameter --yes mengonfirmasi bahwa Anda ingin menghapus sumber daya tanpa permintaan tambahan untuk melakukannya.

az group delete --name myResourceGroup --yes --no-wait

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara mengurangi atau memperluas set skala secara otomatis dengan antarmuka tingkat panggilan Azure:

  • Menggunakan skala otomatis dengan set skala
  • Membuat dan menggunakan aturan skala otomatis
  • Menguji tekanan instans komputer virtual dan pemicu aturan skala otomatis
  • Skala otomatis kembali karena permintaan berkurang