• Home
  • Berita
  • Load Balancing : Pengatur Lalu Lintas Data Server

Load Balancing : Pengatur Lalu Lintas Data Server

Oleh Mila Rosyida

Dalam era aplikasi modern yang harus menangani jutaan pengguna secara bersamaan, kemampuan untuk memberikan respon cepat dan andal dengan mengembalikan teks, video, gambar, dan data lainnya menjadi krusial. Untuk mengatasi tantangan volume lalu lintas yang tinggi, sebagian besar aplikasi mengadopsi pendekatan dengan menggunakan banyak server sumber daya yang menyimpan data duplikat di antara mereka.

Itulah yang dikenal dengan load balancing. Load balancing adalah teknik distribusi lalu lintas jaringan dengan merata ke seluruh sumber daya server. Dalam melakukan distribusi lalu lintasnya, tentu menggunakan beberapa algoritma atau metode. Apa saja? Yuk, langsung simak di artikel berikut ini!

Definisi Load Balancing

Load balancing merujuk pada teknik distribusi lalu lintas jaringan dengan merata ke seluruh sumber daya server yang mendukung suatu aplikasi.

Dalam konteks ini, Load balancing berperan sebagai pengatur lalu lintas yang berada di depan server, mengarahkan permintaan klien ke berbagai server yang dapat menanggapi dengan optimal.

Fungsinya mirip dengan “polisi lalu lintas” yang memastikan distribusi beban yang efisien, memaksimalkan kecepatan dan kapasitas, dan menjaga agar tidak ada satu server pun yang bekerja terlalu keras.

Selain itu, Load balancing juga memiliki peran kritis dalam menjaga ketersediaan dan keandalan tinggi. Dengan mendistribusikan lalu lintas hanya ke server yang online, Load balancing memastikan bahwa sistem tetap beroperasi dengan baik.

load balancing
Sumber : envato

Jika suatu server mengalami kegagalan, Load balancing secara otomatis mengalihkan lalu lintas ke server yang masih berfungsi. Ketika server baru ditambahkan,

Load balancing mulai mengarahkan permintaan ke server tersebut. Dengan demikian, Load balancing berfungsi sebagai alat yang esensial dalam:

  1. Menyebarkan permintaan klien secara efisien ke beberapa server.
  2. Menjaga ketersediaan dan keandalan tinggi dengan mengarahkan permintaan hanya ke server yang aktif.
  3. Memberikan fleksibilitas untuk menyesuaikan jumlah server sesuai dengan kebutuhan.

Cara Kerja Load Balancing

Dalam operasional perusahaan, seringkali aplikasi dijalankan di beberapa server sekaligus, dan konfigurasi semacam ini disebut sebagai server farm.

Ketika kamu mengajukan permintaan ke aplikasi, langkah pertama adalah menuju ke load balancer. Load balancer berperan seperti manajer di sebuah restoran yang mengorganisir dan mengarahkan tugas pelayan.

Bayangkan analoginya seperti di sebuah restoran dengan lima pelayan. Jika kamu dibiarkan memilih pelayannya sendiri, kemungkinan beberapa pelayan akan terlalu sibuk sementara yang lainnya menganggur.

Dalam mencegah ketidakseimbangan ini, manajer restoran menetapkan pelayan yang paling sesuai untuk setiap pelanggan untuk menyesuaikan tugas secara efisien.

Analogi ini juga berlaku untuk load balancing pada server farm. Setiap kali ada permintaan dari pengguna, load balancing menentukan server yang paling sesuai untuk menangani permintaan tersebut.

Dengan pendekatan ini, beban kerja didistribusikan secara merata di antara semua server yang ada, menjaga agar kinerja optimal dan mencegah satu server pun menjadi terlalu sibuk.

Dengan analogi manajerial ini, kita dapat lebih mudah memahami bahwa load balancing bertindak seperti “manajer,” mengarahkan setiap permintaan ke sumber daya yang paling efisien.

Algoritma Load Balancing

Tim IT menggunakan berbagai jenis algoritma load balancing, tergantung pada distribusi beban, baik itu pada network atau application layer.

Pemilihan server backend untuk meneruskan lalu lintas didasarkan pada algoritma load balancing yang dipilih.

Dalam proses ini, algoritma mempertimbangkan dua aspek utama dari setiap server, yaitu Server health dan Predefined condition.

Beberapa algoritma load balancing yang umum digunakan oleh tim IT meliputi:

Round Robin Algorithm

Algoritma Round Robin (RR) adalah cara untuk mendistribusikan permintaan secara adil ke sekelompok server secara bergantian. Dalam penggunaan praktisnya, ada dua tipe Round Robin yang umumnya diterapkan, Weighted Round Robin dan Dynamic Round Robin.

Weighted Round Robin adalah ketika setiap server dalam kelompok diberi “bobot” berdasarkan komposisinya. Misalnya, server dengan spesifikasi lebih tinggi mungkin diberi bobot lebih besar.

Dengan pendekatan ini, distribusi beban didasarkan pada bobot masing-masing server, memastikan bahwa server dengan kemampuan lebih tinggi menangani lebih banyak permintaan.

Sementara itu, Dynamic Round Robin menggunakan perhitungan waktu nyata untuk menentukan cara mendistribusikan beban. Bobot server dapat berubah sesuai dengan kinerja atau kondisi saat itu.

Sumber : envato

Ini memungkinkan penyesuaian otomatis berdasarkan faktor-faktor tertentu, sehingga server yang lebih optimal dapat ditugaskan untuk menangani permintaan.

Least Connections

Algoritma Least Connection adalah metode load balancing yang mengarahkan permintaan baru ke server dengan jumlah koneksi terendah ke klien pada saat itu.

Dalam hal ini, “koneksi” mengacu pada hubungan atau interaksi antara server dan klien. Ide dasar di balik algoritma ini adalah untuk mendistribusikan beban kerja dengan memberikan prioritas kepada server yang saat ini memiliki beban koneksi yang paling ringan.

Pertimbangan utama dalam algoritma ini adalah kapasitas komputasi relatif setiap server.

Artinya, algoritma ini tidak hanya mempertimbangkan jumlah koneksi saat ini, tetapi juga seberapa banyak kapasitas komputasi yang masih tersedia di setiap server.

Melalui cara ini, algoritma Least Connection memastikan bahwa permintaan baru diarahkan ke server yang tidak hanya memiliki sedikit koneksi saat ini tetapi juga memiliki kapasitas komputasi yang cukup untuk menangani permintaan tersebut.

Weighted Least Connections

Algoritma Weighted Least Connections merupakan metode load balancing yang mengarahkan permintaan ke server tertentu berdasarkan suatu rumus yang mempertimbangkan dua faktor utama yaitu waktu respons tercepat dan jumlah koneksi aktif paling sedikit.

Algoritma ini secara eksklusif digunakan pada NGINX Plus, sebuah perangkat lunak server web dan proxy.

Pertama-tama, algoritma ini menilai waktu respons dari masing-masing server, yang mencerminkan seberapa cepat server dapat menanggapi permintaan.

Server dengan waktu respons lebih cepat akan mendapatkan bobot lebih tinggi dalam rumus.

Selanjutnya, algoritma mempertimbangkan jumlah koneksi aktif pada setiap server. Server dengan jumlah koneksi aktif yang lebih sedikit juga akan mendapatkan bobot lebih tinggi.

Sumber : envato

Selanjutnya, melalui rumus tersebut, algoritma menggabungkan kedua faktor tersebut untuk menentukan server mana yang akan menerima permintaan baru.

Dengan pendekatan ini, algoritma Weighted Least Connections bertujuan untuk memberikan prioritas kepada server yang tidak hanya memiliki waktu respons cepat tetapi juga jumlah koneksi aktif yang lebih sedikit, menciptakan keseimbangan yang optimal dalam distribusi beban.

Source IP hash

Pada Algoritma Source IP Hash, load balancing server diatur berdasarkan suatu kunci hash unik. Proses ini melibatkan pembuatan kunci hash dari informasi sumber dan tujuan dalam permintaan tersebut.

Kunci hash ini kemudian digunakan untuk menentukan server yang akan ditugaskan untuk melayani klien yang membuat permintaan tersebut.

Algoritma source IP Hash menciptakan sebuah kunci hash dengan mengambil informasi dari alamat IP sumber permintaan dan alamat IP tujuan. Kunci hash ini bersifat unik untuk setiap kombinasi sumber dan tujuan, menciptakan identifikasi unik untuk setiap permintaan yang masuk.

Kemudian, berdasarkan nilai kunci hash yang dihasilkan, algoritma menentukan server yang akan menangani permintaan tersebut. Proses ini memastikan bahwa setiap klien akan konsisten terhubung ke server tertentu, sesuai dengan kunci hash unik yang terkait dengan alamat IP mereka.

URL hash

Hashing URL adalah metode load balancing yang diterapkan dalam lingkungan server dengan beban seimbang.

Tujuan utama dari teknik ini adalah untuk melayani permintaan URL dengan cara yang memungkinkan setiap server di dalam grup beban seimbang untuk menyajikan konten yang unik sesuai dengan URL yang diminta.

Pendekatan ini bertujuan untuk meningkatkan kapasitas cache pada sisi backend dengan menghindari duplikasi cache. URL atau Uniform Resource Locator adalah alamat yang digunakan untuk mengidentifikasi suatu sumber daya di internet, seperti halaman web atau file.

Ketika pengguna mengakses suatu situs web atau aplikasi, permintaan mereka seringkali berisi URL yang menentukan sumber daya yang diinginkan.

Dengan menggunakan Hashing URL, algoritma hash diterapkan pada URL yang masuk. Proses hashing ini menghasilkan nilai hash yang unik untuk setiap URL.

Selanjutnya, nilai hash tersebut digunakan untuk menentukan server mana yang akan menangani permintaan tersebut. Pendekatan ini memastikan bahwa setiap URL diarahkan ke server yang spesifik, menciptakan distribusi beban yang merata di antara server-server yang tersedia.

Salah satu manfaat utama dari Hashing URL adalah peningkatan kapasitas cache pada server backend.

Dengan menyajikan konten yang unik per server, teknik ini membantu menghindari duplikasi cache yang mungkin terjadi jika setiap server menyimpan salinan yang sama dari suatu sumber daya.

Akibatnya, efisiensi penyimpanan dan pengelolaan cache dapat ditingkatkan, yang pada gilirannya meningkatkan kinerja sistem secara keseluruhan.

The Least Response Time

Dalam algoritma “The Least Response Time,” server backend yang dipilih adalah server yang memiliki jumlah koneksi aktif paling sedikit dan waktu respons rata-rata yang paling rendah.

Algoritma ini, memungkinkan tim IT untuk dapat memastikan bahwa waktu respons yang diberikan kepada klien menjadi lebih cepat. Proses seleksi server berdasarkan dua faktor utama, yaitu jumlah koneksi aktif dan waktu respons rata-rata.

Jumlah koneksi aktif mengacu pada jumlah klien atau pengguna yang saat ini terhubung atau berinteraksi dengan server tersebut.

Server dengan jumlah koneksi aktif yang lebih sedikit dianggap lebih sibuk, dan oleh karena itu, algoritma memilih server dengan jumlah koneksi aktif paling sedikit.

Selain itu, algoritma ini  juga mempertimbangkan waktu respons rata-rata dari setiap server. Waktu respons adalah waktu yang diperlukan oleh server untuk merespons permintaan dari klien.

Server dengan waktu respons rata-rata yang lebih rendah dianggap lebih efisien dalam menyajikan konten atau layanan kepada pengguna.

Melalui penggabungan kedua faktor ini, algoritma The Least Response Time memberikan prioritas kepada server yang tidak hanya memiliki jumlah koneksi aktif yang sedikit tetapi juga memberikan waktu respons rata-rata yang cepat.

Hal ini bertujuan untuk memastikan bahwa klien menerima layanan dengan waktu respons yang optimal, meningkatkan pengalaman pengguna secara keseluruhan.

The least bandwidth method

Pada algoritma “The Least Bandwidth Method,” server backend dipilih berdasarkan konsumsi bandwidth server, yang dapat diartikan sebagai jumlah data yang dikonsumsi oleh server dalam satu periode waktu tertentu, diukur dalam Mbps (Megabit per detik).

Dalam konteks ini, server yang mengonsumsi bandwidth paling sedikit akan menjadi pilihan utama oleh load balancer. Pemilihan server berdasarkan konsumsi bandwidth memiliki tujuan untuk mengoptimalkan penggunaan sumber daya jaringan.

Server yang menggunakan lebih sedikit bandwidth cenderung memiliki lebih banyak kapasitas yang tersedia untuk menangani lalu lintas jaringan, sehingga dapat memberikan layanan dengan kecepatan dan efisiensi yang lebih baik.

Metode ini mirip dengan metode paket terkecil, di mana server yang mengirimkan jumlah paket paling sedikit dipilih oleh load balancer.

Pemilihan ini didasarkan pada asumsi bahwa server dengan jumlah paket atau data yang lebih sedikit berkontribusi pada beban jaringan yang lebih ringan.

Sumber : envato

The custom load method

Dalam metode beban kustom (The Custom Load Method), pemilihan server backend didasarkan pada evaluasi beban yang mencakup penggunaan CPU, memori, dan waktu response server.

Beban server diukur dengan mempertimbangkan seberapa intensif server digunakan dalam hal daya komputasi, seberapa banyak memori yang digunakan, dan seberapa cepat server merespons permintaan.

Tim IT dalam perusahaan sering menggunakan algoritma ini untuk menentukan cara yang efisien dalam memanfaatkan sumber daya server.

Dengan memonitor dan menganalisis kinerja server berdasarkan parameter seperti penggunaan CPU, penggunaan memori, dan waktu response, algoritma ini membantu dalam mendistribusikan beban kerja secara seimbang di antara server-server dalam server farm.

Namun, perlu diingat bahwa metode ini lebih cocok digunakan ketika lalu lintas jaringan dapat diprediksi dan stabil. Jika terjadi fluktuasi tiba-tiba dalam lalu lintas, atau jika beban kerja tidak merata, algoritma ini mungkin kurang efektif dalam menjaga keseimbangan beban.

Oleh karena itu, ketika perubahan lalu lintas yang tidak terduga dapat terjadi, metode beban kustom mungkin perlu dikombinasikan dengan algoritma lain yang lebih adaptif untuk menjaga stabilitas dan kinerja sistem secara keseluruhan.

Tipe Load Balancing

Load balancing dapat dikelompokkan ke dalam tiga kategori utama berdasarkan apa yang diperiksa oleh load balancing dalam setiap permintaan klien untuk mengarahkan lalu lintas.

Berikut penjelasan lebih lengkap mengenai tipe-tipe load balancing : 

Application load balancing

Aplikasi modern yang kompleks seringkali terdiri dari beberapa server, di mana setiap server memiliki fungsi khusus dalam aplikasi tersebut.

Application load balancing memeriksa konten dari setiap permintaan, seperti header HTTP atau ID sesi SSL, untuk menentukan server mana yang paling sesuai untuk mengalihkan lalu lintas tersebut.

Sebagai contoh, dalam aplikasi e-commerce, terdapat fungsi-fungsi seperti menjelajahi produk, keranjang belanja, dan proses checkout.

Application load balancing dapat mengarahkan permintaan untuk menjelajahi produk ke server yang memiliki kemampuan untuk menangani gambar dan video, sementara permintaan untuk keranjang belanja diarahkan ke server yang dapat menjaga banyak koneksi klien dan menyimpan data keranjang untuk jangka waktu yang lebih lama.

Melalui cara ini, Application load balancing memastikan bahwa setiap jenis permintaan diteruskan ke server yang optimal untuk menangani spesifik fungsi aplikasi.

Network load balancing

Network load balancing seperti pengatur lalu lintas yang cerdas dalam dunia internet. Mereka melakukan pemeriksaan alamat IP dan informasi jaringan lainnya untuk memastikan bahwa lalu lintas dari pengguna diarahkan secara optimal ke server yang paling tepat. Untuk mencapai hal ini, Network load balancing memiliki beberapa trik di lengan mereka.

Pertama-tama, mereka dapat melacak dari mana asal lalu lintas aplikasi. Bayangkan mereka sebagai detektif internet yang dapat mengetahui dari mana pengguna mengakses aplikasi.

Ini memungkinkan mereka untuk menetapkan alamat IP statis ke beberapa server. Jadi, jika seseorang mengakses aplikasi dari suatu tempat, load balancing tahu ke server mana dia harus mengarahkan pengguna tersebut.

Selain itu, Network load balancing menggunakan algoritma load balancing. Nah, jangan takut dengan istilah teknis ini. Hal ini hanyalah serangkaian aturan cerdas yang membantu load balancer membuat keputusan.

Beberapa di antaranya adalah statis, yang berarti mereka sudah ditetapkan sebelumnya, seperti peta jalan. Lalu ada juga  yang dinamis, dimana load balancing dapat membuat keputusan berdasarkan situasi saat ini.

Global server load balancing

Global server load balancing terjadi ketika suatu aplikasi dijalankan di beberapa server yang tersebar secara geografis.

Bayangkan jika sebuah perusahaan memiliki server di beberapa pusat data, tersebar di berbagai negara, dan bahkan menggunakan layanan penyedia cloud pihak ketiga di seluruh dunia.

Dalam situasi ini, ada dua jenis load balancing yang dapat terjadi: load balancing lokal dan global.

Local load balancing 

Local load balancing bertugas mengelola beban aplikasi di suatu wilayah atau zona tertentu. Tugas utamanya adalah mengarahkan lalu lintas klien ke server yang berada di wilayah geografis yang paling dekat dengan klien tersebut.

Local load balancing berusaha memastikan bahwa klien terhubung ke server yang memiliki jarak fisik yang lebih dekat, sehingga meningkatkan kecepatan dan responsivitas aplikasi. Hal ini juga dapat mengurangi latensi karena data perjalanan lebih sedikit melalui jaringan.

Global load balancing

Disisi lain, global load balancing bekerja pada tingkat yang lebih tinggi. Ketika terdapat server-server di pusat data yang tersebar di seluruh dunia, global load balancing mengelola lalu lintas di antara zona-zona geografis tersebut.

Meskipun fokus utamanya adalah mengarahkan lalu lintas ke server yang terdekat, global load balancingl juga memiliki kemampuan untuk mengalihkan lalu lintas ke server di luar zona geografis klien jika terjadi kegagalan server lokal.

Hal ini memastikan ketersediaan dan keandalan tinggi, bahkan dalam skenario kegagalan lokal.

DNS load balancing

Bayangkan DNS load balancing seperti pemandu wisata yang pintar untuk domain kamu di dunia maya.

Ketika kamu  mengkonfigurasi DNS load balancing sebenarnya kamu  memberikan instruksi pada domain kamu  sendiri untuk menjadi tuan rumah bagi seluruh koleksi sumber daya yang tersebar di berbagai tempat. Mari kita analogikan dengan mengelola sebuah kompleks di dunia nyata.

Diibaratkan domain kamu  sebagai kompleks besar yang mencakup segalanya, mulai dari situs web dan sistem email hingga server pencetak dan layanan-layanan lain yang dapat diakses melalui internet.

Sebagai pengelola kompleks ini, kamu  ingin memastikan bahwa setiap bagian dari kompleks dapat dijangkau dengan mudah oleh pengunjung, dan tidak ada satu bagian pun yang kelebihan beban.

Inilah dimana DNS load balancing datang untuk membantu. Mereka seperti pemandu wisata yang cerdas yang membimbing pengunjung (atau dalam kasus ini, permintaan jaringan) ke bagian yang paling tepat di kompleks kamu .

Mereka membantu menjaga ketersediaan aplikasi, memastikan bahwa tidak ada satu pun bagian dari kompleks yang terbebani terlalu berat, dan dengan cerdik menyeimbangkan lalu lintas di seluruh kompleks yang mungkin tersebar di berbagai lokasi di seluruh dunia.

Baca Juga : Mau Tahu Web Server Paling Populer? Apache adalah Jawabannya

Mila Rosyida

Halo ! I'm a Technical Content Specialist in DomaiNesia. I love learn anything about Technical, Data, Machine Learning, and more Technology.


Berlangganan Artikel

Dapatkan artikel, free ebook dan video
terbaru dari DomaiNesia

{{ errors.name }} {{ errors.email }}
Migrasi ke DomaiNesia

Pindah Ke DomaiNesia

Tertarik mendapatkan semua fitur layanan DomaiNesia? Dapatkan Diskon Migrasi 40% serta GRATIS biaya migrasi & setup

Ya, Migrasikan layanan Saya!

Hosting Murah

This will close in 0 seconds