Sering kali router/server kita mengalami kelebihan beban atau overload. Load balancing merupakan solusi untuk masalah tersebut.
What is Load Balancing?
Load balancing adalah cara atau teknik yang membuat server agar tidak kelebihan traffic/beban. Dengan adanya load balancing, beban kerja dan traffic dapat didistribusikan ke seluruh resource server. Dulu di masa-masa awal Internet, sangat jelas terlihat bahwa satu aplikasi di satu server tidak dapat menangani traffic yang tinggi. Traffic yang tinggi menuju ke server dengan jumlah yg besar akan membebani satu server, terlepas dari seberapa kuat infrastruktur yg mendasarinya
How Does Load Balancing Work?/Bagaimana Cara Kerja Load Balancing
- Trafik datang ke situs anda. Pengunjung situs anda mengirim banyak request bersamaan ke server anda.
- Trafik didistribusikan pada semua resource server. Perangkat keras / lunak load balancer, akan mengarahkan trafik ke node server yg cocok.
- Setiap server akan mendapatkan beban kerja yang seimbang. Node menerima request dan dapat menanggapi load balancer karena tidak kelebihan beban atau overload.
- Server mengembalikan request tersebut. Proses ini diselesaikan dalam urutan terbalik untuk mengirimkan respons server kembali ke pengguna.
Tetapi perlu diperhatikan bahwa cara kerja tersebut berlaku jika ada beberapa resource (baik server, jaringan, atau virtual). Jika hanya ada satu resource server atau instance komputasi, semua beban kerja didistribusikan ke tempat yang sama dan tidak didapat diimplementasikan.
Tujuan dan manfaat load balancing
- Sebagai penyeimbang trafik/beban. Load balancing bertindak seperti polisi lalu lintas atau filter yg bertugas mengatur trafik yg datang melalui Internet. Hal Ini bertujuan untuk mencegah salah satu server kelebihan beban. Oleh karena itu, setiap node dapat bekerja dengan lebih efisien.
- Sebagai Firewall. Dalam beberapa tahun terakhir, load balancing dikenal sebagai Application Delivery Controllers (ADC). ADC bertujuan untuk menyediakan beberapa fitur keamanan. Selain mencegah salah satu resource menjadi kewalahan dan kelebihan beban, load balancer memiliki manfaat untuk keamanan dan produktivitas. ADC sering digunakan sebagai keamanan/firewall, yang membantu melindungi dari berbagai jenis ancaman termasuk serangan Denial of Service (DOS). Teknik ini juga sering melibatkan duplikasi konten dan beban kerja aplikasi, yang memungkinkan lebih dari satu salinan resource untuk diakses pada satu waktu.
Jenis Load Balancing
Dibedakan menjadi dua menggunakan hardware dan software. Keduanya memiliki kelebihan dan kekurangan.
- Hardware Load Balancer ,performa lebih tinggi ,fleksibilitas kurang ,virtualisasi bawaan, memerlukan banyak ruang(secara fisik),cocok digunaan untuk multiuser, cost yang dikeluarkan jauh lebih mahal, tidak terlalu banyak konfigurasi. Contoh cisco, baracuda load balancer, kemp loadbalancer, dll.
- Software Load Balancer, performa rendah, fleksibilitas tinggi ,tidah bisa virtualiasi, tidak memerlukan banyak ruang(secara fisik),hanya bisa digunakan untuk single user, cost yang dikeluarkan jauh lebih kecil, banyak konfigurasi. Contoh nginx, incapsula, HAProxy.
Algoritma Load Balancing
Berdasarkan konfigurasi jenis di atas, ada berbagai teknik/algoritma yang menentukan bagaimana beban kerja diseimbangkan
- Round Robin: Satu set IP untuk server / resource jaringan dan traffic diarahkan ke resource dalam urutan yang terdaftar. Atau mudahnya beban akan dibagikan secara bergiliran dan berurutan dari server satu ke yang lain.
- Least Connection: pembagian beban didasarkan pada jumlah traffic yg paling kecil/sedikit. Resource/server dengan jumlah trafik paling sedikit akan diarahkan untuk mendapatkan request baru.
- Ratio: pembagian berdasarkan ratio. Setiap server nantinya akan diberikan ratio, ratio yang paling besar yang akan mendapat beban paling besar.