Komunitas Cloud Indonesia

Membuat Elastic Load Balancer

Penulis :   |   July 14, 2012

ELB (Elastic Load Balancing) adalah layanan dari AWS untuk menerapkan strategi load balancer, dimana beban komputasi akan dibagi kepada beberapa EC2 instance. ELB mengatur dan mengarahkan setiap traffic yang masuk untuk ditugaskan kepada EC2 instance yang tidak sibuk.

Semua traffic dari luar harus masuk melalui ELB, karena itu ELB memegang public DNS. Dengan public DNS ini kita gunakan untuk entrian CNAME pada setting nama domain. Untuk lebih jelasnya mengenai hal ini, silahkan baca artikel sebelumnya.

Untuk dapat menjalankan strategi load balancer, kita perlu membagi beban komputasi antara web app dan database. Database harus diletakkan dalam EC2 instance terpisah, atau dapat juga memanfaatkan layanan Amazon RDS (Relational Database Service). EC2 instance web app akan diduplikasi pada dua atau lebih EC2 instance sehingga ELB memiliki beberapa pilihan EC2 untuk penugasan.

Pada dasarnya fungsi ELB dapat digantikan dengan membuat sebuah EC2 instance yang bertugas mengatur load balancing. Anda tinggal membuat EC2 instance dengan sistem operasi linux dan membuat pengaturan untuk round robin DNS. Namun, Round robin dns is the poor mans load balancer. Di sini Round robin DNS bukan solusi yang kita cari. Dengan menggunakan ELB kita mendapatkan kemampuan untuk:

  • Mendeteksi status healthy dari masing-masing EC2 instance
  • Auto-scale bila memenuhi kondisi yang telah diatur sebelumnya

Persiapan

Sebelum membuat ELB, kita perlu menyiapkan EC2 instance untuk web app yang memiliki konfigurasi yang sama. Kita dapat membuat AMI baru berdasarkan EC2 instance yang telah kita setup sebelumnya.

Buat AMI baru.

Beri nama pada AMI yang akan kita buat.

Setelah AMI terbuat, kita dapat membuat EC2 instance lain dengan konfigurasi yang sama tanpa perlu melakukan setup ulang seperti pada EC2 instance sebelumnya.

Selanjutnya buat satu EC2 instance baru sehingga kita memiliki dua EC2 instance yang sama. Gunakan AMI yang telah kita buat sebelumnya untuk membuat EC2 instance yang baru.

Sampai di sini kita telah melakukan persiapan dengan memiliki dua EC2 instance yang sama untuk menjalankan web app. Pada kasus sebenarnya, anda dapat menambahkan sebanyak EC2 instance yang anda butuhkan.

Langkah-langkah dalam membuat ELB

Pilih menu Load Balancers. Tekan Create Load Blancer.

Masukkan nama ELB yang akan kita buat.

Kita bisa melakukan pengaturan load balance terhadap port mana saja yang kita perlukan. Pada kesempatan ini kita akan mencoba membuat load balancer untuk web app. Untuk itu kita melakukan pengaturan pada port 80 (HTTP).

Selanjutnya anda bisa melakukan pengaturan mengenai bagaimana status health akan diberikan. Pada saat ini kita gunakan pengaturan default. Perlu untuk diketahui bahwa dalam melakukan ping yang dibutuhkan adalah kembalian berupa http status 200 OK. Di sini kita cukup dengan masukan index.html, namun pada kasus sesungguhnya adalah diarahkan pada alamat web app kita sehingga diketahui respond time sesungguhnya.

Selanjutnya melakukan registrasi EC2 instance yang akan digunakan. Pilih dua EC2 instance yang telah kita siapkan sebelumnya.

Berikut adalah review dari ELB yang akan kita buat.

Public DNS

Untuk mengetahu public DNS dari ELB, pilih ELB yang telah kita buat.

Lakukan uji coba dengan menggunakan public DNS dari ELB dengan membuka di browser.

Berikut adalah status dari EC2 instance yang bekerja pada ELB yang telah kita buat. Anda mungkin tertarik untuk mencoba menghentikan EC2 instance dan menguji coba kembali public DNS ELB lewat browser.

Perlu anda ketahui bahwa ELB hanya bekerja pada EC2 instance dengan region yang sama. EC2 instance dapat berbeda Availability Zone namun harus pada region yang sama.

Berikut adalah daftar region yang tersedia: US East (Northern Virginia), US West (Oregon), US West (Northern California), EU (Ireland), Asia Pacific (Singapore), Asia Pacific (Tokyo), dan South America (Sao Paulo).

Masing-masing dari region tersebut memiliki beberapa Availability Zone, yaitu lokasi fisik dari datacenter yang digunakan.

sumber: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html

Selamat, anda telah dapat membuat dan mengkonfigurasi ELB. Terdapat satu fungsi utama dari ELB yang belum kita bahas, yaitu auto-scale, yaitu menambah dan mengurangi EC2 instance secara otomatis berdasarkan parameter yang telah kita tentukan sebelumnya.

Sayangnya, pada saat ini fungsi auto-scale masih belum bisa dimanfaatkan dengan menggunakan AWS console. Untuk menggunakan fitur ini kita harus menggunakan command line interface atau API yang disediakan oleh AWS. Semoga pada kesempatan mendatang kita bisa mengulas kemampuan auto scale.

  1. Lowongan .NET Developer
  2. Lowongan Android Developer
  3. Lowongan Java Developer
  4. Jakarta Cloud Computing Meetup 09.2016
  5. Big Data dengan Google Cloud

Penulis :

Dody Rachmat Wicaksono adalah seorang freelance web dan mobile app developer di Surabaya. Memiliki antusias dalam hal sejarah manusia (ibn Katsir) dan software engineering, termasuk di dalamnya agile development (kanban), programming (PHP, JS, RoR, XCode, Titanium), dan cloud services.

Komentar

7 thoughts on “Membuat Elastic Load Balancer
  1. Budi

    Layanan ini tersedia di versi yg gratis (free) nya nggak ya?

    Reply
      1. Iyan

        Mas Dody, bukannya yang free tier itu hanya untuk 1 instance saja ya? padahal untuk configure ELB paling nggak kan butuh 2 instance? jadi yang 1 instancenya harus bayar lagi kan?
        Tolong koreksi kalau salah

        Reply
        1. dodyrw Post author

          750 jam sebulan adalah jumlah komulatif yg kita pakai. Dg asumsi kita stop instance tsb selesai pakai, maka memungkinkan menjalankan beberapa ec2 instance sekaligus dalam satu waktu.

          Misal kita coba bikin ELB, pakai 5 instance. Percobaan kita memakan waktu 3 jam. Dan setelahnya EC2 instance tsb kita stop semua. Maka pemakaian kita adalah:

          5 EC2 instance X 3 jam = 15 jam


          Jadi pastikan untuk mematikan EC2 instance setelah selesai mencoba. Stop instance bukan berarti menghapus / terminate. Kalo terminate, maka data2 kita akan terhapus. Kalo stop adalah semacam shut down saja.

          Reply
          1. Iyan

            setuju sih, cuman kalau buat production sepertinya harus butuh 2 instance jalan, dan nggak bisa di cover dari layanan yang free ya?

  2. Togap Tartius

    nice article. kebetulan kantor saya saat ini juga lagi migrasi bertahap ke aws.

    tapi layanan free-nya saya lihat tetap perlu memasukkan info kartu kredit. susah juga kalau ga punya.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *