Apa itu Load Balancer? Cara Efektif Mendistribusikan Lalu Lintas Masuk

  • Post author:
  • Post category:Tutorial

Load balancers adalah komponen infrastruktur yang mendistribusikan lalu lintas jaringan masuk antara beberapa server backend. Mereka meningkatkan kapasitas dan menambahkan redundansi dengan membuat layanan tetap dapat diakses jika salah satu server Anda gagal.

Load balancer bertindak sebagai gerbang publik ke aplikasi Anda. Mereka mengkhususkan diri dalam peran mereka sehingga mereka dapat sangat dioptimalkan untuk memaksimalkan throughput lalu lintas. Load balancer biasanya dapat dikonfigurasi dengan beberapa jenis algoritme perutean agar sesuai dengan kebutuhan aplikasi Anda.

Dalam artikel ini, kita akan mempelajari apa itu load balancer, cara kerjanya, dan beberapa komplikasi yang dapat ditimbulkannya. Kami juga akan menjelaskan perbedaan antara algoritme penyeimbangan beban yang paling umum.

Pengertian Load Balancer

Penyeimbang beban bertanggung jawab untuk menyediakan proxy terbalik di depan server aplikasi Anda. Semua klien terhubung ke proxy tunggal ini, bukan instance backend individual. Penyeimbang beban bertanggung jawab untuk memilih server untuk menangani setiap permintaan. Hal ini terjadi tanpa terlihat ke klien eksternal.

Tersedia implementasi penyeimbang beban berbasis perangkat keras dan perangkat lunak. Di sisi perangkat lunak, sebagian besar server web seperti Apache dan NGINX mampu memenuhi peran tersebut. Penyeimbang beban jenis perangkat keras diterapkan sebagai komponen infrastruktur mandiri dari penyedia hosting Anda. Penyeimbang beban

biasanya memantau kesehatan instans di kumpulan server backend mereka. Backend yang menjadi tidak sehat berhenti mengirimkan lalu lintas baru, mengurangi kerapuhan layanan dan waktu henti. Demikian pula, penyeimbang beban biasanya memungkinkan Anda menambahkan instans backend baru kapan saja, sehingga Anda dapat menskalakan layanan Anda dengan kapasitas ekstra selama jam sibuk.

Tujuan utama penyeimbang beban adalah untuk memaksimalkan throughput dan memanfaatkan sumber daya yang tersedia secara efisien. Mampu menskalakan secara horizontal di seluruh server fisik biasanya lebih efektif daripada menumbuhkan satu node secara vertikal dengan CPU atau memori ekstra. Penskalaan horizontal memberi Anda lebih banyak redundansi serta kapasitas sementara overhead yang dikeluarkan oleh lapisan penyeimbang beban umumnya nominal.

Algoritma Load Balancer

Meskipun tujuan penyeimbangan beban selalu untuk mendistribusikan lalu lintas antara beberapa server, ada beberapa cara untuk mencapainya . Sebelum melihat strategi tertentu, penting untuk mengidentifikasi dua tipe dasar algoritme yang dapat Anda pilih: penyeimbangan

Static – Metode ini bekerja dari nilai konfigurasi hardcode yang membuatnya benar-benar dapat diprediksi dalam operasinya. Algoritme semacam ini tidak memperhitungkan status server backend yang dapat diteruskannya, sehingga dapat terus mengirimkan permintaan baru ke instance yang sudah padat. Penyeimbangan dinamis – Algoritme dinamis menyesuaikan diri secara real-time berdasarkan arus lalu lintas dan ketersediaan server di kolam Anda. Strategi ini dapat secara otomatis menghindari instance yang sudah menangani beberapa permintaan. Penyeimbangan beban dinamis dapat sedikit meningkatkan overhead karena penyeimbang beban harus melacak status penyelesaian setiap permintaan.

Sistem penyeimbangan statis biasanya lebih mudah dikonfigurasi, diuji, dan diperiksa. Penyeimbangan dinamis jauh lebih kuat dan biasanya merupakan pilihan yang lebih disukai untuk aplikasi produksi. Dalam setiap kelas ini, ada beberapa strategi perutean khusus yang dapat Anda pilih:

Round robin – Round robin adalah metode penyeimbangan statis yang mengarahkan permintaan ke setiap server secara bergantian. Jika Anda memiliki tiga server A, B, dan C, permintaan masuk pertama akan masuk ke A, yang kedua ke B, dan yang ketiga ke C. Penyeimbang beban akan mulai lagi di A untuk permintaan keempat. Putaran pembobotan robin – Variasi dari algoritma round robin di mana admin menentukan prioritas relatif dari setiap server di kumpulan. Server yang sangat berbobot akan digunakan lebih sering, menerima bagian lalu lintas yang lebih tinggi. Metode ini memungkinkan Anda menggunakan strategi round robin ketika kumpulan server Anda terdiri dari server dengan spesifikasi yang tidak sama.

Acak – Banyak penyeimbang beban menyertakan opsi acak yang sebenarnya sebagai pilihan statis alternatif. Berhash – Strategi penyeimbangan statis ini meng-hash alamat IP klien untuk menentukan mana dari server backend akan menangani permintaan tersebut. Ini memastikan instance yang sama melayani setiap koneksi yang berasal dari klien itu.

Koneksi paling sedikit – Ini adalah algoritme dinamis populer yang selalu mengarahkan permintaan masuk ke server dengan jumlah koneksi terbuka paling sedikit. Dalam banyak aplikasi, ini cara paling efektif untuk memaksimalkan kinerja secara keseluruhan. Ketersediaan bandwidth tertinggi – Metode ini mengirimkan lalu lintas baru ke server dengan bandwidth paling tersedia. Ini ideal dalam situasi di mana permintaan individu cenderung menggunakan bandwidth dalam jumlah besar meskipun jumlah permintaan total tetap rendah. Titik akhir kesehatan/beban khusus – Banyak penyeimbang beban menyertakan cara untuk membuat keputusan distribusi lalu lintas berdasarkan metrik khusus yang diekspos oleh backend Anda server. Kueri dapat dibuat terhadap penggunaan CPU, konsumsi memori, dan tindakan kritis lainnya menggunakan mekanisme seperti SNMP.

Karakteristik Load Balancer

Penyeimbang beban dapat membuat beberapa komplikasi untuk aplikasi Anda. Salah satu yang paling umum adalah tantangan untuk mencapai sesi backend yang lengket. Sudah umum bagi sistem untuk mempertahankan status di server dan perlu mempertahankannya di antara koneksi klien.

Anda dapat mengurangi ini menggunakan algoritme penyeimbangan hash atau opsi berbasis klien yang serupa. Ini menjamin bahwa koneksi dari alamat IP yang sama berakhir di server tertentu. Sebagian besar penyeimbang beban juga menawarkan opsi sesi lengket eksplisit yang mencari header atau cookie yang dinominasikan dalam permintaan HTTP. Nilai ini dapat digunakan untuk mengarahkan permintaan secara konsisten ke server yang sama setelah koneksi awal klien.

Penyeimbang beban juga dapat membuat kerumitan seputar SSL. Banyak organisasi mengonfigurasi SSL untuk diakhiri di penyeimbang beban. Koneksi antara penyeimbang beban dan server backend Anda dibuat melalui HTTP biasa. Hal ini biasanya menghasilkan pengalaman penyiapan yang lebih sederhana dengan tuntutan pemeliharaan yang berkurang.

Menggunakan koneksi khusus HTTP ke arah depan tidak selalu dapat diterima untuk beban kerja yang kritis terhadap keamanan. Load balancer yang mampu melakukan passthrough SSL dapat mengirimkan lalu lintas langsung ke server backend Anda, tanpa mendekripsi data terlebih dahulu. Namun ini membatasi fungsionalitas perutean yang dapat Anda gunakan: karena penyeimbang beban tidak dapat mendekripsi permintaan masuk, Anda tidak akan dapat melakukan pencocokan berdasarkan atribut seperti header dan cookie.

Layer 4 dan Layer 7 Load Balancers

Penyeimbangan beban sering dibahas di konteks jaringan Layer 4 (L4) dan Layer 7 (L7). Istilah ini menjelaskan titik di mana penyeimbang beban merutekan lalu lintas dalam siklus hidup permintaan jaringan. Sumber daya Layer 4

A beroperasi pada tingkat transportasi jaringan. Penyeimbang beban ini membuat keputusan perutean berdasarkan karakteristik transportasi permintaan, seperti port TCP atau UDP yang digunakan. Data khusus permintaan tidak dipertimbangkan.

Penyeimbang beban Layer 7 terletak berdekatan dengan lapisan aplikasi. Penyeimbang beban ini dapat mengakses data kompleks dalam permintaan dan menggunakannya untuk menginformasikan aturan perutean khusus beban kerja. Di sinilah load balancing yang menyumbang ID sesi di header HTTP atau cookie dapat terjadi.

Layer 7 load balancing kuat tetapi relatif intensif sumber daya. Itu perlu mengurai dan memeriksa konten setiap permintaan sebelum dapat diteruskan ke backend. Sifat berbasis paket dari penyeimbang beban Layer 4 memberikan kontrol yang lebih sedikit tetapi memiliki dampak yang berkurang pada throughput. Lapisan 4 juga tidak mendekripsi lalu lintas sehingga penyeimbang beban kompromi pada tahap ini tidak akan mengekspos data permintaan.

Kesimpulan

Penyeimbang beban memungkinkan Anda merutekan lalu lintas masuk antara server Anda. Mereka adalah komponen penting dari arsitektur jaringan yang sangat tersedia yang memungkinkan Anda menjalankan beberapa instance backend secara transparan. Hal ini meningkatkan kapasitas layanan dan menghindari pemadaman total jika satu server offline.

Sebagian besar implementasi load balancer memberi Anda pilihan beberapa algoritme yang berbeda, termasuk opsi statis dan dinamis. Banyak aplikasi dilayani dengan baik oleh pilihan sederhana seperti “koneksi paling sedikit” atau “round robin” tetapi opsi yang lebih kompleks berguna dalam situasi tertentu.

Ini adalah praktik yang baik untuk menjalankan setiap aplikasi produksi di belakang penyeimbang beban. Ini memberi Anda fleksibilitas untuk menskalakan sesuai permintaan dan bereaksi terhadap server yang tidak sehat. Load balancing biasanya mudah diatur dalam tumpukan hosting atau infrastruktur jaringan penyedia cloud Anda.

Itulah berita seputar Apa itu Load Balancer? Cara Efektif Mendistribusikan Lalu Lintas Masuk, semoga bermanfaat. Disadur dari HowToGeek.com.