Pendengar (listener) mengarahkan permintaan bisnis ke kelompok server tertentu berdasarkan aturan pengalihan yang dikonfigurasi. Kelompok server tersebut kemudian mendistribusikan traffic ke server backend menggunakan algoritma penjadwalan.
Cara kerja
Jenis kelompok server
Jenis kelompok server | Kelompok server default | Kelompok vServer | Kelompok server utama/cadangan |
Deskripsi | Setiap instans CLB mencakup satu kelompok server default. (tepat satu) | Dibuat dan dikelola oleh pengguna | Anda membuat dan mengelola kelompok server ini. |
Jumlah server backend | Satu atau lebih | Satu atau lebih | Dua (satu utama dan satu cadangan) |
Karakteristik |
|
|
|
Kasus penggunaan | Arsitektur sederhana di mana semua permintaan diarahkan ke kelompok server backend yang sama. | Arsitektur kompleks, seperti mendistribusikan permintaan berdasarkan nama domain atau port. | Layanan yang memerlukan mode aktif-pasif tetap, seperti database atau API inti. |
Jenis listener yang didukung | TCP/UDP/HTTP/HTTPS | TCP/UDP/HTTP/HTTPS | Hanya TCP/UDP |
Konfigurasi bobot
Algoritma penjadwalan menentukan cara CLB mendistribusikan permintaan masuk ke beberapa server backend. Bobot mengontrol proporsi traffic yang dialokasikan ke setiap server saat Anda menggunakan algoritma weighted.
Cakupan: Hanya berlaku saat Anda menggunakan algoritma penjadwalan weighted. Tidak berpengaruh pada penjadwalan round-robin.
Nilai valid: 0 hingga 100. Nilai default adalah 100.
Bobot diatur ke 0: Server berhenti menerima permintaan baru. Koneksi yang sudah ada tetap berlanjut hingga ditutup secara normal. Pemeriksaan kesehatan tetap berjalan. Ini umumnya digunakan untuk shutdown yang mulus.
Efek perubahan bobot: Perubahan hanya berlaku untuk koneksi baru. Koneksi yang sudah ada tidak terpengaruh. Dalam skenario koneksi persisten, pergeseran traffic terjadi secara bertahap setelah Anda menyesuaikan bobot.
Ketersediaan tinggi layanan
Aktifkan pemeriksaan kesehatan CLB untuk secara berkala mengirim permintaan dan memverifikasi status server.
Pemeriksaan kesehatan berhasil: Server dalam kondisi sehat. CLB meneruskan traffic ke server tersebut.
Pemeriksaan kesehatan gagal: Server tidak sehat. CLB berhenti mengirim permintaan baru ke server tersebut hingga pulih.
Pemeriksaan kesehatan CLB menggunakan blok CIDR 100.64.0.0/10. Pastikan aturan security group server backend Anda mengizinkan traffic dari blok CIDR ini. Jika tidak, pemeriksaan kesehatan akan gagal dan menyebabkan gangguan layanan.Kelompok server utama/cadangan mengandalkan pemeriksaan kesehatan untuk failover otomatis:
Jika server utama gagal dalam pemeriksaan kesehatan, traffic dialihkan ke server cadangan. Secara default, pemeriksaan kesehatan tidak dilakukan pada server cadangan. Anda harus memastikan server cadangan tersedia sebelum failover.
Waktu failover bergantung pada pengaturan Health Check Response Timeout. Setelah server utama pulih, traffic secara otomatis dialihkan kembali kepadanya.
Cakupan penggunaan
Asosiasi:
Listener dan kelompok server merupakan resource yang dibatasi cakupannya pada satu instans CLB. Listener dan kelompok server tidak dibagikan lintas instans CLB yang berbeda.
Satu kelompok server dapat dikaitkan dengan beberapa listener, tetapi satu listener hanya dapat dikaitkan dengan satu kelompok server.
Listener Lapisan 4 CLB tidak mendukung instans ECS yang berperan sebagai server backend sekaligus client. Jika diperlukan, gunakan listener Lapisan 7 sebagai gantinya.
Asosiasi server backend:
CLB hanya mendukung asosiasi server backend yang berada dalam Akun Alibaba Cloud dan wilayah yang sama.
Instans CLB jaringan privat: Anda hanya dapat mengasosiasikan server backend yang berada dalam VPC yang sama dengan instans CLB.
Instans CLB yang menghadap Internet: Semua server backend yang diasosiasikan harus berada dalam VPC yang sama.
Semua jenis kelompok server CLB mendukung asosiasi resource berikut: instans Elastic Compute Service (ECS), Elastic Network Interfaces (ENIs), dan Elastic Container Instances (ECIs).
Anda hanya dapat menambahkan ENI yang telah diasosiasikan dengan instans ECS. Baik Alamat IP pribadi utama maupun Alamat IP pribadi sekunder dari ENI dapat ditambahkan.
Jika instans ECS menjalani migrasi panas saat berperan sebagai server backend, koneksi persisten ke CLB mungkin terputus. Untuk memulihkannya, pastikan aplikasi Anda menerapkan reconnect otomatis.
Kemampuan modifikasi konfigurasi:
Kemampuan modifikasi konfigurasi
Tambah atau hapus kelompok server
Ubah port
Ubah bobot
Kelompok server default
Setelah Anda pertama kali membuat listener dan mengaitkannya, port tersebut tidak dapat diubah.
Kelompok vServer
Kelompok server utama/cadangan
Peran utama/cadangan tidak dapat diubah.
Konfigurasi kelompok server
Konsol
Kelompok server default
Tidak perlu pembuatan. Setiap instans CLB mencakup tepat satu kelompok server default.
Tambahkan server:
Buka halaman CLB - Instance Management page. Klik ID instans target. Pilih tab Default Server Group. Klik Add.
Atur Server Type dan Resource Group untuk memfilter resource yang tersedia.
Untuk menambahkan ENI, aktifkan terlebih dahulu Advanced Mode. Lalu klik ikon tanda plus di samping instans ECS yang memiliki ENI terpasang. Pilih ENI target. Centang ENI yang ingin diasosiasikan dan pilih IP.
Konfigurasi port dan bobot:
Konfigurasi port: Buka tab Listener. Klik Add Listener. Pada langkah Backend Servers, atur Port untuk kelompok server default. Semua server dalam kelompok server default untuk listener yang sama harus menggunakan port yang sama.
Anda hanya dapat menentukan port saat menambahkan listener. Anda tidak dapat mengubahnya nanti.
Konfigurasi bobot: Atur Weight untuk server yang dipilih.
Kelompok vServer
Buka halaman CLB - Instance Management page. Klik ID instans target. Pilih vServer groups. Klik Create vServer Group.
Add server:
Atur Server Type dan Resource Group untuk memfilter resource yang tersedia.
Untuk menambahkan ENI, aktifkan terlebih dahulu Advanced Mode. Lalu klik ikon tanda plus di samping instans ECS yang memiliki ENI terpasang. Pilih ENI target. Centang ENI yang ingin diasosiasikan dan pilih IP.
Konfigurasi Port dan Weight untuk server yang dipilih. Klik Add Port untuk menetapkan beberapa port ke server backend yang sama.
Kelompok server utama/cadangan
Buka halaman CLB - Instance Management page. Klik ID instans target. Pilih Primary/Secondary Server Groups. Klik Create Primary/Secondary Server Group.
Add server:
Atur Server Type dan Resource Group untuk memfilter resource yang tersedia.
Untuk menambahkan ENI, aktifkan terlebih dahulu Advanced Mode. Lalu klik ikon tanda plus di samping instans ECS yang memiliki ENI terpasang. Pilih ENI target. Centang ENI yang ingin diasosiasikan dan pilih IP.
Anda dapat menambahkan tepat dua server backend.
Konfigurasi Port untuk server yang dipilih. Klik Add Port untuk menetapkan beberapa port ke server backend yang sama. Lalu pilih Primary Server untuk menentukan hubungan utama/cadangan.
API
Kelompok server default
Panggil AddBackendServers untuk menambahkan server backend.
Panggil SetBackendServers untuk mengatur bobot server backend.
Panggil RemoveBackendServers untuk menghapus server backend.
Kelompok vServer
Panggil CreateVServerGroup untuk membuat kelompok vServer sekaligus menambahkan server backend serta mengonfigurasi port dan bobot.
Panggil AddVServerGroupBackendServers atau RemoveVServerGroupBackendServers untuk menambah atau menghapus server backend dari kelompok vServer tertentu.
Panggil DeleteVServerGroup untuk menghapus kelompok vServer.
Kelompok server utama/cadangan
Panggil CreateMasterSlaveServerGroup untuk membuat kelompok server utama/cadangan.
Panggil DeleteMasterSlaveServerGroup untuk menghapus kelompok server utama/cadangan.
FAQ
Apakah saya dapat menyesuaikan jumlah instans ECS saat instans CLB sedang berjalan?
Kelompok server default dan kelompok vServer: Anda dapat menambah atau mengurangi jumlah instans ECS backend kapan saja. Anda juga dapat beralih antar instans ECS berbeda. Untuk memastikan stabilitas layanan, aktifkan pemeriksaan kesehatan sebelum melakukan operasi ini dan pastikan setidaknya satu instans ECS backend tetap sehat.
Kelompok server utama/cadangan: Tidak didukung.
Apakah instans ECS backend dapat menjalankan sistem operasi berbeda?
Boleh berbeda.
CLB tidak membatasi sistem operasi yang digunakan oleh instans ECS backend, selama layanan aplikasi dan data konsisten di seluruh instans. Namun, kami merekomendasikan penggunaan sistem operasi yang sama untuk menyederhanakan manajemen dan maintenance.
Apakah saya dapat menggunakan instans ECS dari wilayah berbeda sebagai server backend?
CLB tidak mendukung secara native asosiasi server backend lintas wilayah. Untuk mencapai deployment lintas wilayah, gunakan salah satu opsi berikut:
Terapkan Global Traffic Manager (GTM) di depan beberapa instans CLB lintas wilayah. GTM mengarahkan traffic ke instans CLB berbeda untuk mencapai load balancing lintas wilayah. Untuk informasi lebih lanjut, lihat Global Traffic Manager.
Gunakan Application Load Balancer (ALB) atau Network Load Balancer (NLB), keduanya mendukung asosiasi server backend lintas wilayah. Untuk informasi lebih lanjut, lihat Application Load Balancer atau Network Load Balancer.
Mengapa alamat IP yang dimulai dengan 100 sering mengakses instans ECS saya?
Permintaan ini berasal dari pemeriksaan kesehatan dan pemantauan ketersediaan CLB.
Sumber: Blok CIDR Alibaba Cloud yang dicadangkan
100.64.0.0/10.Keamanan: Blok CIDR ini dicadangkan khusus untuk penggunaan internal Alibaba Cloud. Pengguna lain tidak dapat mengalokasikan alamat IP dalam rentang ini, sehingga tidak ada risiko keamanan.
Rekomendasi: Izinkan traffic dari blok CIDR ini dalam aturan security group Anda untuk memastikan ketersediaan layanan.
Kompresi tidak dikonfigurasi pada instans ECS saya. Mengapa respons HTTP dari CLB dikompresi?
Penyebab: Kompresi Gzip diaktifkan dalam konfigurasi listener CLB, dan browser client mendukung kompresi.
Tindakan: Nonaktifkan kompresi Gzip dalam konfigurasi listener di Konsol CLB, atau gunakan listener TCP sebagai gantinya.
Apakah instans ECS yang menggunakan HTTP 1.0 mendukung chunked transfer encoding?
Didukung.
Mengapa instans ECS backend dari instans CLB sering menerima permintaan dengan User-Agent 'KeepAliveClient'?
Gejala: Instans ECS backend menerima banyak permintaan GET dari alamat IP internal Alibaba Cloud, dengan User-Agent
KeepAliveClient.Penyebab: Protokol listener adalah TCP, tetapi protokol pemeriksaan kesehatan adalah HTTP. Saat pemeriksaan kesehatan HTTP digunakan dengan listener TCP, permintaan GET dikirim secara default.
Solusi: Gunakan protokol yang sama untuk listener dan pemeriksaan kesehatan, misalnya TCP atau HTTP.
Apakah saya dapat mengubah port server dalam kelompok server default?
Anda tidak dapat mengubahnya secara langsung.
Batasan: Anda hanya dapat mengatur port saat membuat listener. Semua server backend dalam kelompok server default untuk listener yang sama harus menggunakan port yang sama.
Solusi: Untuk mengonfigurasi port backend berbeda untuk listener yang sama, gunakan kelompok vServer.
Apakah listener Lapisan 4 CLB mendukung instans ECS yang berperan sebagai server backend sekaligus client?
Tidak. Konfigurasi ini menciptakan skenario loopback.
Solusi alternatif:
Gunakan listener Lapisan 7 CLB (HTTP atau HTTPS).
Gunakan instans NLB dan nonaktifkan fitur Preserve Client IP untuk kelompok server. Untuk informasi lebih lanjut, lihat How do I configure my NLB instance to allow an ECS instance in the server group to work as both a backend server and a client?.
Mengapa terdapat banyak koneksi TIME-WAIT pada backend CLB tetapi sedikit pada backend ALB?
CLB dan ALB menggunakan mekanisme koneksi berbeda saat berinteraksi dengan server backend.
CLB: Secara default menggunakan koneksi HTTP berumur pendek. Saat CLB meneruskan permintaan ke server backend, ia menyisipkan field
Connection: closeke dalam Header HTTP. Setelah server backend memproses permintaan, server tersebut secara aktif mengirim paket FIN untuk menutup koneksi berdasarkan header ini. Setiap kali koneksi ditutup, koneksi tersebut memasuki status TIME-WAIT (60 detik secara default). Dalam skenario konkurensi tinggi, banyak koneksi TIME-WAIT dapat menumpuk dengan cepat.ALB: Secara default mendukung koneksi HTTP persisten (keep-alive). Satu koneksi TCP dapat digunakan ulang untuk memproses beberapa permintaan. Mengaktifkan koneksi persisten mengurangi jumlah pemutusan koneksi, sehingga mengurangi jumlah koneksi TIME-WAIT.