Apa itu Load Balancing?

Blog image

Pengantar

Apa itu Load Blancing? Load balancing adalah komponen kunci dari infrastruktur yang sangat tersedia yang biasa digunakan untuk meningkatkan kinerja dan keandalan situs web, aplikasi, database dan layanan lainnya dengan mendistribusikan beban kerja ke beberapa server.

Infrastruktur web tanpa load balancing mungkin terlihat seperti berikut:

Dalam contoh ini, pengguna terhubung langsung ke server web, di yourdomain.com. Jika server web tunggal ini macet, pengguna tidak lagi dapat mengakses situs web. Selain itu, jika banyak pengguna mencoba mengakses server secara bersamaan dan tidak dapat menangani beban, mereka mungkin mengalami waktu muat yang lambat atau mungkin tidak dapat terhubung sama sekali.

Titik tunggal kegagalan ini bisa dikurangi dengan memasukkan penyeimbang beban dan setidaknya satu server web tambahan di backend. Biasanya, semua server backend akan memasok konten yang sama sehingga pengguna menerima konten yang konsisten terlepas dari server mana yang meresponsnya.

Pada contoh diilustrasikan di atas, pengguna mengakses penyeimbang beban, yang meneruskan permintaan pengguna ke server backend, yang kemudian merespons langsung permintaan pengguna. Dalam skenario ini, titik tunggal kegagalan sekarang adalah penyeimbang beban itu sendiri. Hal ini dapat dikurangi dengan memperkenalkan penyeimbang beban kedua, tapi sebelum kita membahasnya, mari jelajahi bagaimana penyeimbang beban bekerja.

 

Trafik macam apa yang bisa load pegangan balancers?

Load balancer administrators create forwarding rules for four main types of traffic:

HTTP — Standar penyeimbangan HTTP mengarahkan permintaan berdasarkan mekanisme HTTP standar. Load Balancer menetapkan header X-Forwarded-For, X-Forwarded-Proto, dan X-Forwarded-Port untuk memberi informasi tentang permintaan awal.HTTPS — Fungsi penyeimbangan HTTPS sama dengan penyeimbangan HTTP, dengan penambahan enkripsi. Enkripsi ditangani dengan salah satu dari dua cara: baik dengan passthrough SSL yang menyimpan enkripsi sampai ke backend atau dengan penghentian SSL yang menempatkan beban dekripsi pada penyeimbang beban namun mengirimkan lalu lintas yang tidak dienkripsi ke bagian belakang.TCP — Untuk aplikasi yang tidak menggunakan HTTP atau HTTPS, lalu lintas TCP juga bisa diimbangi. Misalnya, lalu lintas ke cluster database bisa tersebar di semua server.UDP — Baru-baru ini, beberapa balancers beban telah menambahkan dukungan untuk teknologi load balancing core internet seperti DNS dan syslog yang menggunakan UDP

Aturan penerusan ini akan menentukan protokol dan port pada penyeimbang beban itu sendiri dan memetakannya ke protokol dan port yang digunakan penyeimbang beban untuk mengarahkan lalu lintas ke backend.

 

Bagaimana cara penyeimbang beban memilih server backend?

Load balancers memilih server mana yang mengajukan permintaan berdasarkan kombinasi dua faktor. Mereka pertama-tama akan memastikan bahwa setiap server yang dapat mereka pilih benar-benar merespons permintaan secara tepat dan kemudian menggunakan aturan yang telah dikonfigurasi sebelumnya untuk memilih dari antara kolam yang sehat itu.

Cek kesehatan

Load balancers hanya akan meneruskan lalu lintas ke server backend “sehat”. Untuk memantau kesehatan server backend, pemeriksaan kesehatan secara teratur mencoba terhubung ke server backend menggunakan protokol dan port yang ditentukan oleh peraturan penerusan untuk memastikan server mendengarkan. Jika server gagal dalam pemeriksaan kesehatan, dan karena itu tidak dapat melayani permintaan, maka secara otomatis dikeluarkan dari kolam, lalu lintas tidak akan diteruskan sampai pemeriksaan kesehatan kembali pulih.

Algoritma Load Balancing

Algoritma load balancing yang digunakan menentukan server mana yang sehat pada backend yang akan dipilih. Beberapa algoritma yang umum digunakan adalah:

Round Robin – Round Robin berarti server akan dipilih secara berurutan. Penyeimbang beban akan memilih server pertama dalam daftar untuk permintaan pertama, lalu turunkan daftar secara berurutan, mulai dari atas saat mencapai akhir.

Least Connections – Least Connections berarti penyeimbang beban akan memilih server dengan koneksi paling sedikit dan disarankan saat lalu lintas menghasilkan sesi yang lebih lama.

Sumber – Dengan algoritma Sumber, penyeimbang beban akan memilih server mana yang akan digunakan berdasarkan hash dari IP sumber permintaan, seperti alamat IP pengunjung. Metode ini memastikan pengguna tertentu secara konsisten terhubung ke server yang sama.

Algoritma yang tersedia untuk administrator berbeda-beda tergantung pada teknologi load balancing spesifik yang digunakan.

Bagaimana load balancers menangani state?

Beberapa aplikasi mengharuskan pengguna terus terhubung ke server backend yang sama. Algoritma Source menciptakan afinitas berdasarkan informasi IP klien. Cara lain untuk mencapai hal ini di tingkat aplikasi web adalah melalui sesi lengket, di mana penyeimbang beban menetapkan cookie dan semua permintaan dari sesi tersebut diarahkan ke server fisik yang sama.

 

Redundant Load Balancers

Untuk menghilangkan penyeimbang beban sebagai satu titik kegagalan, penyeimbang beban kedua dapat dihubungkan ke yang pertama untuk membentuk sebuah cluster, di mana masing-masing memonitor kesehatan orang lain. Masing-masing sama-sama mampu melakukan deteksi dan pemulihan kegagalan.

Pada event penyeimbang beban utama gagal, DNS harus membawa pengguna ke penyeimbang beban kedua. Karena perubahan DNS dapat memakan banyak waktu untuk disebarkan di Internet dan untuk membuat failover ini otomatis, banyak administrator akan menggunakan sistem yang memungkinkan pemetaan alamat IP fleksibel, seperti IP terapung. Pada permintaan pemetaan ulang alamat IP menghilangkan masalah propagasi dan caching yang melekat pada perubahan DNS dengan memberikan alamat IP statis yang dapat dipetakan ulang dengan mudah saat dibutuhkan. Nama domain dapat tetap dikaitkan dengan alamat IP yang sama, sedangkan alamat IP itu sendiri dipindahkan antar server.

 

Ini adalah bagaimana sebuah infrastruktur yang sangat tersedia dengan menggunakan Floating IPs mungkin terlihat:

Kesimpulan

Pada artikel ini, kami telah memberikan gambaran tentang konsep penyeimbang beban dan bagaimana cara kerjanya pada umumnya. Untuk mempelajari lebih lanjut tentang teknologi load balancing yang spesifik, Anda mungkin ingin melihat:

DigitalOcean’s Load Balancing ServiceHow To Create Your First DigitalOcean Load BalancerHow To Configure SSL Passthrough on DigitalOcean Load BalancersHow To Configure SSL Termination on DigitalOcean Load BalancersHow To Balance TCP Traffic with DigitalOcean Load BalancersHAProxyAn Introduction to HAProxy and Load Balancing ConceptsHow To Set Up Highly Available HAProxy Servers with Keepalived and Floating IPs on Ubuntu 14.04Load Balancing WordPress with HAProxyNginxUnderstanding Nginx HTTP Proxying, Load Balancing, Buffering, and CachingHow To Set Up Nginx Load Balancing with SSL Termination