aws-logo

Amazon Autoscaling Web Server – 2

pada tulisan pertama, Aitech mencoba membuat membuat instance baru di AWS EC2 dan juga membuat Amazon Machine Image (AMI) yang sudah dilengkapi dengan web server dan php sehingga bisa digunakan sebagai template untuk Autoscale. Jika pembaca belum mengerti bagaimana caranya membuat AMI, silahkan baca dulu bahagian pertama baru membaca bahagian kedua.

Bag. 2: Setting Auto Scaling

Memiliki sebuah server dengan ribuan pengguna tentu akan membuat masalah sendiri bagi Administrator, apalagi jika sampai kejadian server tersebut tidak bisa diakses pada jam-jam tertentu, kata orang “posisi taruhannya” alias siap siap kena pecat :), salah satu cara untuk mengakali itu adalah dengan membuat auto-scaling, yaitu teknik dengan memantau aktivitas dan cpu jika mencapai threshold tertentu akan mereplikasi 1 mesin yang sama. untuk membuat AWS Autoscaling, dibutuhkan beberapa hal sebagai berikut:

  • Amazon Machine Image (AMI) : merupakan template snapshot yang sudah didefinisikan sebelumnya
  • Elastic Load Balancer (ELB) : Sebuah Load Balancer Virtual yang akan memantau events/kejadian
  • CloudWatch(CW) : perkakas untuk memantau EC2 Instances

Bagaimana AutoScaling Bekerja

Secara umumnya, Autoscaling itu akan bekerja seperti berikut:

  1. menggunakan AMI yang sudah di definisikan, AutoScaling Group akan mengaktifkan instance lainnya
  2. dengan CloudWatch yang digunakan memonitor instances, sehingga ketika satu kejadian yang sudah dibuat itu terjadi, maka akan direplikasi sebuah instance baru di Amazon EC2
  3. EC2 instances berjalan dalam group Load Balancer (ELB) yang sudah dibuat.
  4. ELB akan mengirim setiap trafik menggunakan logaritma round-robin ke seluruh instances yang aktif, jika ada instance yang tidak aktif maka ELB secara automatis menghapus EC2 tersebut dari round-robin
  5. CW akan mengirimkan alarm terhadap penggunaan CPU, misal > 80%, server load, network trafik dll.
  6. Pastikan juga menghapus EC2 instances jika CPU resource yang digunakan sudah normal kembali, ini juga bisa dibuat secara automatis dalam Autoscaling Group

Membuat Autoscaling Config

Login ke AWS Console dan masuk ke Services –> EC2 –> Launch Configuration

as-01

Klik “Create Auto Scaling Group” seperti gambar berikut:

as-02

Pada dialog berikutnya, pilih tombol “Create launch Configuration

as-03

Setelah itu ikut setiap dialog yang muncul, pastikan memilih AMI yang sudah dibuatkan sebelumnya

as-04

karena disini Aitech hanya menggunakan autoscaling untuk uji coba, tipe instance yang dipilih tentu saja yang free 🙂 silahkan menyesuaikan dengan kebutuhan masing-masing

as-05

selanjutnya memberikan nama kepada launch group ini, pastikan namanya unik dan mudah dipahami

as-06

Storage disini juga tidak perlu harus terlalu besar, kami memilih 8 GB saja

as-07

Untuk Security Group, Aitech melewatkan seluruh trafik in dan out, sesuaikan juga dengan keperluan masing-masing

as-08

Berikut summary sementara yang Aitech gunakan untuk opsi Launch Configuration, jangan lupa gunakan existing key pair atau buat key pair yang baru untuk bisa terhubung dengan AMI image yang nanti dibuat:

as-09

 

Membuat Auto Scaling Group

pada bagian sebelumnya, kita sudah mendefinisikan template yang akan digunakan dan juga security dari autoscaling mesin yang akan dibuat, sekarang Aitech mencoba membuat autoscaling groupnya.

as-11

pada gambar diatas, pastikan memilih opsi Advance, dan bagian Health Check Type pilih ELB

as-17

pada bagian group policy, pastikan juga memilih “Add new alarm” yang akan digunakan sebagai threshold untuk menjalankan instance baru, digambar diatas kami mendefinisikan jika mencapai utilisasi CPU 75% maka akan dibuat instance yang baru.

Kira-kira group policy yang sudah Aitech sesuaikan pada akhirnya adalah sebagai berikut :

group policy summary

 

LOAD TESTING

ini bagian yang ditunggu tunggu pastinya, disini kami akan menggunakan satu perkakas yang kami gunakan untuk mensimulasikan website trafik ke server ec2 yang sudah dibuat, perkakas yang kami gunakan adalah siege, siege mampu membuat ratusan atau ribuan concurrent HTTP requests ke URL dengan durasi tertentu. dengan perkakas ini maka kita bisa melihat apakah scaling policies yang dibuat bisa berjalan sesuai harapan. mari kita flooooood sistemnya sekarang 🙂

pertama, pastikan dahulu siege sudah terinstall

 

pada bahagian pertama, Aitech sudah membuat sebuah host demo.alifia.co.id – dimana host direktorinya berada pada /var/www/demo.alifia.co.id/htdocs, Aitech akan membuat 1 berkas dengan nama test.php yang akan menjalankan perintah untuk membuat CPU meningkat.

test.php

berikut cara menggunakan siege, disini Aitech akan membuat 25 concurrent connection dengan rentan waktu (-t) untuk pengetesan, sebagai berikut:

setelah menunggu 6 sampai 10 menit, akhirnya Aitech melihat ada beberapa mesin yang berjalan ketika cpu sampai pada threshold yang dimaksud, dan instance tersebut secara automatis diterminasi jika CPU sudah tidak setinggi threshold awal.

as-20

 

autoscaling-launching

terlihat ada 3 instance yang berjalan, dan proses terminasi juga berjalan dengan sempurna pada saat siege sudah berhenti 🙂 demikian hasil uji coba Aitech untuk autoscaling web server. silahkan hubungi kami pada menu kontak jika ada masalah.

 

<<Aitech Labs – 19 September 2015>>

Leave A Comment

Your email address will not be published. Required fields are marked (required):

Back to Top