Secara harfiah, Load Balancing adalah pembagian beban secara seimbang sedangkan dalam bidang komputer, load balancing merupakan proses distribusi beban terhadap sebuah service yang ada pada sekumpulan sever atau perangkat jaringan ketika ada permintaan dari pengguna. Tujuan dari load balancing adalah untuk mendapatkan pemanfaatan sumber daya yang optimal, memaksimalkan throughput dan meminimalkan waktu respon.
Secara singkat cara kerja load balancing adalah jika ada satu server yang tidak mampu menangani sebuah request atau apabila ada server yang sibuk karena terlalu banyak request dari client, maka digunakan server yang lain yang tergabung dalam load balancing. Maka dari itu, agar bisa membuat load balancing, diperlukan minimal 2 buah server atau perangkat jaringan.
Load balancing bisa digunakan untuk aplikasi di server atau bandwidth di router, namun artikel kali ini akan lebih banyak menerangkan tentang load balancing di server. Di server pun, load balancing banyak digunakan untuk beberapa aplikasi namun yang sering dipergunakan adalah load balancing untuk web server. Lokasi load balancer berada di depan server-server yang akan dijadikan cluster seperti yang terlihat pada gambar berikut:
II. Apache Load Balancer
Ada banyak aplikasi yang dipergunakan untuk menggunakan load balancing untuk web server, diantaranya adalah aplikasi apache balancer. Sebenarnya aplikasi ini merupakan modul bawaan apache sehingga tidak perlu untuk mendownload karena ketika kita sudah mendownload apache maka secara otomatis modul balancer sudah turut terinstal dalam sistem. Untuk menggunakan modul balancer, pastikan 3 modul balancer yang berada di file httpd.conf tidak di disable:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
Kemudian pastikan juga fitur proxy yang berada di file httpd.conf didisable seperti contoh berikut:
ProxyRequests Off
<Proxy \*>
Order deny,allow
Deny from all
</Proxy>
<Proxy \*>
Order deny,allow
Deny from all
</Proxy>
Kemudian kita masuk ke konfigurasi inti dari apache load balancer yang
diletakkan di bagian akhir dari file httpd.conf. Konfigurasi inti dari
apache load balancer berformat sebagai berikut:
<Proxy balancer://A_name_signifying_your_app>
BalancerMember http://ip_address:port/ loadfactor=appropriate_load_factor # Balancer member 1
BalancerMember http://ip_address:port/ loadfactor=appropriate_load_factor # Balancer member 2
ProxySet lbmethod=the_Load_Balancing_algorithm
</Proxy>
BalancerMember http://ip_address:port/ loadfactor=appropriate_load_factor # Balancer member 1
BalancerMember http://ip_address:port/ loadfactor=appropriate_load_factor # Balancer member 2
ProxySet lbmethod=the_Load_Balancing_algorithm
</Proxy>
Untuk memudahkan pemahaman, penulis akan memberikan contoh dengan
menggunakan 3 web server yang masing-masing isi dari file index.html
adalah Ini Website A (192.168.56.102), B (192.168.56.103), dan C
(192.168.56.104). Kemudian kita buat Load Balancer di IP 192.168.56.101
dengan nama latihanlinux.co.cc. Untuk sementara kita akan mencoba
menggunakan load balancer agar masing-masing web server mempunyai beban
yang sama, maka di file httpd.conf kita tuliskan script sebagai berikut:
<Proxy balancer://clusterABC>
BalancerMember http://192.168.56.102
BalancerMember http://192.168.56.103
BalancerMember http://192.168.56.104
Order allow,deny
Allow from all
</Proxy>
ProxyPass / balancer://clusterABC/
Sekarang kita akan mencobanya dengan memanggil situs latihanlinux.co.cc
tetapi sepertinya agak melelahkan kalau kita buka satu persatu. Maka
penulis menggunakan perintah repeat yang digunakan untuk mengulang
perintah sebanyak 12 kali:
# repeat 12 lynx --source http://latihanlinux.co.cc
# repeat 12 lynx --source http://latihanlinux.co.cc
Terlihat bahwa Load Balancer membagi beban sama rata ke seluruh server. Kemudian kita ingin agar server C mempunyai beban 3x lebih banyak dari kedua server yang lain, server B mempunyai beban 2x lebih banyak dari server A, maka di file httpd.conf ditambahkan load factor seperti contoh berikut:
<Proxy balancer://clusterABC>
BalancerMember http://192.168.56.102 loadfactor=1
BalancerMember http://192.168.56.103 loadfactor=2
BalancerMember http://192.168.56.104 loadfactor=3
Order allow,deny
Allow from all
</Proxy>
ProxyPass / balancer://clusterABC/
BalancerMember http://192.168.56.102 loadfactor=1
BalancerMember http://192.168.56.103 loadfactor=2
BalancerMember http://192.168.56.104 loadfactor=3
Order allow,deny
Allow from all
</Proxy>
ProxyPass / balancer://clusterABC/
Maka jika kita menggunakan perintah repeat, hasilnya akan seperti berikut:
Terlihat bahwa server C mendapat 6 request, server B mendapat 4 request
dan server A mendapat 2 request. Dan perlu juga diketahui bahwa ada 2
metode yang sering dipergunakan di dalam apache load balancer yaitu
metode bytraffic dan byrequest. Secara default,apache load balancer
menggunakan metode byrequest. Metode request mendistribusikan beban
kerja berdasarkan request yang ditentukan oleh nilai dari loadfactor,
sedangkan metode bytraffic hampir sama dengan byrequest hanya saja
metode bytraffic melihat jumlah byte dibandingkan dengan jumlah request.
Jika kita ingin mengaplikasikan metode byrequest bisa dilihat dari
contoh berikut:
<Proxy balancer://clusterABC>
BalancerMember http://192.168.56.102 loadfactor=1
BalancerMember http://192.168.56.103 loadfactor=2
BalancerMember http://192.168.56.104 loadfactor=3
ProxySet lbmethod=bytraffic
Order allow,deny
Allow from all
</Proxy>
ProxyPass / balancer://clusterABC/
BalancerMember http://192.168.56.102 loadfactor=1
BalancerMember http://192.168.56.103 loadfactor=2
BalancerMember http://192.168.56.104 loadfactor=3
ProxySet lbmethod=bytraffic
Order allow,deny
Allow from all
</Proxy>
ProxyPass / balancer://clusterABC/
III. Balance Manager
Ada opsi untuk mempermudah pengaturan perubahan load factor dan juga melihat web server mana yang mendapat beban kerja yaitu menggunakan balancer manager. Masukkan script berikut di antara tanda </Proxy> dan ProxyPass
Ada opsi untuk mempermudah pengaturan perubahan load factor dan juga melihat web server mana yang mendapat beban kerja yaitu menggunakan balancer manager. Masukkan script berikut di antara tanda </Proxy> dan ProxyPass
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
#Deny from all
Allow from all
</Location>
ProxyPass /balancer-manager !
SetHandler balancer-manager
Order Deny,Allow
#Deny from all
Allow from all
</Location>
ProxyPass /balancer-manager !
Kemudian restart apache, setelah itu buka browser dan ketikkan:
http://ipserver/balancer-manager/
dan akan terlihat tampilan sebagai berikut:
http://ipserver/balancer-manager/
dan akan terlihat tampilan sebagai berikut:
Sekarang coba refresh situs tersebut, maka akan tampak tampilan sebagai berikut:
sumber : catatanlepas.com