• Tidak ada hasil yang ditemukan

LOAD BALANCING Balancer sisi server

Langkah Langkah Memeriksa Hasil Perbaikan Koneksi Jaringan

P. LOAD BALANCING Balancer sisi server

Untuk layanan Internet, server-side load balancer biasanya merupakan program perangkat lunak yang sedang mendengarkan di port dimana klien eksternal terhubung ke layanan akses.

Pengimbang beban ke depan mengajukan permintaan ke salah satu server "backend", yang biasanya menjawab penyeimbang beban. Hal ini memungkinkan penyeimbang beban untuk membalas klien tanpa klien yang pernah mengetahui tentang pemisahan fungsi internal. Ini juga mencegah klien menghubungi server back-end secara langsung, yang mungkin memiliki keuntungan keamanan dengan menyembunyikan struktur jaringan internal dan mencegah serangan pada tumpukan jaringan kernel atau layanan yang tidak terkait yang berjalan di port lain.

Beberapa balancers beban menyediakan mekanisme untuk melakukan sesuatu yang istimewa jika semua server backend tidak tersedia. Ini mungkin termasuk meneruskan ke penyeimbang beban cadangan, atau menampilkan pesan terkait pemadaman listrik.

Penting juga bahwa penyeimbang beban itu sendiri tidak menjadi satu titik kegagalan . Biasanya balancers beban diimplementasikan pada pasangan dengan ketersediaan tinggi yang juga dapat meniru data persistensi sesi jika diperlukan oleh aplikasi tertentu. [5]

Algoritma penjadwalan

Banyak algoritma penjadwalan , yang juga disebut metode load-balancing, digunakan oleh load balancers untuk menentukan server back-end mana yang akan mengirim permintaan. [6]

Algoritma sederhana mencakup pilihan acak atau round robin . Penyeimbang beban yang lebih canggih dapat mempertimbangkan faktor tambahan, seperti beban yang dilaporkan oleh server, waktu respons yang paling rendah, status naik / turun (ditentukan oleh polling pemantau), jumlah koneksi aktif, lokasi geografis, kemampuan, atau berapa banyak lalu lintas yang baru saja ditugaskan

Kegigihan

Masalah penting saat mengoperasikan layanan dengan keseimbangan beban adalah bagaimana menangani informasi yang harus disimpan di beberapa permintaan dalam sesi

pengguna. Jika informasi ini disimpan secara lokal pada satu server backend, maka permintaan berikutnya ke server backend yang berbeda tidak akan dapat menemukannya. Ini mungkin cache informasi yang dapat dihitung ulang, dalam hal ini load-balancing permintaan ke server backend yang berbeda hanya memperkenalkan masalah kinerja.

Idealnya, kumpulan server di balik penyeimbang beban harus disadari sesi, sehingga jika klien terhubung ke server backend setiap saat, pengalaman pengguna tidak terpengaruh. Hal ini biasanya dicapai dengan basis data bersama atau database sesi dalam memori, misalnya Memcached .

Salah satu solusi dasar untuk masalah data sesi adalah mengirim semua permintaan dalam sesi pengguna secara konsisten ke server backend yang sama. Ini dikenal sebagai ketekunan atau lengket . Kelemahan yang signifikan dari teknik ini adalah kurangnya failover otomatis:

jika server backend turun, informasi per sesinya menjadi tidak dapat diakses, dan sesi apa pun bergantung padanya hilang. Masalah yang sama biasanya relevan dengan server database pusat; bahkan jika server web "tanpa kewarganegaraan" dan tidak "lengket", database

pusatnya adalah (lihat di bawah).

Penugasan ke server tertentu mungkin didasarkan pada nama pengguna, alamat IP klien, atau acak. Karena perubahan alamat yang dirasakan klien akibat DHCP , terjemahan alamat jaringan , dan proxy web , metode ini mungkin tidak dapat diandalkan. Penugasan acak harus diingat oleh penyeimbang beban, yang menciptakan beban penyimpanan. Jika penyeimbang beban diganti atau gagal, informasi ini mungkin hilang, dan tugas mungkin perlu dihapus setelah jangka waktu habis atau selama periode beban tinggi agar tidak melebihi ruang yan g tersedia untuk tabel tugas. Metode penugasan acak juga mengharuskan klien mempertahankan beberapa keadaan, yang bisa menjadi masalah, misalnya saat browser web telah menonaktifkan penyimpanan cookies. Balancer beban canggih menggunakan beberapa teknik ketekunan untuk menghindari beberapa kekurangan dari satu metode.

Solusi lain adalah menjaga data per sesi dalam database . Umumnya ini buruk untuk kinerja karena meningkatkan beban pada database: database paling baik digunakan untuk

query ke replika tersebut. Teknologi ASP.net State Server Microsoft adalah contoh dari database sesi. Semua server di gudang web menyimpan data sesi mereka di State Server dan server mana pun di peternakan dapat mengambil data.

Dalam kasus yang sangat umum dimana klien adalah browser web, pendekatan yang sederhana namun efisien adalah menyimpan data per sesi di browser itu sendiri. Salah satu cara untuk mencapainya adalah dengan menggunakan cookie browser , sesuai waktu dan diberi enkripsi. Yang lainnya adalah penulisan ulang URL . Menyimpan data sesi pada klien umumnya merupakan solusi pilihan: maka penyeimbang beban bebas untuk memilih server backend untuk menangani permintaan. Namun, metode penanganan data negara ini tidak sesuai dengan beberapa skenario logika bisnis yang kompleks, di mana muatan negara sesi besar dan dikompilasi ulang dengan setiap permintaan pada server tidak layak dilakukan.

Penulisan ulang URL memiliki masalah keamanan utama, karena pengguna akhir dapat dengan mudah mengubah URL yang dikirimkan dan dengan demikian mengubah aliran sesi.

Namun solusi lain untuk menyimpan data persisten adalah mengaitkan nama dengan setiap blok data, dan menggunakan tabel hash terdistribusi untuk secara semu-acak menetapkan nama tersebut ke salah satu server yang tersedia, dan kemudian menyimpan blok data tersebut di server yang ditugaskan.

Fitur penyeimbang beban

Perangkat keras dan perangkat lunak balancers beban mungkin memiliki berbagai fitur khusus. Fitur mendasar dari penyeimbang beban adalah untuk dapat mendistribusikan permintaan yang masuk melalui sejumlah server backend di cluster sesuai dengan algoritma penjadwalan. Sebagian besar fitur berikut khusus untuk vendor:

• Beban asimetris: Rasio dapat ditetapkan secara manual untuk menyebabkan beberapa server backend mendapatkan bagian beban kerja yang lebih besar daripada yang lain. Ini kadang-kadang digunakan sebagai cara mentah untuk menjelaskan beberapa server yang memiliki kapasitas lebih besar daripada yang lain dan mungkin tidak selalu bekerja sesuai keinginan.

• Aktivasi prioritas: Bila jumlah server yang tersedia turun di bawah nomor tertentu, atau beban terlalu tinggi, server siaga dapat dibawa secara online.

• SSL Offload and Acceleration : Bergantung pada beban kerja, memproses persyaratan enkripsi dan otentikasi dari permintaan SSL dapat menjadi bagian utama permintaan CPU Web Server; Seiring meningkatnya permintaan, pengguna akan melihat waktu respons yang lebih lambat, karena overhead SSL didistribusikan di antara server Web. Untuk menghapus permintaan ini pada server Web, penyeimbang dapat menghentikan koneksi SSL, meneruskan permintaan HTTPS sebagai permintaan HTTP ke server Web. Jika penyeimbang itu sendiri tidak kelebihan beban, ini tidak secara nyata menurunkan kinerja yang dirasakan oleh pengguna akhir. Kelemahan dari pendekatan ini adalah bahwa semua pemrosesan SSL terkonsentrasi pada satu perangkat (penyeimbang) yang bisa menjadi hambatan baru.

Beberapa peralatan penyeimbang beban mencakup perangkat keras khusus untuk memproses SSL. Alih-alih upgrade penyeimbang beban, perangkat keras khusus yang cukup mahal, mungkin lebih murah untuk mengabaikan SSL dan menambahkan beberapa server Web.

Selain itu, beberapa vendor server seperti Oracle / Sun sekarang menggabungkan perangkat keras akselerasi kriptografi ke dalam CPU mereka seperti T2000. Jaringan F5 menggabungkan kartu perangkat keras akselerasi SSL khusus di pengelola lalu lintas lokal (LTM) yang digunakan untuk mengenkripsi dan mendekripsi lalu lintas SSL. Satu manfaat nyata untuk pembongkaran SSL di penyeimbang adalah memungkinkan pengunduran atau penyeimbangan konten berdasarkan data dalam permintaan HTTPS.

• Distributed Denial of Service (DDoS) perlindungan serangan: load balancers dapat memberikan fitur seperti cookie SYN dan delayed-binding (server back-end tidak melihat klien sampai selesai jabat tangan TCP-nya) untuk mengurangi serangan banjir SYN dan umumnya membongkar bekerja dari server ke platform yang lebih efisien.

• Kompresi HTTP : mengurangi jumlah data yang akan ditransfer ke objek HTTP dengan memanfaatkan kompresi gzip yang tersedia di semua browser web modern. Semakin besar respon dan semakin jauh kliennya, semakin banyak fitur ini yang dapat meningkatkan waktu respon. Tradeoff adalah bahwa fitur ini menempatkan permintaan CPU tambahan pada penyeimbang beban dan bisa dilakukan oleh server web.

koneksi TCP yang berbeda. Fitur ini menggunakan HTTP / 1.1 untuk mengkonsolidasikan beberapa permintaan HTTP dari beberapa klien ke dalam satu soket TCP ke server back-end.

• Penyanggaan TCP: penyeimbang beban dapat menyangga tanggapan dari server dan memasukkan data umpan untuk memperlambat klien, membiarkan server web membebaskan thread untuk tugas lain lebih cepat daripada jika harus mengirimkan keseluruhan permintaan ke klien secara langsung. .

• Direct Server Return: pilihan untuk distribusi beban asimetris, dimana permintaan dan reply memiliki jalur jaringan yang berbeda.

• Pemeriksaan kesehatan: server polling penyeimbang untuk lapisan aplikasi kesehatan dan menghapus server yang gagal dari kolam.

• Caching HTTP : penyeimbang menyimpan konten statis sehingga beberapa permintaan dapat ditangani tanpa menghubungi server.

• Penyaringan konten: beberapa penyeimbang dapat mengubah lalu lintas secara sewenang-wenang dalam perjalanan.

• Keamanan HTTP: beberapa balancers dapat menyembunyikan halaman kesalahan HTTP, menghapus header identifikasi server dari tanggapan HTTP, dan mengenkripsi cookies sehingga pengguna akhir tidak dapat memanipulasinya.

• Prioritas antrian : juga dikenal sebagai tingkat pembentukan , kemampuan untuk memberikan prioritas yang berbeda untuk lalu lintas yang berbeda.

• Peralihan konten-sadar: balancer beban paling banyak dapat mengirim permintaan ke server yang berbeda berdasarkan URL yang diminta, dengan asumsi permintaan tidak dienkripsi (HTTP) atau jika dienkripsi (melalui HTTPS) bahwa permintaan HTTPS dihentikan (didekripsi) di penyeimbang beban

• Otentikasi klien: mengotentikasi pengguna terhadap berbagai sumber autentikasi sebelum mengizinkan mereka mengakses situs web.

• Manipulasi lalu lintas terprogram: setidaknya satu penyeimbang memungkinkan penggunaan bahasa scripting untuk memungkinkan metode penyeimbangan khusus, manipulasi lalu lintas yang sewenang-wenang, dan banyak lagi.

• Firewall : koneksi langsung ke server backend dicegah, untuk alasan keamanan jaringan.

• Sistem pencegahan intrusi : menawarkan keamanan lapisan aplikasi di samping lapisan jaringan / transport yang ditawarkan oleh keamanan firewall.

Dokumen terkait