Load balancing adalah proses pendistribusian traffic jaringan ke beberapa server. Ini untuk memastikan salah satu server tidak menanggung terlalu banyak beban permintaan. Server website yang kelebihan beban membuat proses muat halaman menjadi lambat, atau bahkan tidak terhubung sama sekali.
Secara sederhana, berikut cara kerja load balancing:
- Pengguna meminta akses masuk server website / aplikasi
- Load balancer menerima dan mendistribusikan traffic ke beberapa server
- Jika satu server down, perangkat ini mengalihkan traffic ke server lain yang tersedia
Baca Juga: Load Balancing Web dengan NGINX
Terdapat beberapa pilihan software opensource yang dapat digunakan untuk membuat lingkungan web load balancing. Salah satu yang paling umum digunakan ialah Haproxy. Tutorial ini akan menggunakan Haproxy sebagai software utama untuk mengatur load balancing.
Langkah-langkah membuat load balancing dengan Haproxy
1. Persiapan server
Gunakan 3 server / VM yang saling terkoneksi, misalnya:
- VM-1 : 192.168.1.14 (sebagai server Haproxy)
- VM-2 : 192.168.1.15 (sebagai node web server 1)
- VM-3 : 192.168.1.17 (sebagai node web server 2)
2. Konfigurasi VM-1 sebagai server Haproxy
2.1 Sebelum melakukan instalasi HAproxy terlebih dahulu update repository ubuntu, dengan cara: > sudo apt update
2.2 Selanjutnya lakukan instalsi HAproxy dengan perintah > sudo apt install haproxy
2.3 Setelah proses instalasi haproxy selesai, tambahkan IP dari masing-masing web server dengan cara > sudo nano /etc/hosts
2.4 Langkah selanjutnya, melakukan konfigurasi load balancer pada file haproxy.cfg. Buka file tersebut dengan perintah: > sudo nano /etc/haproxy/haproxy.cfg
2.5 Tambahkan Haproxy listener pada bagian bawah file config:
frontend front-loadbalance
bind 192.168.1.14:80
mode http
default_backend back-loadbalance
2.6 Tambahkan konfigurasi backend server pada bagian bawah:
backend back-loadbalance
balance roundrobin
server web-server1 192.168.1.15 check port 80
server web-server2 192.168.1.17 check port 80
2.7 Tambahkan enable stat untuk monitoring status load balancing:
listen stats
bind 192.168.1.14:8080
stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth username:password
stats uri /stats
2.8 Save, kemudian cek status HAproxy > systemctl restart haproxy.service
2.9 Jika langkah sebelumnya Valid, maka restart HAproxy service menggunakan perintah > haproxy –c –f /etc/haproxy/haproxy.cfg
3. Konfigurasi node server (untuk VM-2 dan VM-3)
3.1 Langkah pertama yang dilakukan adalah menginstall apache2 dengan perintah > sudo apt install apache2
3.2 Setelah apache berhasil terinstall, langkah selanjutnya adalah mengedit file konfigurasi di file host dengan menggunakan perintah > sudo nano /etc/hosts (Pada file tersebut masukkan IP haproxy seperti pada gambar berikut):
3.3 Setelah itu, aktifkan service apache2 dengan perintah > sudo systemctl enable apache2
3.4 Kemudian restart apache2 menggunakan perintah > sudo systemctl restart apache2
3.5 Masuk ke directory web host: > cd /var/www/html
3.6 Buat index.html dengan perintah > sudo touch index.html
3.7 Buat halaman sederhana pada index.html > sudo nano index.html, contohnya:
<html>
<body> Ini halaman web dari node web server 1</body>
</html>
3.8 Uji coba akses melalui browser
3.9 Lakukan proses yang sama untuk VM-3 / node server ke-2
4. Uji coba load balancing
4.1 Akses IP server Haproxy
* Halaman akan menampilkan dari server mana halaman tersebut berasal
4.2 Akses stats pada IP server haproxy, contoh URL: http://192.168.1.14:8080/stats
4.3 Jika ada permintaan login, masukkan username & password sesuai isian configurasi pada bagian 2.7
4.4 Hasil stat