Penskalaan dinamis untuk Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Penskalaan dinamis untuk Amazon EC2 Auto Scaling

Penskalaan dinamis menskalakan kapasitas grup Auto Scaling Anda saat terjadi perubahan lalu lintas.

Auto Scaling Amazon EC2 mendukung jenis kebijakan penskalaan dinamis berikut:

  • Penskalaan pelacakan target —Meningkatkan dan mengurangi kapasitas grup saat ini berdasarkan CloudWatch metrik Amazon dan nilai target. Ini bekerja mirip dengan cara termostat Anda mempertahankan suhu rumah Anda—Anda memilih suhu dan termostat melakukan sisanya.

  • Penskalaan langkah — Meningkatkan dan mengurangi kapasitas grup saat ini berdasarkan serangkaian penyesuaian penskalaan, yang dikenal sebagai penyesuaian langkah, yang bervariasi berdasarkan ukuran pelanggaran alarm.

  • Penskalaan sederhana —Meningkatkan dan mengurangi kapasitas grup saat ini berdasarkan penyesuaian penskalaan tunggal, dengan periode cooldown antara setiap aktivitas penskalaan.

Kami sangat menyarankan agar Anda menggunakan kebijakan penskalaan pelacakan target dan memilih metrik yang berubah berbanding terbalik dengan perubahan kapasitas grup Auto Scaling Anda. Jadi, jika Anda menggandakan ukuran grup Auto Scaling Anda, metriknya berkurang 50 persen. Hal ini memungkinkan data metrik untuk secara akurat memicu peristiwa penskalaan proporsional. Termasuk metrik seperti pemanfaatan CPU rata-rata atau jumlah permintaan rata-rata per target.

Dengan pelacakan target, grup Auto Scaling Anda menskalakan dalam proporsi langsung dengan beban aktual pada aplikasi Anda. Itu berarti bahwa selain memenuhi kebutuhan mendesak akan kapasitas dalam menanggapi perubahan beban, kebijakan pelacakan target juga dapat beradaptasi dengan perubahan beban yang terjadi dari waktu ke waktu, misalnya, karena variasi musim.

Kebijakan pelacakan target juga menghilangkan kebutuhan untuk menentukan CloudWatch alarm dan penyesuaian penskalaan secara manual. Auto Scaling Amazon EC2 menangani ini secara otomatis berdasarkan target yang Anda tetapkan.

Cara kerja kebijakan penskalaan dinamis

Kebijakan penskalaan dinamis menginstruksikan Auto Scaling Amazon EC2 untuk melacak metrik CloudWatch tertentu, dan menentukan tindakan apa yang harus diambil saat CloudWatch alarm terkait ada di ALARM. Metrik yang digunakan untuk memanggil status alarm adalah agregasi metrik yang berasal dari semua instance dalam grup Auto Scaling. (Misalnya, katakanlah Anda memiliki grup Auto Scaling dengan dua instance di mana satu instance berada pada CPU 60 persen dan yang lainnya pada CPU 40 persen. Rata-rata, mereka berada di CPU 50 persen.) Ketika kebijakan diberlakukan, Auto Scaling Amazon EC2 menyesuaikan kapasitas yang diinginkan grup naik atau turun saat ambang alarm dilanggar.

Ketika kebijakan penskalaan dinamis dipanggil, jika penghitungan kapasitas menghasilkan angka di luar rentang ukuran minimum dan maksimum grup, Auto Scaling Amazon EC2 memastikan bahwa kapasitas baru tidak pernah melampaui batas ukuran minimum dan maksimum. Kapasitas diukur dengan salah satu dari dua cara: menggunakan unit yang sama yang Anda pilih saat Anda mengatur kapasitas yang diinginkan dalam hal instance, atau menggunakan unit kapasitas (jika bobot instance diterapkan).

  • Contoh 1: Grup Auto Scaling memiliki kapasitas maksimum 3, kapasitas saat ini 2, dan kebijakan penskalaan dinamis yang menambahkan 3 instans. Saat menjalankan kebijakan ini, Auto Scaling Amazon EC2 hanya menambahkan 1 instans ke grup untuk mencegah grup melebihi ukuran maksimumnya.

  • Contoh 2: Grup Auto Scaling memiliki kapasitas minimum 2, kapasitas saat ini 3, dan kebijakan penskalaan dinamis yang menghapus 2 instans. Saat menjalankan kebijakan ini, Auto Scaling Amazon EC2 hanya menghapus 1 instans dari grup untuk mencegah grup menjadi kurang dari ukuran minimumnya.

Ketika kapasitas yang diinginkan mencapai batas ukuran maksimum, penskalaan berhenti. Jika permintaan turun dan kapasitas turun, Amazon EC2 Auto Scaling dapat kembali menaikkan skala.

Pengecualiannya adalah saat Anda menggunakan bobot instance. Dalam instance ini, Amazon EC2 Auto Scaling dapat menskalakan di atas batas ukuran maksimum, tetapi hanya sampai dengan bobot maksimal yang Anda inginkan. Tujuannya adalah untuk sedekat mungkin dengan kapasitas baru yang diinginkan tetapi tetap mematuhi strategi alokasi yang ditentukan untuk grup. Strategi alokasi menentukan jenis instance yang akan diluncurkan. Bobot tersebut menentukan berapa banyak unit kapasitas yang dikontribusikan tiap-tiap instance pada kapasitas yang diinginkan grup berdasarkan tipe instance.

  • Contoh 3: Grup Auto Scaling memiliki kapasitas maksimum 12, kapasitas saat ini 10, dan kebijakan penskalaan dinamis yang menambahkan 5 unit kapasitas. Jenis instance memiliki satu dari tiga bobot yang ditetapkan: 1, 4, atau 6. Saat menjalankan kebijakan, Amazon EC2 Auto Scaling memilih untuk meluncurkan jenis instans dengan bobot 6 berdasarkan strategi alokasi. Hasil dari peristiwa peningkatan skala ini adalah grup dengan kapasitas yang diinginkan sebesar 12 dan kapasitas saat ini sebesar 16.

Beberapa kebijakan penskalaan dinamis

Dalam sebagian besar kasus, kebijakan penskalaan pelacakan target cukup untuk mengonfigurasi grup Auto Scaling Anda untuk menaikkan atau menurunkan skala secara otomatis. Kebijakan penskalaan pelacakan target memungkinkan Anda memilih hasil yang diinginkan dan meminta grup Auto Scaling menambahkan dan menghapus instance sesuai kebutuhan untuk mencapai hasil tersebut.

Untuk konfigurasi penskalaan tingkat lanjut, grup Auto Scaling Anda dapat memiliki lebih dari satu kebijakan penskalaan. Misalnya, Anda dapat menentukan satu atau lebih kebijakan penskalaan pelacakan target, satu atau lebih kebijakan penskalaan langkah, atau keduanya. Ini memberikan fleksibilitas yang lebih besar untuk mencakup beberapa skenario.

Untuk mengilustrasikan cara kerja bersama beberapa kebijakan penskalaan dinamis, pertimbangkan aplikasi yang menggunakan grup Auto Scaling dan antrean Amazon SQS untuk mengirim permintaan ke satu instans EC2. Untuk membantu memastikan bahwa aplikasi bekerja pada tingkat optimal, ada dua kebijakan yang mengontrol ketika grup Auto Scaling harus ditingkatkan. Salah satunya adalah kebijakan pelacakan target yang menggunakan metrik khusus untuk menambah dan menghapus kapasitas berdasarkan jumlah pesan SQS dalam antrean. Yang lainnya adalah kebijakan penskalaan langkah yang menggunakan CloudWatch CPUUtilization metrik Amazon untuk menambah kapasitas ketika instance melebihi 90 persen pemanfaatan untuk jangka waktu tertentu.

Jika ada beberapa kebijakan yang berlaku pada saat yang sama, ada kemungkinan bahwa setiap kebijakan dapat menginstruksikan grup Auto Scaling untuk meningkatkan skala (atau menurunkan skala) pada saat yang sama. Misalnya, ada kemungkinan bahwa CPUUtilization metrik melonjak dan melanggar ambang CloudWatch alarm pada saat yang sama ketika metrik kustom SQS melonjak dan melanggar ambang alarm metrik khusus.

Jika situasi ini terjadi, Amazon EC2 Auto Scaling memilih kebijakan yang menyediakan kapasitas terbesar untuk menaikan dan menurunkan skala. Misalkan, kebijakan untuk CPUUtilization meluncurkan satu instance, sementara kebijakan untuk antrean SQS meluncurkan dua instance. Jika kriteria peningkatan skala untuk kedua kebijakan terpenuhi pada saat yang sama, Amazon EC2 Auto Scaling memberikan prioritas pada kebijakan antrean SQS. Hal ini menghasilkan grup Auto Scaling yang meluncurkan dua instance.

Pendekatan pemberian prioritas terhadap kebijakan yang memberikan kapasitas terbesar berlaku bahkan ketika kebijakan menggunakan kriteria yang berbeda untuk penskalaan. Misalnya, jika satu kebijakan menghentikan tiga instance, kebijakan lain mengurangi jumlah instance sebesar 25 persen, dan grup memiliki delapan instance pada saat menurunkan skala, Amazon EC2 Auto Scaling memberikan prioritas pada kebijakan yang menyediakan jumlah instance terbesar untuk grup tersebut. Ini menghasilkan grup Auto Scaling yang menghentikan dua instance (25 persen dari 8 = 2). Tujuannya adalah untuk mencegah Amazon EC2 Auto Scaling menghapus terlalu banyak instance.

Namun, kami menyarankan Anda berhati-hati ketika menggunakan kebijakan penskalaan pelacakan target dengan kebijakan penskalaan langkah karena adanya konflik di antara kebijakan ini dapat menyebabkan perilaku yang tidak diinginkan. Misalnya, jika kebijakan penskalaan langkah memulai aktivitas penurunan skala sebelum kebijakan pelacakan target siap untuk diterapkan, aktivitas penurunan skala tidak akan diblokir. Setelah aktivitas peningkatan skala selesai, kebijakan pelacakan target dapat menginstruksikan grup untuk kembali meningkatkan skala.