Pengelolaan server, terutama server dengan layanan yang membutuhkan skalabilitas tinggi dan high availability butuh komponen yang dapat mengefisiensikan trafik jaringan. Komponen ini dinamakan Load Balancer. Salah satu load balancer yang banyak digunakan oleh perusahaan baik perusahaan berskala kecil hingga berskala besar adalah HAProxy.
Apa Itu HAProxy
HAProxy (High Availability Proxy) adalah komponen load balancer bersifat open source yang dapat digunakan untuk mendistribusikan lalu lintas jaringan ke beberapa backend server secara efisien. Penggunaan load balancer bertujuan untuk meningkatkan performa dan keandalan dari layanan yang dicakup.
Fungsi HAProxy
Load Balancing
Seperti yang sudah sempat dijelaskan sebelumnya, HAProxy bekerja dengan cara mendistribusikan beban trafik ke beberapa backend server. Hal ini bertujuan agar tidak ada server yang terbebani secara berlebihan. Ada beberapa jenis algoritma yang didukung oleh HAProxy:
- Round-robin: pembagian beban dilakukan secara bergiliran ke setiap server.
- Least connections: memilih server dengan jumlah koneksi aktif yang paling sedikit.
- Source: memetakan alamat IP klien ke server tertentu secara konsisten.
Reverse Proxy
Selain menjadi load balancer, HAProxy juga bertindak sebagai perantara antara pengguna layanan (misalnya pengguna situs web) dan backend server. Cara kerjanya adalah HAProxy menerima request dari klien dan koneksi tersebut diteruskan ke server yang sesuai. Dari sisi klien hanya melihat HAProxy tersebut sebagai “titik tujuan” sehingga sistem internal yang asli lebih terlindungi visibilitasnya.
SSL Termination
SSL termination adalah proses di mana koneksi SSL di-dekripsi oleh HAProxy sebelum diteruskan ke backend server secara koneksi HTTP. Hal ini dimaksudkan untuk mengurangi beban kerja di backend server (tidak perlu melakukan dekripsi SSL lagi).
Health Check
HAProxy secara berkala akan memeriksa status backend server melalui mekanisme health check ini. Apabila terdeteksi ada server yang tidak merespons, maka HAProxy akan secara otomatis mengalihkan trafik ke server yang masih berjalan/aktif.
Contoh Skenario Penggunaan HAProxy
- Suatu perusahaan memiliki tiga buah web server untuk menangani aplikasi tertentu.
- HAProxy dipasang di depan tiga web server tersebut.
- Ketika ada pengguna yang menggunakan/mengakses aplikasi tersebut, request dari pengguna akan diteruskan oleh HAProxy ke salah satu web server yang ada secara otomatis.
- Apabila terjadi gangguan pada salah satu web server (misalnya crash/down), maka pengguna tetap bisa menggunakan aplikasi tersebut tanpa menyadari ada gangguan pada server. Karena trafik sudah dialihkan HAProxy ke server lain yang masih tersedia.
Penutup
HAProxy merupakan salah satu solusi untuk kebutuhan load balancing dan reverse proxy dalam infrastruktur server modern. Dengan kemampuan HAProxy dalam melakukan manajemen trafik tinggi, melakukan pemantauan server, dan berbagai fungsi lainnya, HAProxy dapat membantu meningkatkan kinerja sistem anda secara keseluruhan.

