Ketika ribuan pengguna mengakses situs web atau aplikasi secara bersamaan, akan terjadi peningkatan traffic yang tinggi. Hal ini dapat menyebabkan server mengalami overload (down) karena tidak mampu menangani semua permintaan yang diterima. Untuk mengatasi situasi tersebut, HAProxy adalah salah satu solusi yang tepat.
Pada artikel kali ini, kita akan membahas mengenai apa itu HAProxy, Fungsi, Load balancing, hingga tipe load balancing pada HAProxy.
Apa itu HAProxy?
HAProxy adalah singkatan dari High Availability Proxy, yaitu perangkat lunak yang berfungsi sebagai penyeimbang traffic untuk aplikasi yang berbasis HTTP atau TCP.
Sistem Haproxy bekerja dengan membagi permintaan atau request yang masuk ke beberapa server backend yang tersedia. Dengan demikian, beban server akan didistribusikan secara merata diantara server-server tersebut.
HAProxy dirancang khusus untuk digunakan dalam lingkungan jaringan yang sibuk dan kompleks. Tujuannya adalah memastikan bahwa setiap permintaan dari klien diproses dengan efisien dan diarahkan ke server backend yang paling cocok, sehingga menjaga ketersediaan aplikasi atau layanan dan memastikan akses yang cepat.
HAProxy adalah proyek open source yang berada di bawah lisensi GPLv2, yang memungkinkan kita menjalankannya pada berbagai sistem operasi seperti Linux, FreeBSD, dan Solaris.
BACA JUGA | Proxy Server: Pengertian dan Manfaatnya
Fitur HAProxy
Beberapa fitur dan fungsi yang dimiliki oleh HAProxy antara lain:
1. Load balancing
HAProxy memungkinkan kita untuk mendistribusikan lalu lintas aplikasi secara optimal di antara beberapa server backend. Dalam hal ini, HAProxy mendukung beberapa algoritma load balancing, seperti round-robin, least-connection, dan source-based, yang dapat dipilih sesuai dengan kebutuhan aplikasi atau layanan yang digunakan.
2. Health checking
HAProxy dapat memeriksa kesehatan setiap server backend dan mengeluarkan server yang tidak berfungsi atau tidak sehat dari pool server yang tersedia. Dalam kondisi tersebut, HAProxy akan mengarahkan seluruh lalu lintas ke server backend normal lainnya sampai server yang bermasalah dapat online kembali.
3. SSL/TLS offloading
HAProxy juga dapat digunakan untuk menangani enkripsi SSL/TLS, semua lalu lintas jaringan dienkripsi menggunakan SSL, dan ssl hanya beroperasi pada server HAProxy. Hal ini berfungsi untuk membebaskan server backend dari beban enkripsi dan memungkinkan server untuk fokus pada pemrosesan data aplikasinya saja.
4. Caching
HAProxy dapat melakukan caching permintaan untuk mempercepat waktu respons, mengurangi beban server backend, dan meningkatkan kinerja aplikasi.
Selengkapnya tentang cache dapat dipelajari pada artikel: Apa itu Cache Memory dan Bagaimana Cara Kerjanya?
5. Rate limiting
HAProxy dapat mengontrol jumlah permintaan yang diterima dari klien dalam periode waktu tertentu, sehingga dapat membantu mengurangi risiko serangan DDoS atau peretasan pada server backend.
6. Statistic
Pada fitur bawaan HAProxy memiliki halaman panel khusus untuk mengetahui statistik load balancing, sehingga dapat memudahkan kita untuk memantau beban trafik.
7. Service load balancing
Selain dipergunakan untuk load balancing web server, HAProxy dapat digunakan oleh banyak service seperti email (smtp), database, dan aplikasi lainnya.
Secara keseluruhan, HAProxy adalah perangkat lunak load balancer yang andal dan efisien, dan dapat membantu meningkatkan ketersediaan, skalabilitas, dan keandalan aplikasi atau layanan.
Mengenal apa itu Load Balancing
Load balancing adalah proses pembagian beban trafik secara merata diantara beberapa server untuk mencegah overload atau beban berlebih pada satu server tunggal. Dengan menggunakan load balancing, lalu lintas aplikasi atau situs web dapat didistribusikan secara efisien sehingga meningkatkan kinerja, ketersediaan, dan skalabilitas sistem.
Dengan menggunakan load balancing, waktu respons dari sebuah server dapat dipercepat karena banyak server backend yang bekerja sama untuk melayani permintaan. Terutama bagi situs web dengan tingkat akses trafik yang sangat tinggi, seperti Instagram, GitHub, Twitter, dan lainnya, load balancing menjadi sangat penting.
Untuk memahami konsep Load Balancing, penting untuk mengetahui beberapa algoritma yang digunakan dalam sistem pembagian beban oleh alat load balancer. Berikut beberapa tipe dari load balancing.
Metode Load Balancing
Berikut adalah beberapa metode yang dapat Anda pilih pada konfigurasi HAProxy:
1. Round Robin
Round Robin adalah salah satu metode load balancing yang paling sederhana. Setiap permintaan klien diarahkan secara bergantian ke server backend yang tersedia.
HAProxy mengatur urutan pemrosesan secara berurutan, sehingga setiap server backend menerima permintaan dengan cara yang adil. Metode ini cocok untuk lingkungan dimana server backend memiliki kemampuan pemrosesan yang serupa.
2. Least Connection
Least Connection adalah metode HAProxy yang digunakan mengarahkan permintaan ke server backend dengan jumlah koneksi terendah pada saat itu. Dengan menggunakan metode ini, HAProxy akan melakukan pengecekan kepada server yang memiliki kinerja paling ringan, dan mengarahkan permintaan ke server tersebut karena memiliki kapasitas pemrosesan yang lebih sedikit.
Metode ini cocok digunakan jika Anda memiliki kapasitas Server dan memory server yang berbeda-beda. Contohnya seperti server A memiliki ram 4GB dan server B memiliki ram 2GB, maka kita dapat mengalihkan lebih banyak trafik ke server A.
3. Source IP Hash
Metode ini melakukan pendistribusian lalu lintas jaringan berdasarkan data yang berhubungan dengan IP (incoming packet) dari pengguna. Sederhananya adalah alamat IP pengguna menentukan server mana yang akan mendapatkan permintaan data.
Misalnya, data seperti IP destinasi, URL, Domain hingga port number akan menentukan server mana yang akan mendapatkan permintaan data.
4. Least Response Time
Least Response Time adalah salah satu metode HAProxy yang berfungsi untuk mengarahkan permintaan ke server backend yang memiliki waktu respons tercepat. HAProxy akan memantau waktu respons dari masing-masing server backend, dan mengarahkan permintaan ke server yang merespons dengan waktu yang lebih cepat. Metode ini efektif dalam meningkatkan waktu respons keseluruhan aplikasi.
5. URL Hash
Metode URL Hash menggunakan nilai hash dari URL permintaan untuk mengarahkan permintaan ke server backend yang sesuai. Biasanya, metode ini digunakan pada server yang memiliki fungsi cache pada halaman tertentu.
6. Sticky Sessions
Metode Sticky Sessions memastikan bahwa permintaan dari klien tertentu selalu diarahkan ke server backend yang sama. HAProxy menggunakan teknik seperti cookie untuk menjaga koneksi konsisten antara klien dan server backend yang telah ditentukan sebelumnya.
Jika sebelumnya klien akses lalu diarahkan ke server backend A, maka koneksi seterusnya akan selalu dialihkan ke server A. Ini penting dalam beberapa kasus di mana aplikasi membutuhkan session yang konsisten, seperti login ke situs web.
Selain metode diatas, HAProxy juga mendukung beberapa metode lainnya seperti Weighted Round Robin, Least Bandwidth, dan Least Sessions. Penggunaan metode load balancing yang tepat tergantung pada karakteristik aplikasi/layanan yang kita gunakan dan kebutuhan spesifik dari lingkungan jaringan yang ada.
Cara install Load Balancing dengan HAroxy
Bagi Anda yang akan memulai usaha bisnis startup, penting untuk mempertimbangkan penggunaan load balancing agar website bisnis kita selalu dapat diakses dengan cepat dan efisien. Tidak hanya itu, pemilihan server yang tepat juga menjadi salah satu hal untuk memastikan website Anda tetap dapat diakses.
Rumahweb menyediakan VPS KVM dengan 2 lokasi data center yang berbeda, serta didukung backend network hingga 1Gbps untuk memenuhi kebutuhan high availability HAProxy Anda.
Selengkapnya tentang cara install load balancing dengan HAProxy pada VPS KVM bisa Anda baca pada artikel berikut: Cara Install Load Balancing HAProxy di Ubuntu 20.04
Demikian artikel kami tentang apa itu HAProxy, semoga bermanfaat.