My First Load Balancer

syams ramadan
2 min readDec 3, 2019

Pada story terakhir ini, mahasiswa fasilkom PPW 2019 diminta untuk melakukan load balancing pada django project yang telah dibuat sebelumnya.

Sebelum implementasinya, saya pertama akan menjelaskan tentang apa itu load balancer?

Jadi load balancing 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. Salah satu kelebihan dari load balancing ini adalah sifat nya yang high availability.

High Availability yang dimaksud adalah dimana sebuah sistem yang dapat bekerja dengan daya tahan yang baik, bekerja sempurna tanpa kesalahan dalam waktu yang lama.

Dalam proses study literature mengenai nginx, server yang saya pakai untuk story kali ini, saya menemukan perumpaan yang cukup menarik yang membuat saya lebih mengerti lagi tentang load balancing. Jadi kita bisa mengumpamakan load balancing menjadi seorang polisi lalu lintas, dimana pekerjaan dari seorang polisi lalin(nginx) adalah menjaga lalu lintas (routing) agar kendaraan yang ada (client) tetap teratur dan tidak terjadi kemacetan (server yang overload) maupun masalah lainnya.

Nah, setelah menuangkan semua yang saya ketahui tentang load balancing, barulah saya akan membuat load balancing saya sendiri.

Setelah melakukan instalasi nginx di laptop saya, saya menjalankan nginx dengan cara membuka command prompt dan memasukan keyword ‘start nginx’

Kemudian barulah saya melakukan konfigurasi load balancing sederhana. Pertama yang harus dilakukan adalah membuat file .conf yang akan mengatur load balancing File itu mengatur block upstream yang berisi port-port yang akan digunakan sebagai server (8000 & 9000), block server yang berisi port listener (port tempat terjadi load balancing), dan nama server,block location.

Sederhana nya load balancing untuk story ini sudah selesai. Untuk menguji kemampuan load balancing ini lebih lanjut, saya mematikan salah satu webserver/port yang telah dinyalakan sebelumnya dan mencoba mengetes apakah server yang tadi dinyalakan tetap menyala, yang ternyata memang masih bisa saya akses.

Untuk tes uji kedua, saya membuka tigatab di chrome dan mengsetting dua webserver yang berbeda dengan dua django app yang juga berbeda untuk menandakan webserver mana yang sedang dipakai. Dari ketiga tab tersebut, tab pertama adalah localhost:127.0.0.1 yang menunjukan port pertama, tab kedua merequest localhost yang sama dengan port pertama dan diteruskan ke webserver kedua, dan pada tab ketiga saya merequest ke localhost yang sama dan nginx meneruskan ke port yang pertama, sehingga ini membuktikan bahwa pendistribusian nya ini adalah salah satu algoritma load balancing yaitu Round Robin.

Sekian artikel yang saya buat untuk story 10 ini, semoga apa yang pelajari kali ini dapat bermanfaat untuk saya nantinya, karena saya ingin jadi web dev sebagai pekerjaan pertama nanti. Amin

--

--