Tuesday, February 28, 2017

load balancing web server dengan haproxy

http://dhenandi.web.id/load-balancing-web-server-dengan-haproxy/



oke


Bismillahirrahmannirahim,
Hari ini saya menjadi assisten presentasi untuk Gathering/Kopdar Excellent Insight yang membahas Load Balancing dengan HAProxy kemudian disambungkan dengan replikasi database. Menurut saya sangat seru sekali belajar materi ini, karena mungkin mahal harganya :-D. Kenapa saya bilang mahal ?? Materi ini digunakan untuk server-server skala besar.

What is The Meaning of Load Balance ??

Jieh, sekali-kali sok lah pake Bahasa linggis ðŸ˜€ wkwk. Dari judulnya aja udah keren, apa sih load balance itu ?? Load balancing adalah sebuah konsep menyeimbangkan beban pada server . Itu initiya. Jika semakin besar jaringan maka semakin besar pula traffic yang didapatkan dan Load balancer berperan sebagai solusi dari masalah tersebut.
Masih ga ngerti??. Kita ambil contoh sebuah website yang memiliki traffic tinggi seperti detik.com atau Kompas.com atau yang lainnya ðŸ˜€. Jika hanya mempunyai Satu webserver saja sementara pengunjungnya banyak maka website tersebut akan mengalami collapse / down. Contoh kedua kita ambil saja website SNMPTN atau pendaftaran mahasiswa ke perguruan tinggi, ketika calon mahasiswa melakukan pendaftaran di seluruh Indonesia secara bersamaan maka terdesak pula si website tersebut dan load balance berguna agar membagi traffic tersebut kepada masing-masing server yang ada dijaringan.
Masih ga ngerti juga ?? Ambil saja contoh nyatanya. Ketika anda ke sebuah Bank besar, pasti banyak nasabah-nasabah yang mempunyai tujuan di bank tersebut. Maka banyak pula teller-teller yang ada di bank tersebut. Bayangkan saja jika Bank tersebut memiliki pengunjung 1000 per hari (Banyak banget wkwkw) namun hanya ada satu teller yang melayani para nasabah. Apa yang terjadi ?? yah “If you Know What I Mean“. Si Teller itu malah jadi bener-bener Teler :-D. Kalau di ibaratkan nasabah itu “pengunjung“, Teller itu “server“. Maka si Teller di Load Balancing menjadi banyak tidak hanya 1 agar dapat melayani nasabah-nasabah yang ada secara efektif.

Teknik Load Balancing

Karena ilmu saya masih cetek kaya kolam ikan, yang saya ketahui dari teknik load balancing ada 2. Mungkin jika ada yang mau menambahkan silahkan hubungi saya :-D. Teknik Load Balancing ada 2 yaitu :
  1. RoundRobin

    Teknik RoundRobin adalah dengan cara menganggap bahwa semua beban server sama, jadi setiap server yang ada di akses secara bergantian dan berurutan. Salah satu kekurangan Teknik ini yaitu apabila ada server yang mati maka RoundRobin akan tetap mengakses server tersebut.
  2. Least Connection

    Beda halnya dengan RoundRobin, Teknik LeastConnection lebih hebat karena akan mengalihkan beban ke server yang dianggap kosong atau trafficnya rendah.

Trus Gimana ??

Gimana apanya ðŸ˜€ ??. Banyak cara untuk melakukan load balancing seperti GlusterFS, DRBD atau yang lainnya, namun saya lebih percaya dengan HAProxy. HAProxy menawarkan solusi Load Balancing yang cukup handal dan sudah di Implementasikan. Salah satu keuntungan menggunakan HAProxy yaitu dapat melayani semua port TCP yang ada lain halnya dengan DRBD yang hanya melayani port 80 saja.

Fitur HAProxy

  1. Dapat di buat Master-Slave, jadi ada 2 Load Balancing yaitu master dan slave. Jika Load Balancing Master mati maka dapat menggunakan Load Balancing Slave.
  2. Support Load Balancing untuk beberapa server.
  3. Jika server mati otomatis trafik nya pun dihentikan.
  4. Support banyak service seperti Email, Database dll.
  5. Ada Statistik yang dapat dipantau oleh SysAdmin secara mudah

Instalasi HAProxy

  1. Topologi
oke
Instalasi HAProxy dapat di install pada distro linux server seperti Ubuntu, SLES, atau CentOS, dalam hal ini saya menggunakan SLES sebagai sistem operasinya.
Jika menggunakan SUSE, haproxy dapat di install menggunakan repo SUSE build service yaitu padahttp://software.opensuse.org/. dan menambahkan repository kedalam SLES.
Menggunakan ubuntu :
Menggunakan CentOS / RedHat :

Konfigurasi HAProxy

Secara default konfigurasi HAProxy terdapat pada /etc/haproxy/haproxy.cfg. Saya sudah menyiapkan skrip untuk HAProxy. Jalankan perintah berikut :
Tambahkan skrip berikut :
Oke jika sudah restart service dari HAProxy :

Simulasi Load Balancing

Pastikan kedua Web Server sudah berjalan dengan baik, sebagai contoh pembuktian coba bedakan identitas di server pertama dan kedua. Jalankan perintah berikut :
Pada Web server 1 :
Pada Web server 2 :
Buka Web browser dengan mengakses IP HAProxy, refresh terus jika tampilannya berbeda seperti berikut maka load balancing sudah berjalan dengan baik :
alpha-oke








bravo-oke





Banyak yang bertanya sampai saya bosen. KOK TAMPILANNYA BEDA MAS ??? Ini bisa disesusaikan. Sebagai pembuktian saja agar load balancingnya berjalan atau tidak. Jika tampilannya sama tidak akan ketahuan apakah load balancing sudah berjalan dengan semestinya :-). Agar di kedua sisi server sama bisa dilakukan sinkronisasi di kedua server dengan menggunakan rsync atau lainnya.

Penutup

Saya berharap tutorial ini dapat membantu rekan-rekan yang membutuhkannya, Jika ada kesalahan saya mohon maaf. Saya berharap komentar dari rekan-rekan demi kemajuan blog ini :-).