Load Balancer: Penyelamat antrian pada website

Muhammad Azis Husein
4 min readDec 1, 2019

--

(Sumber: https://hackernoon.com/what-is-amazon-elastic-load-balancer-elb-16cdcedbd485)

Setelah menjalankan kehidupan semester tiga yang penuh dengan dinamika, akhirnya salah satu mata kuliah yang saya ambil yaitu Perancangan dan Pemrograman Web merilis tugas individu terakhirnya. Tugas individu ini biasa kami sebut dengan sebutan story, dan story terakhir ini adalah story ke-10. Saya belum sempat menceritakan keseruan proses pengerjaan mulai dari story ke-1 sampai story ke-9, mungkin lain waktu akan saya bagikan ceritanya kepada kalian. Akan tetapi untuk saat ini saya ingin menceritakan story ke-10 terlebih dahulu karena story yang satu ini mewajibkan saya berbagi cerita dalam blog pribadi saya.

Oke, mari kita mulai masuk ke inti dari story ke-10 ini. Jadi, pada story ke-10 ini topik bahasannya adalah Load Balancer. Apa itu Load Balancer? Kalau kita terjemahkan ke dalam Bahasa Indonesia, Load Balancer memiliki arti penyeimbang beban. Lalu sebenarnya beban apa yang diseimbangkan oleh Load Balancer? Mari kita bahas perlahan.

Bayangkan ada sebuah toko, sebut saja Ind*maret, di mana toko ini setiap harinya dikunjungi oleh ribuan pembeli. Mungkinkah toko tersebut melayani pembelinya hanya dengan mengandalkan satu orang kasir? Jawabannya mungkin! Namun, hal tersebut pastinya akan memakan waktu yang lama dan sangat melelahkan bagi sang kasir. Maka dari itu, pemilik toko tersebut membagi pelayanan kepada pembeli ke beberapa kasir yang melakukan pelayanan yang sama kepada setiap pembeli yang datang. Dengan demikian, antrean pembeli tidak akan terlalu panjang dan waktu antrean yang lebih sedikit.

(Sumber: https://idcloudhost.com/memahami-pentingnya-load-balancing/)

Sama halnya dengan Ind*maret, sebuah website juga akan memiliki antrean yang sangat panjang jika penggunanya sudah banyak dan pelayannya hanya satu. Maka dari itu sebuah website membutuhkan Load Balancer untuk mengatasi hal tersebut. Konsep Load Balancer hampir mirip dengan konsep kasir yang sebelumnya sudah saya ceritakan. Jadi, Load Balancer adalah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi.

Simple-nya, Load Balancer adalah sebuah cara melayani pengguna website dengan membagi pelayanan ke beberapa port yang berbeda yang terhubung ke satu server yang sama. Halaman website yang akan ditampilkan akan sama, hanya port-nya saja yang berbeda. Hal ini berguna agar sebuah website tidak down karena beban dalam suatu server terlalu berat. Selain itu, Load Balancer juga berguna agar sebuah website dalam memberikan respons lebih cepat kepada penggunanya.

Lalu bagaimana cara mengimplementasikan teknik Load Balancer tersebut? Pengimplementasian Load Balancer tersebut tidaklah terlalu sulit. Pada kasus tugas ini, saya hanya diharuskan menyalakan dua port di localhost server. Setelah itu, tugas saya adalah menguji berjalannya kedua port tersebut saat server Django dari dijalankan.

Hal pertama yang saya lakukan adalah mengunduh dan meng-install Nginx pada perangkat saya. Setelah itu, saya membuka Command Prompt pada folder Nginx tersebut dan mulai menjalankan Nginx.

C:\Users\Muhammad Azis Husein\Desktop\nginx-1.17.6>start Nginx

Setelah itu, saya mencoba mengkonfigurasi Load Balancer sederhana untuk localhost server saya dengan menambahkan satu file baru pada direktori conf yang saya namakan mysite.conf yang berisi baris-baris kode sebagai berikut:

upstream web {    server 127.0.0.1:<port1>;    server 127.0.0.1:<port2>;    # bisa tambah directive server sebanyak yang diinginkan}server {    listen <listen_port>;    server_name localhost;    location / {        proxy_pass http://web;    }}

Port pertama saya atur pada port 8000. Sedangkan port kedua saya atur pada port 9000. Untuk listen port saya mengaturnya di port 7000. Setelah itu saya membuka file nginx.conf dan satu baris kode di bawah kode ‘default_type application/octet-stream;’ yaitu kode:

include mysite.conf

Setelah itu konfigurasi telah selesai dan untuk me-reload Nginx, saya hanya perlu mengetik perintah ‘nginx -s reload’ pada Command Prompt.

Sekarang konfigurasi Load Balancer sudah siap, setelah itu saya hanya perlu mengujinya dengan menjalankan server Django pada localhost saya.

Setelah saya membuka dua buah Command Prompt dan menjalankan server Django di dua port yang berbeda, maka yang perlu saya lakukan adalah mencoba langsung membuka localhost saya di dua port berbeda tersebut. Setelah saya mencobanya maka alhamdulilah berhasil.

(Pemanggilan web pada port 8000)

(Pemanggilan web pada port 9000)

Sekian dulu untuk cerita mengenai Load balancer-nya ya! Terimakasih untuk kalian yang sudah membaca! Mohon maaf jika dalam penjelasan saya masih terdapat banyak sekali kekurangan dikarenakan saya juga masih belajar. Mohon doanya agar kedepannya ilmu yang saya dan teman-teman saya pelajari di Fasilkom dapat lebih bermanfaat bagi banyak orang.

--

--