AWS EC2 Auto Scaling

 AWS EC2 Auto Scaling

Penskalaan otomatis membantu memastikan jumlah instan EC2 yang benar tersedia untuk menangani beban kerja, memantau kinerja sumber daya, pengelolaan kapasitas.

Saat menjalankan aplikasi pada instance EC2, penting untuk memantau kinerja beban kerja menggunakan cloud watch. Namun, CloudWatch sendiri tidak akan menambah atau menghapus instance EC2. 

Contoh dari grafik diatas menggunakan CloudWatch untuk mengukur kebutuhan sumber daya EC2 selama 1 minggu, perlu diperhatikan bahwa kebutuhan sumber daya bervariasi, rabu membutuhkan kapasitas terbanyak dan sabtu paling sedikit. 

Bisa saja mengalokasikan kapasitas EC2 secara berlebihan agar selalu dapat memenuhi permintaan tertinggi, yaitu dalam hal ini, hari rabu, tapi itu jadi menjalankan sumber daya yang kurang dimanfaatkan hampir setiap hari dalam seminggu. Hal ini merupakan pilihan, tetapi pemanfaatan biaya tidak optimal.

Sebaliknya, dapat dikurangi alokasi instan EC2 untuk menurunkan biaya. Ini berarti akan kekurangan kapasitas pada hari-hari tertentu, dan jika masalah kapasitas ini tidak diselesaikan, maka aplikasi bisa berkinerja buruk atau bahkan berpotensi time out bagi pengguna.

Jelas, ini bukan hal yang baik. Penskalaan otomatis memungkinkan untuk menambah atau menghapus instance EC2 berdasarkan kondisi yang ditentukan, penskalaan otomatis sangat berguna di lingkungan yang kebutuhan kinerjanya berfluktuasi, agar dapat mempertahankan kinerja dan meminimalkan biaya.


Apa yang dimaksud penskalaan?

Pertama, konsep dari scaling out dan scaling in. penskalaan otomatis dapat menyesuaikan otomatis. Jumlah instance EC2 yang berjalan dalam beban kerja berdasarkan kondisi yang ditentukan, misalnya penggunaan CPU lebih dari 80%, atau jadwal. Jika penskalaan otomatis menambah instans, ini disebut scaling out. Jika penskalaan otomatis mematikan instant, ini disebut scaling in. 

Ada 3 Komponen yang diperlukan untuk penskalaan otomatis

1. Konfigurasi peluncuran: (Apa?)

Ini tentang mendefinisikan apa yang akan diluncurkan oleh penskalaan otomatis, perlu dipikirkan hal-hal saat meluncurkan instance EC2 dari konsol, seperti AMI mana yang akan digunakan, grup atau peran keamanan jenis instance apa yang akan diterapkan ke instance.

  • Ami
  • Jenis instans
  • Perang grup
  • Keamanan

2. Grup penskalaan otomatis: (Dimana?)

Ini ditujukan untuk menentukan dimana deployment akan dilakukan dan Batasan untuk deployment tersebut. Disinilah penentuan VPC yang mana, instan di deploy dan load balancer yang akan berinteraksi dengannya. Jika menetapkan minimum 2, maka instan lain akan diluncurkan untuk menggantikannya. Jika menetapkan maksimum 8 maka jumlah instan dalam grup maka tidak akan !> 8. 

  • VPC dan subnet
  • Load balancer
  • Instans minimum
  • Instans maksimum
  • Kapasitas yang diinginkan

3. Kebijakan penskalaan otomatis: (kapan?)

menentukan kapan instance EC2 harus diluncurkan atau dihentikan. Misalnya dapat menjadwalkan penskalaan otomatis setiap kamis pukul 15.00 atau dibuat kondisi yang menentukan ambang batas agar memicu penambahan atau penghapusan instan. Kebijakan berbasis kondisi membuat penskalaan otomatis menjadi dinamis dan mampu memenuhi kebutuhan yang berfluktuasi. Sebaiknya buat minimum 1 kebijakan penskalaan otomatis agar memicu scale out dan 1 kebijakan agar memicu scale in.

  • Terjadwal
  • Sesuai permintaan
  • Kebijakan scale-out
  • Kebijakan scale-in


Penskalaan otomatis dinamis

Salah satu konfigurasi umum adalah membuat alarm CloudWatch berdasarkan informasi kinerja dari instance EC2, atau load balancer. Ketika ambang batas kinerja dilanggar, maka alarm CloudWatch memicu peristiwa penskalaan otomatis yang akan melakukan scale out atau scale in instan EC2.


Alarm CloudWatch untuk penskalaan otomatis.

Contoh alarm cloud watch

Bagian pertama alarm adalah kondisi dengan ambang batas tertentu. Dalam hal ini, penggunaan CPU lebih dari 80%. Perhatikan juga ada jangka waktu yang ditentukan dan dapat dikontrol. Maka berarti itu bisa menentukan alarm yang akan menyala jika penggunaan CPU > 80% selama 5 menit berturut-turut. Jangka waktu penting karena tak baik jika penskalaan otomatis memicu instans baru karena penggunaan prosesor melonjak selama 30 detik. 

Bagian kedua alarm adalah tindakan harus dilakukan setelah alarm terpicu. Dengan penskalaan otomatis, Tindakan ini bisa menambah atau menghapus instance. Jadi CPU > 80% selama 1 periode, 5 menit secara default, penskalaan otomatis akan menambah 2 instan baru ke grup penskalaan otomatis. Saat instans ditambahkan, penggunaan CPU akan menurun. 

Serta alarm CloudWatch lain harus disetel untuk menentukan kapan instan harus dihentikan dari grup penskalaan otomatis misalnya jika penggunaan CPU berada < 20% selama > 5 menit berturut-turut, maka akan menghentikan 1 instan. 

Keuntungannya adalah penskalaan otomatis dapat mengelola beban kerja secara dinamis agar berfokus pada masalah lainnya.

Tahap proses:

  • Buat konfigurasi peluncuran.
  • Buat grup penskalaan otomatis
  • Buat kebijakan penskalaan otomatis
  • Memicu penskalaan otomatis


Komentar