EP6: Bagaimana Load Balancer Berfungsi
Belajar bagaimana Load Balancing membantu memastikan aplikasi web anda berfungsi dengan baik.
Pernahkah anda terfikir, bagaimana syarikat ecommerce seperti Shopee dan Lazada yang mempunyai trafik laman web yang sangat banyak pada waktu tertentu seperti hari jualan besar-besaran, menguruskan server supaya tidak berlaku sebarang masalah seperti “server down”?
Salah satu strategi yang digunakan adalah Load Balancing.
APA ITU LOAD BALANCING?
Load Balancing adalah satu konsep teknologi yang penting dan berkait rapat dengan networking dimana ia membantu untuk mengedarkan trafik yang datang daripada pengguna kepada beberapa server yang berada di belakang Load Balancer.
Ia bagi memastikan penggunaan server yang optimum, ‘response time’ yang pantas dan mengelakkan penggunaan satu server yang berlebihan sehingga menyebabkan server tidak dapat berfungsi dengan baik dan trafik tidak dapat diproses dengan sempurna.
BAGAIMANA LOAD BALANCER BERFUNGSI?
Load Balancer akan sentiasa memantau kesihatan server yang berada dibelakangnya bagi memastikan trafik yang diberikan kepada server tersebut dapat diproses dengan baik. Salah satu cara semakan kesihatan server dibuat adalah dengan cara membuat ujian capaian (connectivity test) kepada port server yang tertentu seperti port 80 atau 443. Sekiranya port tersebut boleh diakses oleh Load Balancer, ia bermaksud server tersebut berada dalam keadaan sihat dan boleh menerima trafik. Kriteria pemantauan lain adalah seperti kadar penggunaan CPU, RAM dan Network pada server.
Apabila pengguna menghantar trafik kepada web server menggunakan protokol seperti HTTP, trafik tersebut akan pergi kepada Load Balancer terlebih dahulu, kemudian baru diagihkan kepada web server. Dalam keadaan ini, Load Balancer juga berfungsi sebagai Reverse Proxy.
Trafik yang datang kepada Load Balancer perlu diagihkan kepada server yang berada dibelakangnya. Proses pengagihan ini boleh ditentukan oleh kita sendiri berdasarkan beberapa jenis algoritma pengagihan:
Round Robin: Trafik diagihkan dengan sama rata kepada semua server yang berada dibelakangnya.
Least Connections: Setiap trafik datang akan diberikan kepada server yang mempunyai trafik aktif paling sedikit.
Weighted Round Robin: Ia hampir sama seperti Round Robin, tetapi setiap server diberikan pemberat yang berbeza berdasarkan kemampuan server tersebut untuk menguruskan sejumlah trafik.
IP Hash: Load Balancer akan mengedarkan trafik kepada server yang berada dibelakangnya berdasarkan IP pengguna. Ia bagi memastikan pengguna yang sama akan sentiasa dihantar kepada server yang sama setiap kali sambungan dilakukan.
Least Response Time: Trafik yang datang kepada Load Balancer akan diedarkan kepada server di belakangnya mengikut Response Time yang paling sedikit. Dalam situasi ini, Load Balancer akan sentiasa memantau Response Time server-server tersebut.
Berdasarkan algoritma pengagihan yang telah dipilih dan ditetapkan, Load Balancer akan menghantar trafik kepada mana-mana server yang berada dibelakangnya yang bersedia untuk menerima trafik dan berada dalam keadaan sihat.
Trafik yang telah siap diproses oleh server akan dihantar semula kepada pengguna.
Seterusnya, Load Balancer akan terus memantau kesihatan server yang berada dibelakangnya secara berkala. Mana-mana server yang tidak sihat atau tidak respon kepada ujian capaian yang dilakukan, akan ditandakan sebagai tidak sihat dan tidak bersedia untuk menerima trafik. Oleh itu, trafik tidak akan dihantar kepada server tersebut sehinggalah ia kembali sihat dan bersedia.
Untuk makluman anda, selain daripada mengagihkan trafik kepada sever dan juga sebagai Reverse Proxy, Load Balancer juga befungsi sebagai SSL/TLS termination dimana ia membantu untuk mewujudkan sambungan selamat antara pengguna dan server dengan menggunakan SSL Certificate. Anda boleh baca berkenaan bagaimana SSL Certificate berfungsi pada artikel berikut :
Terdapat dua jenis Load Balancer iaitu dalam bentuk perkakasan dan juga perisian. Kebanyakan Load Balancer yang digunakan adalah dalam bentuk perisian kerana adaptasi teknologi Cloud. Contoh Load Balancer adalah seperti Nginx, HAProxy, AWS Elastic Load Balancing, Azure Load Balancer, Kemp Load Balancer dan F5 Big-IP.
Anda pernah ada pengalaman menggunakan Load Balancer ? Cuba kongsikan Load Balancer apa yang anda guna dan bagaimana ia digunapakai pada persekitaran kerja anda.