Layanan backend menentukan cara Cloud Load Balancing mendistribusikan traffic. Konfigurasi layanan backend berisi serangkaian nilai, seperti protokol yang digunakan untuk terhubung ke backend, berbagai setelan distribusi dan sesi, health check, dan waktu tunggu. Setelan ini memberikan kontrol mendetail atas perilaku load balancer Anda. Untuk membantu Anda memulai, sebagian besar setelan memiliki nilai default yang memungkinkan konfigurasi cepat. Layanan backend dapat bersifat global atau regional dalam cakupannya.
Load balancer, proxy Envoy, dan klien gRPC tanpa proxy menggunakan informasi konfigurasi di resource layanan backend untuk melakukan hal berikut:
- Mengarahkan traffic ke backend yang benar, yaitu grup instance atau grup endpoint jaringan (NEG).
- Mendistribusikan traffic sesuai dengan mode penyeimbangan, yang merupakan setelan untuk setiap backend.
- Tentukan health check mana yang memantau kesehatan backend.
- Tentukan afinitas sesi.
- Tentukan apakah layanan lain diaktifkan, termasuk layanan berikut yang hanya tersedia untuk load balancer tertentu:
- Cloud CDN
- Kebijakan keamanan Google Cloud Armor
- Identity-Aware Proxy
- Tetapkan layanan backend regional sebagai layanan di aplikasi App Hub.
Anda menetapkan nilai ini saat membuat layanan backend atau menambahkan backend ke layanan backend.
Catatan: Jika Anda menggunakan Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik, dan backend Anda menyajikan konten statis, pertimbangkan untuk menggunakan bucket backend, bukan layanan backend. Lihat bucket backend untuk Load Balancer Aplikasi eksternal global atau bucket backend untuk Load Balancer Aplikasi klasik.Tabel berikut merangkum load balancer yang menggunakan layanan backend. Produk yang Anda gunakan juga menentukan jumlah maksimum layanan backend, cakupan layanan backend, jenis backend yang didukung, dan skema load balancing layanan backend. Skema load balancing adalah ID yang digunakan Google untuk mengklasifikasikan aturan penerusan dan layanan backend. Setiap produk load balancing menggunakan satu skema load balancing untuk aturan penerusan dan layanan backend-nya. Beberapa skema dibagikan di antara produk.
Produk | Jumlah maksimum layanan backend | Cakupan layanan backend | Jenis backend yang didukung | Skema load balancing |
---|---|---|---|---|
Load Balancer Aplikasi eksternal global | Beberapa | Global | Setiap layanan backend mendukung salah satu kombinasi backend berikut:
|
EXTERNAL_MANAGED |
Load Balancer Aplikasi Klasik | Beberapa | Global‡ | Setiap layanan backend mendukung salah satu kombinasi backend berikut:
|
EKSTERNAL# |
Load Balancer Aplikasi eksternal regional | Beberapa | Regional | Setiap layanan backend mendukung salah satu kombinasi backend berikut:
|
EXTERNAL_MANAGED |
Load Balancer Aplikasi internal lintas region | Beberapa | Global | Setiap layanan backend mendukung salah satu kombinasi backend berikut:
|
INTERNAL_MANAGED |
Load Balancer Aplikasi internal regional | Beberapa | Regional | Setiap layanan backend mendukung salah satu kombinasi backend berikut:
|
INTERNAL_MANAGED |
Load Balancer Jaringan proxy eksternal global | 1 | Global‡ | Layanan backend mendukung salah satu kombinasi backend berikut:
|
EXTERNAL_MANAGED |
Load Balancer Jaringan proxy klasik | 1 | Global‡ | Layanan backend mendukung salah satu kombinasi backend berikut:
|
EKSTERNAL |
Load Balancer Jaringan proxy eksternal regional | 1 | Regional | Layanan backend mendukung salah satu kombinasi backend berikut:
|
EXTERNAL_MANAGED |
Load Balancer Jaringan proxy internal regional | 1 | Regional | Layanan backend mendukung salah satu kombinasi backend berikut:
|
INTERNAL_MANAGED |
Load Balancer Jaringan proxy internal lintas region | Beberapa | Global | Layanan backend mendukung salah satu kombinasi backend berikut:
|
INTERNAL_MANAGED |
Load Balancer Jaringan passthrough eksternal | 1 | Regional | Layanan backend mendukung salah satu kombinasi backend berikut:
|
EKSTERNAL |
Load Balancer Jaringan passthrough internal | 1 | Regional, tetapi dapat dikonfigurasi agar dapat diakses secara global | Layanan backend mendukung salah satu kombinasi backend berikut:
|
INTERNAL |
Mesh Layanan Cloud | Beberapa | Global | Setiap layanan backend mendukung salah satu kombinasi backend berikut:
|
INTERNAL_SELF_MANAGED |
GCE_VM_IP_PORT
.
- Aturan penerusan dan alamat IP eksternalnya bersifat regional.
- Semua backend yang terhubung ke layanan backend harus berada di region yang sama dengan aturan penerusan.
EXTERNAL_MANAGED
layanan backend ke
EXTERNAL
aturan penerusan. Namun, layanan backend EXTERNAL
tidak dapat dilampirkan ke aturan penerusan EXTERNAL_MANAGED
.
Untuk memanfaatkan fitur baru yang hanya tersedia dengan Load Balancer Aplikasi eksternal global, sebaiknya Anda memigrasikan resource EXTERNAL
yang ada ke EXTERNAL_MANAGED
dengan menggunakan proses migrasi yang dijelaskan di Memigrasikan resource dari Load Balancer Aplikasi eksternal klasik ke global.
Penamaan load balancer
Untuk Load Balancer Jaringan Proxy dan Load Balancer Jaringan Passthrough, nama load balancer selalu sama dengan nama layanan backend. Perilaku untuk setiap antarmuka Google Cloud adalah sebagai berikut:
- Google Cloud console. Jika Anda membuat Load Balancer Jaringan proxy atau Load Balancer Jaringan passthrough menggunakan konsol Google Cloud , layanan backend akan otomatis diberi nama yang sama dengan nama load balancer yang Anda masukkan.
- Google Cloud CLI atau API. Jika membuat Load Balancer Jaringan proxy atau Load Balancer Jaringan passthrough menggunakan gcloud CLI atau API, Anda akan memasukkan nama pilihan saat membuat layanan backend. Nama layanan backend ini kemudian ditampilkan di konsol Google Cloud sebagai nama load balancer.
Untuk mempelajari cara penamaan Load Balancer Aplikasi, lihat Ringkasan peta URL: Penamaan load balancer.
Backend
Backend adalah satu atau beberapa endpoint yang menerima traffic dari Google Cloud load balancer, proxy Envoy yang dikonfigurasi Cloud Service Mesh, atau klien gRPC tanpa proxy. Ada beberapa jenis backend:
- Grup instance yang berisi instance virtual machine (VM). Grup instance dapat berupa grup instance terkelola (MIG), dengan atau tanpa penskalaan otomatis, atau dapat berupa grup instance tidak terkelola. Lebih dari satu layanan backend dapat mereferensikan grup instance, tetapi semua layanan backend yang mereferensikan grup instance harus menggunakan mode load balancing yang sama.
- NEG Zona
- NEG tanpa server
- NEG Private Service Connect
- NEG Internet
- NEG dengan konektivitas hybrid
- NEG pemetaan port
- Binding layanan Service Directory
Anda tidak dapat menghapus grup instance backend atau NEG yang terkait dengan layanan backend. Sebelum menghapus grup instance atau NEG, Anda harus menghapusnya terlebih dahulu sebagai backend dari semua layanan backend yang mereferensikannya.
Grup instance
Bagian ini membahas cara kerja grup instance dengan layanan backend.
VM backend dan alamat IP eksternal
VM backend di layanan backend tidak memerlukan alamat IP eksternal:
- Untuk Load Balancer Aplikasi eksternal global dan
Load Balancer Jaringan proxy eksternal: Klien berkomunikasi dengan Google Front End (GFE) yang
menghosting alamat IP eksternal load balancer Anda. GFE berkomunikasi dengan VM atau endpoint backend dengan mengirimkan paket ke alamat internal yang dibuat dengan menggabungkan ID untuk jaringan VPC backend dengan alamat IPv4 internal backend. Komunikasi antara GFE dan VM atau
endpoint backend difasilitasi melalui rute
khusus.
- Untuk backend grup instance, alamat IPv4 internal selalu berupa alamat IPv4 internal utama yang sesuai dengan antarmuka
nic0
VM. - Untuk endpoint
GCE_VM_IP_PORT
di NEG zonal, Anda dapat menentukan alamat IP endpoint sebagai alamat IPv4 utama yang terkait dengan antarmuka jaringan VM atau alamat IPv4 dari rentang alamat IP alias yang terkait dengan antarmuka jaringan VM.
- Untuk backend grup instance, alamat IPv4 internal selalu berupa alamat IPv4 internal utama yang sesuai dengan antarmuka
Untuk Load Balancer Aplikasi eksternal regional: Klien berkomunikasi dengan proxy Envoy yang menghosting alamat IP eksternal load balancer Anda. Proxy Envoy berkomunikasi dengan VM atau endpoint backend dengan mengirimkan paket ke alamat internal yang dibuat dengan menggabungkan ID untuk jaringan VPC backend dengan alamat IPv4 internal backend.
- Untuk backend grup instance, alamat IPv4 internal selalu berupa alamat IPv4 internal utama yang sesuai dengan antarmuka
nic0
VM, dannic0
harus berada di jaringan yang sama dengan load balancer. - Untuk endpoint
GCE_VM_IP_PORT
di NEG zonal, Anda dapat menentukan alamat IP endpoint sebagai alamat IPv4 utama yang terkait dengan antarmuka jaringan VM atau alamat IPv4 dari rentang alamat IP alias yang terkait dengan antarmuka jaringan VM, selama antarmuka jaringan berada di jaringan yang sama dengan load balancer.
- Untuk backend grup instance, alamat IPv4 internal selalu berupa alamat IPv4 internal utama yang sesuai dengan antarmuka
Untuk Load Balancer Jaringan passthrough eksternal: Klien berkomunikasi langsung dengan backend melalui infrastruktur load balancing passthrough Maglev Google. Paket dirutekan dan dikirimkan ke backend dengan alamat IP sumber dan tujuan asli dipertahankan. Backend merespons klien menggunakan direct server return. Metode yang digunakan untuk memilih backend dan melacak koneksi dapat dikonfigurasi.
- Untuk backend grup instance, paket selalu dikirimkan ke antarmuka
nic0
VM. - Untuk endpoint
GCE_VM_IP
di NEG zonal, paket dikirimkan ke antarmuka jaringan VM yang berada di subnetwork yang terkait dengan NEG.
- Untuk backend grup instance, paket selalu dikirimkan ke antarmuka
Port bernama
Atribut port bernama layanan backend hanya berlaku untuk load balancer berbasis proxy (Load Balancer Aplikasi dan Load Balancer Jaringan Proxy) yang menggunakan backend grup instance. Port bernama menentukan port tujuan yang digunakan untuk koneksi TCP antara proxy (GFE atau Envoy) dan instance backend.
Port bernama dikonfigurasi sebagai berikut:
Di setiap backend grup instance, Anda harus mengonfigurasi satu atau beberapa port bernama menggunakan pasangan nilai kunci. Kunci mewakili nama port yang bermakna yang Anda pilih, dan nilai mewakili nomor port yang Anda tetapkan ke nama. Pemetaan nama ke angka dilakukan satu per satu untuk setiap backend grup instance.
Di layanan backend, Anda menentukan satu port bernama hanya menggunakan nama port (
--port-name
).
Berdasarkan per backend grup instance, layanan backend menerjemahkan nama port menjadi nomor port. Jika port bernama grup instance cocok dengan --port-name
layanan backend, layanan backend akan menggunakan nomor port ini untuk berkomunikasi dengan VM grup instance.
Misalnya, Anda dapat menyetel port bernama pada grup instance dengan nama
my-service-name
dan port 8888
:
gcloud compute instance-groups unmanaged set-named-ports my-unmanaged-ig \ --named-ports=my-service-name:8888
Kemudian, Anda merujuk ke port bernama di konfigurasi layanan backend dengan
--port-name
pada layanan backend yang ditetapkan ke my-service-name
:
gcloud compute backend-services update my-backend-service \ --port-name=my-service-name
Layanan backend dapat menggunakan nomor port yang berbeda saat berkomunikasi dengan VM di grup instance yang berbeda jika setiap grup instance menentukan nomor port yang berbeda untuk nama port yang sama.
Nomor port yang di-resolve yang digunakan oleh layanan backend load balancer proxy tidak perlu cocok dengan nomor port yang digunakan oleh aturan penerusan load balancer. Load balancer proxy memproses koneksi TCP yang dikirim ke alamat IP dan port tujuan aturan penerusannya. Karena proxy membuka koneksi TCP kedua ke backend-nya, port tujuan koneksi TCP kedua dapat berbeda.
Port bernama hanya berlaku untuk backend grup instance. NEG zonal dengan endpoint GCE_VM_IP_PORT
, NEG hybrid dengan endpoint NON_GCP_PRIVATE_IP_PORT
, dan NEG internet menentukan port menggunakan mekanisme yang berbeda, yaitu, pada endpoint itu sendiri. NEG tanpa server mereferensikan layanan Google dan NEG PSC mereferensikan lampiran layanan menggunakan abstraksi yang tidak melibatkan penentuan port tujuan.
Load Balancer Jaringan passthrough internal dan Load Balancer Jaringan passthrough eksternal tidak menggunakan port bernama. Hal ini karena load balancer tersebut adalah load balancer pass-through yang merutekan koneksi langsung ke backend, bukan membuat koneksi baru. Paket dikirim ke backend dengan mempertahankan alamat IP dan port tujuan aturan penerusan load balancer.
Untuk mempelajari cara membuat port bernama, lihat petunjuk berikut:
- Grup instance tidak terkelola: Bekerja dengan port bernama
- Grup instance terkelola: Menetapkan port bernama ke grup instance terkelola
Batasan dan panduan untuk grup instance
Perhatikan batasan dan panduan berikut saat Anda membuat grup instance untuk load balancer:
Jangan menempatkan VM di lebih dari satu grup instance yang di-load balanced. Jika VM adalah anggota dua atau beberapa grup instance tidak terkelola, atau anggota satu grup instance terkelola dan satu atau beberapa grup instance tidak terkelola, Google Cloud membatasi Anda untuk hanya menggunakan satu grup instance tersebut sebagai backend untuk layanan backend tertentu.
Jika Anda ingin VM berpartisipasi dalam beberapa load balancer, Anda harus menggunakan grup instance yang sama sebagai backend di setiap layanan backend.
Untuk load balancer proxy, saat Anda ingin menyeimbangkan traffic ke port yang berbeda, tentukan port bernama yang diperlukan di satu grup instance dan buat setiap layanan backend berlangganan ke port bernama yang unik.
Anda dapat menggunakan grup instance yang sama sebagai backend untuk lebih dari satu layanan backend. Dalam situasi ini, backend harus menggunakan mode penyeimbangan yang kompatibel. Kompatibel berarti mode penyeimbangan harus sama, atau harus berupa kombinasi mode penyeimbangan yang kompatibel—misalnya,
CONNECTION
danRATE
.Kombinasi mode penyeimbangan yang tidak kompatibel adalah sebagai berikut:
CONNECTION
denganUTILIZATION
RATE
denganUTILIZATION
CUSTOM_METRICS
denganUTILIZATION
CUSTOM_METRICS
denganRATE
CUSTOM_METRICS
denganCONNECTION
Perhatikan contoh berikut:
- Anda memiliki dua layanan backend:
external-https-backend-service
untuk Load Balancer Aplikasi eksternal daninternal-tcp-backend-service
untuk Load Balancer Jaringan passthrough internal. - Anda menggunakan grup instance bernama
instance-group-a
diinternal-tcp-backend-service
. - Di
internal-tcp-backend-service
, Anda harus menerapkan mode penyeimbanganCONNECTION
karena Load Balancer Jaringan passthrough internal hanya mendukung mode penyeimbanganCONNECTION
. - Anda juga dapat menggunakan
instance-group-a
diexternal-https-backend-service
jika Anda menerapkan mode penyeimbanganRATE
diexternal-https-backend-service
. - Anda juga tidak dapat menggunakan
instance-group-a
diexternal-https-backend-service
dengan mode penyeimbanganUTILIZATION
.
Untuk mengubah mode penyeimbangan bagi grup instance yang berfungsi sebagai backend untuk beberapa layanan backend:
- Hapus grup instance dari semua layanan backend kecuali satu.
- Ubah mode penyeimbangan untuk backend pada satu layanan backend yang tersisa.
- Tambahkan kembali grup instance sebagai backend ke layanan backend yang tersisa, jika layanan tersebut mendukung mode penyeimbangan baru.
Jika grup instance Anda dikaitkan dengan beberapa layanan backend, setiap layanan backend dapat mereferensikan port bernama yang sama atau port bernama yang berbeda di grup instance.
Sebaiknya jangan menambahkan grup instance terkelola yang diskalakan otomatis ke lebih dari satu layanan backend. Tindakan ini dapat menyebabkan penskalaan instance yang tidak dapat diprediksi dan tidak perlu dalam grup, terutama jika Anda menggunakan metrik penskalaan otomatis Penggunaan Load Balancing HTTP.
- Meskipun tidak direkomendasikan, skenario ini mungkin berfungsi jika metrik penskalaan otomatis adalah Penggunaan CPU atau Metrik Cloud Monitoring yang tidak terkait dengan kapasitas penayangan load balancer. Menggunakan salah satu metrik penskalaan otomatis ini dapat mencegah penskalaan yang tidak teratur.
Grup endpoint jaringan zona
Endpoint jaringan merepresentasikan layanan berdasarkan alamat IP atau kombinasi alamat IP dan port, bukan merujuk ke VM dalam grup instance. Grup endpoint jaringan (NEG) adalah pengelompokan logis endpoint jaringan.
Grup endpoint jaringan (NEG) zona adalah resource zonal yang merepresentasikan kumpulan alamat IP atau kombinasi alamat IP dan port untuk resource Google Cloud dalam satu subnet.
Layanan backend yang menggunakan NEG zonal sebagai backend-nya mendistribusikan traffic di antara aplikasi atau container yang berjalan di dalam VM.
Ada dua jenis endpoint jaringan yang tersedia untuk NEG zonal:
- Endpoint
GCE_VM_IP
(hanya didukung dengan Load Balancer Jaringan passthrough internal dan Load Balancer Jaringan passthrough eksternal berbasis layanan backend). - Endpoint
GCE_VM_IP_PORT
.
Untuk melihat produk yang mendukung backend NEG zonal, lihat Tabel: Layanan backend dan jenis backend yang didukung.
Untuk mengetahui detailnya, lihat Ringkasan NEG zonal.
Grup endpoint jaringan internet
NEG internet adalah resource yang menentukan backend eksternal. Backend eksternal adalah backend yang dihosting dalam infrastruktur lokal atau di infrastruktur yang disediakan oleh pihak ketiga.
NEG internet adalah kombinasi nama host atau alamat IP, ditambah port opsional. Ada dua jenis endpoint jaringan yang tersedia untuk NEG internet: INTERNET_FQDN_PORT
dan INTERNET_IP_PORT
.
Untuk mengetahui detailnya, lihat Ringkasan grup endpoint jaringan internet.
Grup endpoint jaringan tanpa server
Grup endpoint jaringan (NEG) menentukan grup endpoint backend untuk load balancer. NEG serverless adalah backend yang mengarah ke resource Cloud Run, App Engine, fungsi Cloud Run, atau API Gateway.
NEG tanpa server dapat merepresentasikan salah satu hal berikut:
- Resource Cloud Run atau sekelompok resource.
- Fungsi Cloud Run atau grup fungsi (sebelumnya Cloud Run functions generasi ke-2).
- Cloud Run function (generasi ke-1) atau grup fungsi
- Aplikasi lingkungan standar App Engine atau lingkungan fleksibel App Engine, layanan tertentu dalam aplikasi, versi tertentu dari aplikasi, atau grup layanan.
- API Gateway yang menyediakan akses ke layanan Anda melalui REST API yang konsisten di semua layanan, terlepas dari implementasi layanan. Kemampuan ini berada dalam Pratinjau.
Untuk menyiapkan NEG tanpa server bagi aplikasi tanpa server yang memiliki pola URL yang sama, Anda menggunakan masker URL. Masker URL
adalah template skema URL Anda (misalnya, example.com/<service>
). NEG
tanpa server akan menggunakan template ini untuk mengekstrak nama <service>
dari
URL permintaan masuk dan merutekan permintaan ke layanan Cloud Run, fungsi Cloud Run, atau App Engine yang cocok dengan nama yang sama.
Untuk melihat load balancer mana yang mendukung backend NEG tanpa server, lihat Tabel: Layanan backend dan jenis backend yang didukung.
Untuk mengetahui informasi selengkapnya tentang NEG tanpa server, lihat Ringkasan grup endpoint jaringan tanpa server.
Pengikatan layanan
Pengikatan layanan adalah backend yang membuat koneksi antara layanan backend di Cloud Service Mesh dan layanan yang terdaftar di Service Directory. Layanan backend dapat mereferensikan beberapa binding layanan. Layanan backend dengan binding layanan tidak dapat mereferensikan jenis backend lainnya.
Backend campuran
Pertimbangan penggunaan berikut berlaku saat Anda menambahkan berbagai jenis backend ke satu layanan backend:
- Satu layanan backend tidak dapat menggunakan grup instance dan NEG zonal secara bersamaan.
- Anda dapat menggunakan kombinasi berbagai jenis grup instance pada layanan backend yang sama. Misalnya, satu layanan backend dapat mereferensikan kombinasi grup instance terkelola dan tidak terkelola. Untuk mengetahui informasi lengkap tentang backend mana yang kompatibel dengan layanan backend mana, lihat tabel di bagian sebelumnya.
- Dengan load balancer proxy tertentu, Anda dapat menggunakan kombinasi NEG zonal (dengan endpoint
GCE_VM_IP_PORT
) dan NEG konektivitas hybrid (dengan endpointNON_GCP_PRIVATE_IP_PORT
) untuk mengonfigurasi load balancing hybrid. Untuk melihat load balancer mana yang memiliki kemampuan ini, lihat Tabel: Layanan backend dan jenis backend yang didukung.
Protokol ke backend
Saat membuat layanan backend, Anda harus menentukan protokol yang digunakan untuk berkomunikasi dengan backend. Anda hanya dapat menentukan satu protokol per layanan backend — Anda tidak dapat menentukan protokol sekunder untuk digunakan sebagai pengganti.
Protokol yang valid bergantung pada jenis load balancer atau apakah Anda menggunakan Cloud Service Mesh.
Produk | Opsi protokol layanan backend |
---|---|
Load Balancer Aplikasi | HTTP, HTTPS, HTTP/2 |
Load Balancer Jaringan Proxy | TCP atau SSL Load Balancer Jaringan proxy regional hanya mendukung TCP. |
Load Balancer Jaringan passthrough | TCP, UDP, atau UNSPECIFIED |
Mesh Layanan Cloud | HTTP, HTTPS, HTTP/2, gRPC, TCP |
Mengubah protokol layanan backend membuat backend tidak dapat diakses melalui load balancer selama beberapa menit.
Kebijakan pemilihan alamat IP
Kolom ini berlaku untuk load balancer proxy. Anda harus menggunakan kebijakan pemilihan alamat IP untuk menentukan jenis traffic yang dikirim dari layanan backend ke backend Anda.
Saat Anda memilih kebijakan pemilihan alamat IP, pastikan backend Anda mendukung jenis traffic yang dipilih. Untuk mengetahui informasi selengkapnya, lihat Tabel: Layanan backend dan jenis backend yang didukung.
Kebijakan pemilihan alamat IP digunakan saat Anda ingin mengonversi layanan backend load balancer untuk mendukung jenis traffic yang berbeda. Untuk mengetahui informasi selengkapnya, lihat Mengonversi dari stack tunggal ke stack ganda.
Anda dapat menentukan nilai berikut untuk kebijakan pemilihan alamat IP:
Kebijakan pemilihan alamat IP | Deskripsi |
---|---|
Hanya IPv4 | Hanya mengirim traffic IPv4 ke backend layanan backend, terlepas dari traffic dari klien ke GFE. Health check hanya IPv4 digunakan untuk memeriksa kondisi backend. |
Lebih memilih IPv6 | Membuat koneksi IPv6 backend lebih diprioritaskan daripada koneksi IPv4 (asalkan ada backend yang sehat dengan alamat IPv6). Health check secara berkala memantau koneksi IPv6 dan IPv4 backend. GFE pertama-tama mencoba koneksi IPv6; jika koneksi IPv6 terputus atau lambat, GFE menggunakan happy eyeballs untuk melakukan penggantian dan terhubung ke IPv4. Meskipun salah satu koneksi IPv6 atau IPv4 tidak sehat, backend tetap dianggap sehat, dan kedua koneksi dapat dicoba oleh GFE, dengan happy eyeballs yang pada akhirnya memilih koneksi mana yang akan digunakan. |
Khusus IPv6 | Hanya mengirim traffic IPv6 ke backend layanan backend, terlepas dari traffic dari klien ke proxy. Health check IPv6 saja yang digunakan untuk memeriksa kondisi backend. Tidak ada validasi untuk memeriksa apakah jenis traffic backend cocok dengan
kebijakan pemilihan alamat IP. Misalnya, jika Anda memiliki backend khusus IPv4
dan memilih |
Enkripsi antara load balancer dan backend
Untuk mengetahui informasi tentang enkripsi antara load balancer dan backend, lihat Enkripsi ke backend.
Distribusi traffic
Nilai kolom berikut dalam resource layanan backend menentukan beberapa aspek perilaku backend:
- Mode load balancing menentukan cara load balancer mengukur kesiapan backend untuk permintaan atau koneksi baru.
- Kapasitas target menentukan jumlah maksimum target koneksi, target laju maksimum, atau target penggunaan CPU maksimum.
- Penghitung skala kapasitas menyesuaikan kapasitas keseluruhan yang tersedia tanpa mengubah kapasitas target.
Balancing mode
Mode load balancing menentukan apakah backend load balancer atau Cloud Service Mesh dapat menangani traffic tambahan atau sudah memiliki beban penuh.
Google Cloud memiliki empat mode penyeimbangan:
CONNECTION
: Menentukan cara penyebaran beban berdasarkan jumlah total koneksi yang dapat ditangani backend.RATE
: Jumlah permintaan (kueri) per detik (RPS, QPS) maksimum target. RPS/QPS maksimum target dapat terlampaui jika semua backend berada pada atau di atas kapasitas.UTILIZATION
: Menentukan cara penyebaran beban berdasarkan penggunaan instance dalam grup instance.CUSTOM_METRICS
: Menentukan cara penyebaran beban berdasarkan metrik kustom yang ditentukan pengguna.
Mode penyeimbangan yang tersedia untuk setiap load balancer
Anda menetapkan mode load balancing saat menambahkan backend ke layanan backend. Mode penyeimbangan yang tersedia untuk load balancer bergantung pada jenis load balancer dan jenis backend.
Load Balancer Jaringan passthrough memerlukan mode penyeimbangan CONNECTION
, tetapi tidak mendukung penetapan target kapasitas.
Load Balancer Aplikasi mendukung mode balancing RATE
, UTILIZATION
, atau CUSTOM_METRICS
untuk backend grup instance, dan mode balancing RATE
atau CUSTOM_METRICS
untuk NEG zonal (endpoint GCE_VM_IP_PORT
) dan NEG hybrid (endpoint NON_GCP_PRIVATE_IP_PORT
). Untuk jenis backend lain yang didukung, mode penyeimbangan harus dihilangkan.
Untuk Load Balancer Aplikasi klasik, region dipilih berdasarkan lokasi klien dan apakah region tersebut memiliki kapasitas yang tersedia, berdasarkan kapasitas target mode load balancing. Kemudian, dalam suatu region, kapasitas target mode load balancing digunakan untuk menghitung proporsi jumlah permintaan yang harus ditujukan ke setiap backend di region tersebut. Permintaan atau koneksi kemudian didistribusikan secara round robin di antara instance atau endpoint dalam backend.
Untuk Load Balancer Aplikasi eksternal global, region dipilih berdasarkan lokasi klien dan apakah region tersebut memiliki kapasitas yang tersedia, berdasarkan kapasitas target mode load balancing. Dalam suatu region, kapasitas target mode load balancing digunakan untuk menghitung proporsi jumlah permintaan yang harus ditujukan ke setiap backend (grup instance atau NEG) di region tersebut. Anda dapat menggunakan kebijakan load balancing layanan (
serviceLbPolicy
) dan setelan backend pilihan untuk memengaruhi pemilihan backend tertentu dalam suatu region. Selain itu, dalam setiap grup instance atau NEG, kebijakan load balancing (LocalityLbPolicy
) menentukan cara traffic didistribusikan ke instance atau endpoint dalam grup.
- Untuk
Load Balancer Aplikasi internal lintas region, Load Balancer Aplikasi eksternal regional, dan Load Balancer Aplikasi internal regional, kapasitas target
mode load balancing digunakan untuk menghitung proporsi jumlah permintaan yang harus
ditujukan ke setiap backend (grup instance atau NEG) di region. Dalam setiap
grup instance atau NEG, kebijakan load balancing (
LocalityLbPolicy
) menentukan cara traffic didistribusikan ke instance atau endpoint dalam grup. Hanya Load Balancer Aplikasi internal lintas region yang mendukung penggunaan kebijakan load balancing layanan (serviceLbPolicy
) dan setelan backend pilihan untuk memengaruhi pemilihan backend tertentu dalam suatu region.
Proxy Network Load Balancer mendukung mode balancing CONNECTION
atau UTILIZATION
untuk backend grup instance VM, mode balancing CONNECTION
untuk NEG zonal dengan endpoint GCE_VM_IP_PORT
, dan mode balancing CONNECTION
untuk NEG hybrid (endpoint NON_GCP_PRIVATE_IP_PORT
). Untuk jenis backend lain yang didukung, mode penyeimbangan harus dihilangkan.
Untuk Load Balancer Jaringan proxy eksternal global, region dipilih berdasarkan lokasi klien dan apakah region tersebut memiliki kapasitas yang tersedia, berdasarkan kapasitas target mode load balancing. Dalam suatu region, kapasitas target mode load balancing digunakan untuk menghitung proporsi jumlah permintaan yang harus ditujukan ke setiap backend (grup instance atau NEG) di region tersebut. Anda dapat menggunakan kebijakan load balancing layanan (
serviceLbPolicy
) dan setelan backend pilihan untuk memengaruhi pemilihan backend tertentu dalam suatu region. Selain itu, dalam setiap grup instance atau NEG, kebijakan load balancing (LocalityLbPolicy
) menentukan cara traffic didistribusikan ke instance atau endpoint dalam grup.Untuk Load Balancer Jaringan proxy internal lintas region, region yang dikonfigurasi akan dipilih terlebih dahulu. Dalam suatu region, kapasitas target mode load balancing digunakan untuk menghitung proporsi jumlah permintaan yang harus ditujukan ke setiap backend (grup instance atau NEG) di region tersebut. Anda dapat menggunakan kebijakan load balancing layanan (
serviceLbPolicy
) dan setelan backend pilihan untuk memengaruhi pemilihan backend tertentu dalam suatu region. Selain itu, dalam setiap grup instance atau NEG, kebijakan load balancing (LocalityLbPolicy
) menentukan cara traffic didistribusikan ke instance atau endpoint dalam grup.Untuk Load Balancer Jaringan proxy klasik, region dipilih berdasarkan lokasi klien dan apakah region memiliki kapasitas yang tersedia berdasarkan kapasitas target mode load balancing. Kemudian, dalam suatu region, kapasitas target mode load balancing digunakan untuk menghitung proporsi jumlah permintaan atau koneksi yang harus ditujukan ke setiap backend (grup instance atau NEG) di region tersebut. Setelah load balancer memilih backend, permintaan atau koneksi akan didistribusikan secara round robin di antara instance VM atau endpoint jaringan dalam setiap backend.
- Untuk Load Balancer Jaringan proxy eksternal regional dan Load Balancer Jaringan proxy internal regional, kapasitas target mode load balancing digunakan untuk menghitung proporsi jumlah permintaan yang harus ditujukan ke setiap backend (grup instance atau NEG). Dalam setiap
grup instance atau NEG, kebijakan load balancing (
localityLbPolicy
) menentukan cara traffic didistribusikan ke instance atau endpoint dalam grup.
Tabel berikut merangkum mode load balancing yang tersedia untuk setiap kombinasi load balancer dan backend.
Load balancer | Backend | Mode penyeimbangan yang tersedia |
---|---|---|
Load Balancer Aplikasi | Grup instance | RATE , UTILIZATION ,
atau CUSTOM_METRICS |
NEG zona (endpoint GCE_VM_IP_PORT ) |
RATE atau CUSTOM_METRICS |
|
NEG Hybrid (endpoint NON_GCP_PRIVATE_IP_PORT ) |
RATE atau CUSTOM_METRICS |
|
Load Balancer Jaringan Proxy
|
Grup instance | CONNECTION atau UTILIZATION |
NEG zona (endpoint GCE_VM_IP_PORT ) |
CONNECTION |
|
NEG Hybrid (endpoint |
CONNECTION |
|
Load Balancer Jaringan passthrough | Grup instance | CONNECTION |
NEG zona (endpoint GCE_VM_IP ) |
CONNECTION |
Jika penggunaan rata-rata semua VM yang terkait dengan layanan backend kurang dari 10%, Google Cloud mungkin lebih memilih zona tertentu. Hal ini dapat terjadi saat Anda menggunakan grup instance terkelola regional, grup instance terkelola zonal di zona yang berbeda, dan grup instance tidak terkelola zonal. Ketidakseimbangan per zona ini akan otomatis teratasi saat lebih banyak traffic dikirim ke load balancer.
Untuk mengetahui informasi selengkapnya, lihat gcloud compute backend-services add-backend.
Kapasitas target
Setiap mode penyeimbangan memiliki kapasitas target yang sesuai, yang menentukan salah satu maksimum target berikut:
- Jumlah koneksi
- Rate
- Pemakaian CPU
Untuk setiap mode penyeimbangan, kapasitas target bukanlah pemutus sirkuit. Load balancer dapat melampaui nilai maksimum dalam kondisi tertentu, misalnya, jika semua VM atau endpoint backend telah mencapai nilai maksimum.
Mode penyeimbangan koneksi
Untuk mode penyeimbangan CONNECTION
, kapasitas target menentukan target
jumlah maksimum koneksi terbuka. Kecuali untuk Load Balancer Jaringan passthrough internal dan Load Balancer Jaringan passthrough eksternal, Anda harus menggunakan salah satu setelan berikut untuk menentukan jumlah maksimum target koneksi:
max-connections-per-instance
(per VM): Jumlah koneksi rata-rata target untuk satu VM.max-connections-per-endpoint
(per endpoint di NEG zona): Jumlah target rata-rata koneksi untuk satu endpoint.max-connections
(per NEG zona dan untuk grup instance zona): Jumlah koneksi rata-rata target untuk seluruh NEG atau grup instance. Untuk grup instance terkelola regional, gunakanmax-connections-per-instance
.
Tabel berikut menunjukkan cara parameter kapasitas target menentukan hal berikut:
- Kapasitas target untuk seluruh backend
- Kapasitas target yang diharapkan untuk setiap instance atau endpoint
Jenis backend | Kapasitas target | ||
---|---|---|---|
Jika Anda menentukan | Kapasitas backend keseluruhan | Kapasitas yang diharapkan per instance atau per endpoint | |
Grup instanceN instance,H sehat |
max-connections-per-instance=X
|
X × N
|
(X × N)/H
|
Endpoint NEGN zona,H responsif
|
max-connections-per-endpoint=X
|
X × N
|
(X × N)/H
|
Grup instance (kecuali grup instance terkelola regional) H instance yang sehat
|
max-connections=Y
|
Y
|
Y/H
|
Seperti yang diilustrasikan, setelan max-connections-per-instance
dan
max-connections-per-endpoint
adalah proxy untuk menghitung
target jumlah koneksi maksimum untuk seluruh grup instance VM atau seluruh
NEG zona:
- Dalam grup instance VM dengan instance
N
, menyetelmax-connections-per-instance=X
memiliki arti yang sama dengan menyetelmax-connections=X × N
. - Di NEG zona dengan endpoint
N
, menyetelmax-connections-per-endpoint=X
memiliki arti yang sama dengan menyetelmax-connections=X × N
.
Mode penyeimbangan rasio
Untuk mode penyeimbangan RATE
, Anda harus menentukan kapasitas target menggunakan
salah satu parameter berikut:
max-rate-per-instance
(per VM): Berikan target kecepatan permintaan HTTP rata-rata untuk satu VM.max-rate-per-endpoint
(per endpoint di NEG zonal): Memberikan target rata-rata laju permintaan HTTP untuk satu endpoint.max-rate
(per NEG zona dan untuk grup instance zona): Berikan target rata-rata rasio permintaan HTTP untuk seluruh NEG atau grup instance. Untuk grup instance terkelola regional, gunakanmax-rate-per-instance
sebagai gantinya.
Tabel berikut menunjukkan cara parameter kapasitas target menentukan hal berikut:
- Kapasitas target untuk seluruh backend
- Kapasitas target yang diharapkan untuk setiap instance atau endpoint
Jenis backend | Kapasitas target | ||
---|---|---|---|
Jika Anda menentukan | Kapasitas backend keseluruhan | Kapasitas yang diharapkan per instance atau per endpoint | |
Grup instanceN instance,H sehat |
max-rate-per-instance=X
|
X × N
|
(X × N)/H
|
endpoint NEG zonaN ,H responsif
|
max-rate-per-endpoint=X
|
X × N
|
(X × N)/H
|
Grup instance (kecuali grup instance terkelola regional) H instance yang sehat
|
max-rate=Y
|
Y
|
Y/H
|
Seperti yang diilustrasikan, setelan max-rate-per-instance
dan max-rate-per-endpoint
adalah proxy untuk menghitung target laju maksimum permintaan HTTP untuk seluruh
grup instance atau seluruh NEG zona:
- Dalam grup instance dengan
N
instance, menyetelmax-rate-per-instance=X
memiliki arti yang sama dengan menyetelmax-rate=X × N
. - Dalam NEG zonal dengan endpoint
N
, menyetelmax-rate-per-endpoint=X
memiliki arti yang sama dengan menyetelmax-rate=X × N
.
Mode penyeimbangan pemakaian
Mode balancing UTILIZATION
tidak memiliki kapasitas target wajib. Anda memiliki sejumlah opsi yang bergantung pada jenis backend, seperti yang diringkas dalam tabel di bagian berikut.
Kapasitas target max-utilization
hanya dapat ditentukan per grup instance dan tidak dapat diterapkan ke VM tertentu dalam grup.
Mode balancing UTILIZATION
tidak memiliki kapasitas target wajib. Saat Anda menggunakan
konsol Google Cloud untuk menambahkan grup instance backend ke layanan backend, konsol
Google Cloud menetapkan nilai max-utilization
ke 0,8 (80%) jika mode penyeimbangan
UTILIZATION
dipilih. Selain max-utilization
, mode penyeimbangan
UTILIZATION
mendukung kapasitas target yang lebih kompleks, seperti
dirangkum dalam tabel di bagian berikut.
Mode penyeimbangan metrik kustom
Mode balancing CUSTOM_METRICS
memungkinkan Anda menentukan metrik kustom sendiri yang dapat digunakan untuk menentukan cara penyebaran beban. Metrik kustom memungkinkan Anda mengonfigurasi perilaku distribusi traffic load balancer agar didasarkan pada metrik khusus untuk persyaratan aplikasi atau infrastruktur Anda, bukan metrik berbasis tarif atau penggunaan standarGoogle Cloud.
Untuk mengetahui informasi selengkapnya, lihat Metrik kustom untuk Load Balancer Aplikasi.
Mengubah mode load balancing load balancer
Untuk beberapa load balancer atau konfigurasi load balancer, Anda tidak dapat mengubah mode penyeimbangan karena layanan backend hanya memiliki satu kemungkinan mode penyeimbangan. Untuk yang lain, bergantung pada backend yang digunakan, Anda dapat mengubah mode penyeimbangan karena lebih dari satu mode tersedia untuk layanan backend tersebut.
Untuk melihat mode penyeimbangan yang didukung untuk setiap load balancer, lihat Tabel: Mode penyeimbangan yang tersedia untuk setiap load balancer
Setelan mode penyeimbangan dan kapasitas target
Untuk produk yang mendukung spesifikasi kapasitas target, kapasitas target bukan pemutus arus. Jika kapasitas target maksimum yang dikonfigurasi tercapai di zona tertentu, permintaan atau koneksi baru akan didistribusikan ke zona lain yang tidak memproses permintaan atau koneksi pada kapasitas target. Jika semua zona telah mencapai kapasitas target, permintaan atau koneksi baru akan didistribusikan dengan pengisian berlebih.
Load Balancer Aplikasi dan Cloud Service Mesh
Tabel ini mencantumkan kombinasi mode penyeimbangan dan kapasitas target yang tersedia untuk Load Balancer Aplikasi dan Cloud Service Mesh.
Jenis backend | Balancing mode | Spesifikasi kapasitas target |
---|---|---|
Grup instance
|
RATE |
Anda harus menentukan salah satu opsi berikut:
|
UTILIZATION |
Anda dapat secara opsional menentukan salah satu opsi berikut:
|
|
CUSTOM_METRICS |
Anda dapat secara opsional menentukan salah satu opsi berikut:
max-utilization per backend tidak didukung. |
|
NEG Zona
NEG Hybrid
|
RATE |
Anda harus menentukan salah satu opsi berikut:
|
CUSTOM_METRICS |
Anda dapat secara opsional menentukan salah satu opsi berikut:
max-utilization per backend tidak didukung. |
Load Balancer Jaringan Proxy
Tabel ini mencantumkan kombinasi mode load balancing dan kapasitas target yang tersedia untuk Load Balancer Jaringan Proxy.
Jenis backend | Balancing mode | Spesifikasi kapasitas target |
---|---|---|
Grup instance
|
CONNECTION |
Anda harus menentukan salah satu opsi berikut:
|
UTILIZATION |
Anda dapat secara opsional menentukan salah satu opsi berikut:
|
|
NEG Zona
NEG Hybrid
|
CONNECTION |
Anda harus menentukan salah satu opsi berikut:
|
Load Balancer Jaringan passthrough
Tabel ini mencantumkan kombinasi mode penyeimbangan dan kapasitas target yang tersedia untuk Load Balancer Jaringan Passthrough.
Jenis backend | Balancing mode | Spesifikasi kapasitas target |
---|---|---|
Grup instance
|
CONNECTION |
Anda tidak dapat menentukan jumlah maksimum target koneksi. |
NEG Zona
|
CONNECTION |
Anda tidak dapat menentukan jumlah maksimum target koneksi. |
Penskala kapasitas
Gunakan penskala kapasitas untuk menskalakan kapasitas target (pemanfaatan maks, kecepatan maks, atau koneksi maks) tanpa mengubah kapasitas target.
Untuk dokumentasi referensi Google Cloud , lihat berikut ini:
- Google Cloud CLI: capacity-scaler
- API:
Anda dapat menyesuaikan scaler kapasitas untuk menskalakan kapasitas target efektif
tanpa mengubah salah satu parameter --max-*
secara eksplisit.
Anda dapat menyetel penskala kapasitas ke salah satu nilai berikut:
- Nilai defaultnya adalah
1
, yang berarti grup menayangkan hingga 100% kapasitas yang dikonfigurasi (bergantung padabalancingMode
). - Nilai
0
berarti grup benar-benar habis, menawarkan 0% dari kapasitas yang tersedia. Anda tidak dapat mengonfigurasi setelan0
jika hanya ada satu backend yang terlampir ke layanan backend. - Nilai dari
0.1
(10%) hingga1.0
(100%).
Contoh berikut menunjukkan cara kerja penskala kapasitas bersama dengan setelan kapasitas target:
Jika mode balancing adalah
RATE
,max-rate
ditetapkan ke80
RPS, dan pengubah skala kapasitas adalah1.0
, kapasitas yang tersedia juga80
RPS.Jika mode balancing adalah
RATE
,max-rate
ditetapkan ke80
RPS, dan penskala kapasitas adalah0.5
, kapasitas yang tersedia adalah40
RPS (0.5 times 80
).Jika mode balancing adalah
RATE
,max-rate
ditetapkan ke80
RPS, dan penskala kapasitas adalah0.0
, kapasitas yang tersedia adalah nol (0
).
Kebijakan load balancing layanan
Kebijakan load balancing layanan (serviceLbPolicy
) adalah resource yang terkait
dengan backend
service load balancer. Dengan fitur ini, Anda dapat menyesuaikan
parameter yang memengaruhi cara traffic didistribusikan dalam backend
yang terkait dengan layanan backend:
- Sesuaikan algoritma load balancing yang digunakan untuk menentukan cara traffic didistribusikan di antara region atau zona.
- Aktifkan pengurasan kapasitas otomatis sehingga load balancer dapat menguras traffic dengan cepat dari backend yang tidak sehat.
Selain itu, Anda dapat menetapkan backend tertentu sebagai backend pilihan. Backend ini harus digunakan hingga kapasitasnya (yaitu, kapasitas target yang ditentukan oleh mode penyeimbangan backend) sebelum permintaan dikirim ke backend lainnya.
Untuk mempelajari lebih lanjut, lihat Pengoptimalan load balancing lanjutan dengan kebijakan load balancing layanan.
Kebijakan lokalitas load balancing
Untuk layanan backend, distribusi traffic didasarkan pada mode load balancing dan
kebijakan lokalitas load balancing. Mode penyeimbangan menentukan fraksi
traffic yang harus dikirim ke setiap backend (grup instance atau NEG). Kebijakan lokalitas load balancing kemudian (LocalityLbPolicy
) menentukan cara traffic didistribusikan di seluruh instance atau endpoint dalam setiap zona. Untuk grup instance terkelola regional, kebijakan lokalitas berlaku untuk setiap zona konstituen.
Kebijakan lokalitas load balancing dikonfigurasi per layanan backend. Setelan berikut tersedia:
ROUND_ROBIN
(default): Ini adalah setelan kebijakan lokalitas load balancing default yang memungkinkan load balancer memilih backend yang sehat dalam urutan round robin.WEIGHTED_ROUND_ROBIN
: Load balancer menggunakan metrik kustom yang ditentukan pengguna untuk memilih instance atau endpoint yang optimal dalam backend untuk melayani permintaan.LEAST_REQUEST
: AlgoritmaO(1)
yang load balancernya memilih dua host sehat secara acak dan memilih host yang memiliki lebih sedikit permintaan aktif.RING_HASH
: Algoritma ini menerapkan hashing yang konsisten ke backend. Algoritma memiliki properti bahwa penambahan atau penghapusan host dari satu set host N hanya memengaruhi 1/N dari permintaan.RANDOM
: Load balancer memilih host sehat secara acak.ORIGINAL_DESTINATION
: Load balancer memilih backend berdasarkan metadata koneksi klien. Koneksi dibuka ke alamat IP tujuan asli yang ditentukan dalam permintaan klien yang masuk, sebelum permintaan dialihkan ke load balancer.ORIGINAL_DESTINATION
tidak didukung untuk Load Balancer Aplikasi eksternal global dan regional.MAGLEV
: Menerapkan hashing yang konsisten ke backend dan dapat digunakan sebagai pengganti kebijakanRING_HASH
. Maglev tidak sestabilRING_HASH
tetapi memiliki waktu pembuatan pencarian tabel dan waktu pemilihan host yang lebih cepat. Untuk mengetahui informasi selengkapnya tentang Maglev, lihat whitepaper Maglev.WEIGHTED_MAGLEV
: Menerapkan load balancing berbobot per instance menggunakan bobot yang dilaporkan oleh health check. Jika kebijakan ini digunakan, layanan backend harus mengonfigurasi health check berbasis HTTP non-lama, dan balasan health check diharapkan berisi kolom header respons HTTP non-standar,X-Load-Balancing-Endpoint-Weight
, untuk menentukan bobot per instance. Keputusan penyeimbangan beban dibuat berdasarkan bobot per instance yang dilaporkan dalam respons health check terakhir yang diproses, selama setiap instance melaporkan bobot yang valid atau melaporkanUNAVAILABLE_WEIGHT
. Jika tidak, load balancing akan tetap berbobot sama.WEIGHTED_MAGLEV
hanya didukung untuk Load Balancer Jaringan passthrough eksternal. Untuk contohnya, lihat Menyiapkan load balancing berbobot untuk Load Balancer Jaringan passthrough eksternal.
Mengonfigurasi kebijakan lokalitas load balancing hanya didukung pada layanan backend yang digunakan dengan load balancer berikut:
- Load Balancer Aplikasi eksternal global
- Load Balancer Aplikasi eksternal regional
- Load Balancer Aplikasi internal lintas region
- Load Balancer Aplikasi internal regional
- Load Balancer Jaringan passthrough eksternal
Perhatikan bahwa nilai default efektif kebijakan lokalitas load balancing (localityLbPolicy
) berubah sesuai dengan setelan afinitas sesi Anda. Jika afinitas sesi tidak dikonfigurasi—yaitu, jika afinitas sesi tetap pada nilai default NONE
—maka nilai default untuk localityLbPolicy
adalah ROUND_ROBIN
. Jika
afinitas sesi ditetapkan ke nilai selain NONE
, maka
nilai default untuk localityLbPolicy
adalah MAGLEV
.
Untuk mengonfigurasi kebijakan lokalitas load balancing, Anda dapat menggunakan
konsolGoogle Cloud , gcloud
(--locality-lb-policy
)
atau API
(localityLbPolicy
).
Cloud Service Mesh dan distribusi traffic
Cloud Service Mesh juga menggunakan resource layanan backend. Secara khusus,
Cloud Service Mesh menggunakan layanan backend yang skema load balancing-nya adalah
INTERNAL_SELF_MANAGED
. Untuk layanan backend internal yang dikelola sendiri, distribusi traffic didasarkan pada kombinasi mode load balancing dan kebijakan load balancing. Layanan backend mengarahkan traffic ke backend
sesuai dengan mode load balancing backend. Kemudian, Cloud Service Mesh mendistribusikan
traffic sesuai dengan kebijakan load balancing.
Layanan backend yang dikelola sendiri secara internal mendukung mode penyeimbangan berikut:
UTILIZATION
, jika semua backend adalah grup instanceRATE
, jika semua backend adalah grup instance atau NEG zona
Jika memilih mode penyeimbangan RATE
, Anda harus menentukan laju maksimum, laju maksimum per instance, atau laju maksimum per endpoint.
Untuk mengetahui informasi selengkapnya tentang Cloud Service Mesh, lihat Konsep Cloud Service Mesh.
Sub-setelan backend
Subsetting backend adalah fitur opsional yang meningkatkan performa dan skalabilitas dengan menetapkan subset backend ke setiap instance proxy.
Subkumpulan backend didukung untuk berikut ini:
- Load Balancer Aplikasi internal regional
- Load Balancer Jaringan passthrough internal
Subkumpulan backend untuk Load Balancer Aplikasi internal regional
Load Balancer Aplikasi internal lintas region tidak mendukung subset backend.Untuk Load Balancer Aplikasi internal regional, subset backend secara otomatis menetapkan hanya subset backend dalam layanan backend regional ke setiap instance proxy. Secara default, setiap instance proxy membuka koneksi ke semua backend dalam layanan backend. Jika jumlah instance proxy dan backend besar, membuka koneksi ke semua backend dapat menyebabkan masalah performa.
Dengan mengaktifkan subsetting, setiap proxy hanya membuka koneksi ke subset backend, sehingga mengurangi jumlah koneksi yang tetap terbuka ke setiap backend. Mengurangi jumlah koneksi yang terbuka secara bersamaan ke setiap backend dapat meningkatkan performa untuk backend dan proxy.
Diagram berikut menunjukkan load balancer dengan dua proxy. Tanpa subsetting backend, traffic dari kedua proxy didistribusikan ke semua backend di layanan backend 1. Jika subset backend diaktifkan, traffic dari setiap proxy akan didistribusikan ke subset backend. Traffic dari proxy 1 didistribusikan ke backend 1 dan 2, dan traffic dari proxy 2 didistribusikan ke backend 3 dan 4.
Selain itu, Anda dapat menyaring traffic load balancing ke backend dengan menetapkan kebijakan
localityLbPolicy
.
Untuk mengetahui informasi selengkapnya, lihat Kebijakan traffic.
Untuk membaca cara menyiapkan subset backend untuk Load Balancer Aplikasi internal, lihat Mengonfigurasi subset backend.
Peringatan terkait subset backend untuk Load Balancer Aplikasi internal
- Meskipun subset backend dirancang untuk memastikan semua instance backend tetap dimanfaatkan dengan baik, hal ini dapat menimbulkan bias dalam jumlah traffic yang diterima setiap backend. Menetapkan
localityLbPolicy
keLEAST_REQUEST
direkomendasikan untuk layanan backend yang sensitif terhadap keseimbangan beban backend. - Mengaktifkan atau menonaktifkan subsetting akan menghentikan koneksi yang ada.
- Subsetelan backend mengharuskan afinitas sesi adalah
NONE
(hash 5 tuple). Opsi afinitas sesi lainnya hanya dapat digunakan jika subset backend dinonaktifkan. Nilai default flag--subsetting-policy
dan--session-affinity
adalahNONE
, dan hanya salah satu flag yang dapat disetel ke nilai yang berbeda dalam satu waktu.
Subset backend untuk Load Balancer Jaringan passthrough internal
Subsetelan backend untuk Load Balancer Jaringan passthrough internal memungkinkan Anda menskalakan Load Balancer Jaringan passthrough internal untuk mendukung jumlah instance VM backend yang lebih besar per layanan backend internal.
Untuk mengetahui informasi tentang pengaruh pembuatan subset terhadap batas ini, lihat bagian "Layanan backend" di Kuota dan batas resource load balancing.
Secara default, pembuatan subset dinonaktifkan, yang membatasi layanan backend untuk mendistribusikan ke hingga 250 instance atau endpoint backend. Jika layanan backend Anda perlu mendukung lebih dari 250 backend, Anda dapat mengaktifkan subsetting. Jika subsetting diaktifkan, subset instance backend akan dipilih untuk setiap koneksi klien.
Diagram berikut menunjukkan model yang diperkecil dari perbedaan antara kedua mode operasi ini.
Tanpa subsetting, set lengkap backend yang sehat akan lebih baik dimanfaatkan, dan koneksi klien baru didistribusikan di antara semua backend yang sehat sesuai dengan distribusi traffic. Subset menerapkan batasan load balancing, tetapi memungkinkan load balancer mendukung lebih dari 250 backend.
Untuk mengetahui petunjuk konfigurasi, lihat Subsetting.
Peringatan terkait subset backend untuk Load Balancer Jaringan passthrough internal
- Jika subset diaktifkan, tidak semua backend akan menerima traffic dari pengirim tertentu meskipun jumlah backend kecil.
- Untuk mengetahui jumlah maksimum instance backend saat subset diaktifkan, lihat halaman kuota .
- Hanya afinitas sesi 5-tuple yang didukung dengan subset.
- Duplikasi Paket tidak didukung dengan subsetting.
- Mengaktifkan atau menonaktifkan subsetting akan menghentikan koneksi yang ada.
- Jika klien lokal perlu mengakses Load Balancer Jaringan passthrough internal, subsetting dapat secara signifikan mengurangi jumlah backend yang menerima koneksi dari klien lokal Anda. Hal ini karena region tunnel Cloud VPN atau lampiran VLAN Cloud Interconnect menentukan subset backend load balancer. Semua endpoint Cloud VPN dan Cloud Interconnect di region tertentu menggunakan subset yang sama. Subkumpulan yang berbeda digunakan di berbagai wilayah.
Harga sub-setelan backend
Penggunaan subsetting backend tidak dikenai biaya. Untuk mengetahui informasi selengkapnya, lihat Semua harga jaringan.
Afinitas sesi
Afinitas sesi memungkinkan Anda mengontrol cara load balancer memilih backend untuk koneksi baru secara terprediksi selama jumlah backend yang sehat tetap konstan. Hal ini berguna untuk aplikasi yang memerlukan beberapa permintaan dari pengguna tertentu untuk diarahkan ke backend atau endpoint yang sama. Aplikasi tersebut biasanya mencakup server stateful yang digunakan oleh penayangan iklan, game, atau layanan dengan caching internal yang berat.
Penyeimbang bebanGoogle Cloud menyediakan afinitas sesi berdasarkan upaya terbaik. Faktor-faktor seperti perubahan status pemeriksaan kondisi backend, penambahan atau penghapusan backend, perubahan bobot backend (termasuk mengaktifkan atau menonaktifkan penyeimbangan berbobot), atau perubahan kepenuhan backend, sebagaimana diukur oleh mode penyeimbangan, dapat merusak afinitas sesi.
Penyeimbangan beban dengan afinitas sesi berfungsi dengan baik jika ada distribusi koneksi unik yang cukup besar. Cukup besar berarti setidaknya beberapa kali jumlah backend. Menguji load balancer dengan sejumlah kecil koneksi tidak akan menghasilkan representasi yang akurat dari distribusi koneksi klien di antara backend.
Secara default, semua load balancer Google Cloud memilih backend menggunakan
hash lima tuple (--session-affinity=NONE
), sebagai berikut:
- Alamat IP sumber paket
- Port sumber paket (jika ada di header paket)
- Alamat IP tujuan paket
- Port tujuan paket (jika ada di header paket)
- Protokol paket
Untuk mempelajari lebih lanjut afinitas sesi untuk Network Load Balancer passthrough, lihat dokumen berikut:
- Distribusi traffic untuk Load Balancer Jaringan passthrough eksternal
- Distribusi traffic untuk Load Balancer Jaringan passthrough internal
Untuk load balancer berbasis proxy, selama jumlah instance atau endpoint backend yang responsif tetap konstan, dan selama instance atau endpoint backend yang dipilih sebelumnya tidak mencapai kapasitas maksimum, permintaan atau koneksi berikutnya akan menuju ke VM atau endpoint backend yang sama. Kapasitas target mode balancing menentukan kapan backend mencapai kapasitas.
Tabel berikut menunjukkan opsi afinitas sesi yang didukung untuk setiap produk:
Produk | Opsi afinitas sesi |
---|---|
Perhatikan juga:
|
|
Load Balancer Aplikasi Klasik |
|
Perhatikan juga:
|
|
Load Balancer Jaringan passthrough internal |
Untuk mengetahui informasi spesifik tentang Load Balancer Jaringan passthrough internal dan afinitas sesi, lihat Distribusi traffic untuk Load Balancer Jaringan passthrough internal. |
Load Balancer Jaringan passthrough eksternal* |
Untuk mengetahui informasi spesifik tentang Load Balancer Jaringan passthrough eksternal dan afinitas sesi, lihat Distribusi traffic untuk Load Balancer Jaringan passthrough eksternal. |
|
|
Cloud Service Mesh |
|
* Tabel ini mendokumentasikan afinitas sesi yang didukung oleh Load Balancer Jaringan passthrough eksternal berbasis layanan backend.
Load Balancer Jaringan passthrough eksternal berbasis kumpulan target
tidak menggunakan layanan backend. Sebagai gantinya, Anda menetapkan afinitas sesi untuk
Load Balancer Jaringan passthrough eksternal melalui parameter sessionAffinity
di
Kumpulan Target.
Perhatikan hal-hal berikut saat mengonfigurasi afinitas sesi:
Jangan mengandalkan afinitas sesi untuk tujuan autentikasi atau keamanan. Afinitas sesi, kecuali afinitas sesi berbasis cookie stateful, dirancang untuk terputus setiap kali jumlah backend yang melayani dan sehat berubah. Untuk mengetahui detail selengkapnya, lihat Kehilangan afinitas sesi.
Nilai default flag
--session-affinity
dan--subsetting-policy
adalahNONE
, dan hanya salah satu flag yang dapat disetel ke nilai yang berbeda dalam satu waktu.
Jenis afinitas sesi
Bagian berikut membahas berbagai jenis afinitas sesi:
IP klien, tanpa afinitas tujuan
Afinitas sesi IP klien, tanpa tujuan (CLIENT_IP_NO_DESTINATION
) adalah hash satu tuple berdasarkan hanya alamat IP sumber setiap paket yang diterima. Afinitas sesi ini hanya tersedia untuk Load Balancer Jaringan passthrough internal.
Opsi ini dapat berguna dalam situasi saat Anda memerlukan VM backend yang sama untuk memproses semua paket dari klien, hanya berdasarkan alamat IP sumber paket, tanpa memperhatikan alamat IP tujuan paket. Situasi ini biasanya terjadi saat Load Balancer Jaringan passthrough internal menjadi next hop untuk rute statis. Untuk mengetahui detailnya, lihat Afinitas sesi dan Load Balancer Jaringan passthrough internal next hop.
Afinitas IP klien
Afinitas sesi IP Klien (CLIENT_IP
) adalah hash dua tuple yang dibuat dari
alamat IP sumber dan tujuan paket. Afinitas sesi IP klien tersedia untuk semua load balancer yang menggunakan layanan backend. Google Cloud
Load Balancer Jaringan passthrough eksternal memanggil opsi afinitas sesi ini IP Klien, IP Tujuan.
Saat Anda menggunakan afinitas IP klien, perhatikan hal-hal berikut:
Alamat IP tujuan paket hanya sama dengan alamat IP aturan penerusan load balancer jika paket dikirim langsung ke load balancer.
Paket yang dirutekan ke Load Balancer Jaringan passthrough internal next hop oleh rute statis memiliki alamat IP tujuan yang tidak cocok dengan alamat IP aturan penerusan load balancer. Untuk mengetahui detail penting, lihat Afinitas sesi dan next hop Load Balancer Jaringan passthrough internal.
Alamat IP sumber paket mungkin tidak cocok dengan alamat IP yang terkait dengan klien asli jika paket diproses oleh sistem NAT atau proxy perantara sebelum dikirimkan ke load balancer Google Cloud . Dalam situasi ketika banyak klien berbagi alamat IP sumber efektif yang sama, beberapa VM backend mungkin menerima lebih banyak koneksi atau permintaan daripada yang lain.
Afinitas berbasis cookie
Saat Anda menggunakan afinitas berbasis cookie yang dibuat, load balancer akan menyertakan cookie HTTP di header Set-Cookie
sebagai respons terhadap permintaan HTTP awal.
Nama cookie yang dihasilkan bervariasi, bergantung pada jenis load balancer. Produk berikut mendukung cookie yang dibuat:
Produk | Nama cookie |
---|---|
Load Balancer Aplikasi eksternal global | GCLB |
Load Balancer Aplikasi Klasik | GCLB |
Load Balancer Aplikasi eksternal regional | GCILB |
Load Balancer Aplikasi internal lintas region | GCILB |
Load Balancer Aplikasi internal regional | GCILB |
Mesh Layanan Cloud | GCILB |
Atribut jalur cookie yang dihasilkan selalu berupa garis miring (/
), sehingga berlaku untuk semua
layanan backend di peta URL yang sama, asalkan layanan backend lainnya juga menggunakan afinitas cookie yang dihasilkan.
Anda dapat mengonfigurasi nilai time to live (TTL) cookie antara 0
dan 1,209,600
detik (inklusif) menggunakan parameter layanan backend affinityCookieTtlSec
.
Jika affinityCookieTtlSec
tidak ditentukan, nilai TTL default adalah 0
.
Saat klien menyertakan cookie afinitas sesi yang dihasilkan dalam header permintaan Cookie
permintaan HTTP, load balancer akan mengarahkan permintaan tersebut ke instance atau endpoint backend yang sama, selama cookie afinitas sesi tetap valid. Hal ini dilakukan dengan memetakan nilai cookie ke indeks yang mereferensikan instance atau endpoint backend tertentu, dan dengan memastikan bahwa persyaratan afinitas sesi cookie yang dihasilkan terpenuhi.
Untuk menggunakan afinitas cookie yang dihasilkan, konfigurasi mode penyeimbangan dan setelan localityLbPolicy
berikut:
- Untuk grup instance backend, gunakan mode load balancing
RATE
. - Untuk
localityLbPolicy
layanan backend, gunakanRING_HASH
atauMAGLEV
. Jika Anda tidak menetapkanlocalityLbPolicy
secara eksplisit, load balancer akan menggunakanMAGLEV
sebagai default tersirat.
Untuk mengetahui informasi selengkapnya, lihat kehilangan afinitas sesi.
Afinitas kolom header
Dengan afinitas kolom header, permintaan dirutekan ke backend berdasarkan
nilai header HTTP di kolom
consistentHash.httpHeaderName
layanan backend. Untuk mendistribusikan permintaan di semua backend yang tersedia, setiap klien harus menggunakan nilai header HTTP yang berbeda.
Load balancer berikut menggunakan afinitas kolom header:
- Mesh Layanan Cloud
- Load Balancer Aplikasi internal lintas region
- Load Balancer Aplikasi eksternal global
- Load Balancer Aplikasi eksternal regional
- Load Balancer Aplikasi internal regional
Afinitas kolom header didukung jika kondisi berikut terpenuhi:
- Kebijakan lokalitas load balancing adalah RING_HASH atau MAGLEV.
consistentHash
layanan backend menentukan nama header HTTP (httpHeaderName
).
Untuk mempelajari produk yang mendukung afinitas kolom header, lihat Tabel: Setelan afinitas sesi yang didukung.
Afinitas cookie HTTP
Saat Anda menggunakan afinitas berbasis cookie HTTP, load balancer akan menyertakan cookie HTTP di header Set-Cookie
sebagai respons terhadap permintaan HTTP awal. Anda
menentukan nama, jalur, dan time to live (TTL) untuk cookie.
Produk berikut mendukung afinitas berbasis cookie HTTP:
- Semua Load Balancer Aplikasi
- Mesh Layanan Cloud
Anda dapat mengonfigurasi nilai TTL cookie menggunakan detik, pecahan detik (sebagai nanodetik), atau detik dan pecahan detik (sebagai nanodetik) menggunakan parameter layanan backend dan nilai yang valid berikut:
consistentHash.httpCookie.ttl.seconds
dapat ditetapkan ke nilai antara0
dan315576000000
(inklusif).consistentHash.httpCookie.ttl.nanos
dapat ditetapkan ke nilai antara0
dan999999999
(inklusif). Karena satuannya adalah nanodetik,999999999
berarti.999999999
detik.
Jika consistentHash.httpCookie.ttl.seconds
dan consistentHash.httpCookie.ttl.nanos
tidak ditentukan, nilai parameter layanan backend affinityCookieTtlSec
akan
digunakan. Jika affinityCookieTtlSec
tidak ditentukan, nilai TTL default adalah 0
.
Saat klien menyertakan cookie afinitas sesi HTTP di header permintaan Cookie
dari permintaan HTTP, load balancer akan mengarahkan permintaan tersebut
ke instance atau endpoint backend yang sama, selama cookie afinitas sesi
tetap valid. Hal ini dilakukan dengan memetakan nilai cookie ke indeks yang mereferensikan endpoint atau instance backend tertentu, dan dengan memastikan bahwa persyaratan afinitas sesi cookie yang dihasilkan terpenuhi.
Untuk menggunakan afinitas cookie HTTP, konfigurasikan mode penyeimbangan
dan setelan localityLbPolicy
berikut:
- Untuk grup instance backend, gunakan mode load balancing
RATE
. - Untuk
localityLbPolicy
layanan backend, gunakanRING_HASH
atauMAGLEV
. Jika Anda tidak menetapkanlocalityLbPolicy
secara eksplisit, load balancer akan menggunakanMAGLEV
sebagai default tersirat.
Untuk mengetahui informasi selengkapnya, lihat kehilangan afinitas sesi.
Afinitas sesi berbasis cookie stateful
Saat Anda menggunakan afinitas berbasis cookie stateful, load balancer akan menyertakan cookie HTTP di header Set-Cookie
sebagai respons terhadap permintaan HTTP awal.
Anda menentukan nama, jalur, dan time to live (TTL) untuk cookie.
Semua Load Balancer Aplikasi, kecuali Load Balancer Aplikasi klasik, mendukung afinitas berbasis cookie stateful.
Anda dapat mengonfigurasi nilai TTL cookie menggunakan detik, pecahan detik
(sebagai nanodetik), atau detik plus pecahan detik (sebagai nanodetik).
Durasi yang diwakili oleh strongSessionAffinityCookie.ttl
tidak boleh ditetapkan ke nilai yang mewakili lebih dari dua minggu (1.209.600 detik).
Nilai cookie mengidentifikasi instance atau endpoint backend yang dipilih dengan
mengenkode instance atau endpoint yang dipilih dalam nilai itu sendiri. Selama cookie valid, jika klien menyertakan cookie afinitas sesi di header permintaan Cookie
dari permintaan HTTP berikutnya, load balancer akan mengarahkan permintaan tersebut ke instance atau endpoint backend yang dipilih.
Tidak seperti metode afinitas sesi lainnya:
Afinitas berbasis cookie stateful tidak memiliki persyaratan khusus untuk mode penyeimbangan atau untuk kebijakan lokalitas load balancing (
localityLbPolicy
).Afinitas berbasis cookie stateful tidak terpengaruh saat penskalaan otomatis menambahkan instance baru ke grup instance terkelola.
Afinitas berbasis cookie stateful tidak terpengaruh saat penskalaan otomatis menghapus instance dari grup instance terkelola kecuali instance yang dipilih dihapus.
Afinitas berbasis cookie stateful tidak terpengaruh saat autohealing menghapus instance dari grup instance terkelola kecuali instance yang dipilih dihapus.
Untuk mengetahui informasi selengkapnya, lihat kehilangan afinitas sesi.
Arti TTL nol untuk afinitas berbasis cookie
Semua afinitas sesi berbasis cookie, seperti afinitas cookie yang dihasilkan, afinitas cookie HTTP, dan afinitas berbasis cookie stateful, memiliki atribut TTL.
TTL nol detik berarti load balancer tidak menetapkan atribut Expires
ke cookie. Dalam hal ini, klien memperlakukan cookie sebagai cookie sesi. Definisi sesi bervariasi bergantung pada klien:
Beberapa klien, seperti browser web, menyimpan cookie selama seluruh sesi penjelajahan. Artinya, cookie tetap ada di beberapa permintaan hingga aplikasi ditutup.
Klien lain memperlakukan sesi sebagai satu permintaan HTTP, dan langsung menghapus cookie setelahnya.
Kehilangan afinitas sesi
Semua opsi afinitas sesi untuk Load Balancer Aplikasi dan Load Balancer Jaringan Proxy memerlukan hal berikut:
Endpoint atau instance backend yang dipilih harus tetap dikonfigurasi sebagai backend. Afinitas sesi dapat terganggu saat salah satu peristiwa berikut terjadi:
Anda menghapus instance yang dipilih dari grup instancenya.
Penskalaan otomatis atau autohealing grup instance terkelola menghapus instance yang dipilih dari grup instance terkelola.
Anda menghapus endpoint yang dipilih dari NEG-nya.
Anda menghapus grup instance atau NEG yang berisi instance atau endpoint yang dipilih dari layanan backend.
Endpoint atau instance backend yang dipilih harus tetap responsif. Afinitas sesi dapat terganggu saat instance atau endpoint yang dipilih gagal dalam pemeriksaan kondisi.
Untuk Load Balancer Aplikasi eksternal Global, Load Balancer Aplikasi Klasik, Load Balancer Jaringan proxy eksternal Global, dan Load Balancer Jaringan proxy Klasik, afinitas sesi dapat terganggu jika Google Front End (GFE) lapisan pertama yang berbeda digunakan untuk permintaan atau koneksi berikutnya setelah perubahan jalur perutean. GFE lapisan pertama yang berbeda mungkin dipilih jika jalur perutean dari klien di internet ke Google berubah di antara permintaan atau koneksi.
Kecuali afinitas sesi berbasis cookie stateful, semua opsi afinitas sesi untuk Load Balancer Aplikasi dan Load Balancer Jaringan Proxy memiliki persyaratan tambahan berikut:
Grup instance atau NEG yang berisi instance atau endpoint yang dipilih tidak boleh penuh seperti yang ditentukan oleh kapasitas targetnya. (Untuk grup instance terkelola regional, komponen zonal grup instance yang berisi instance yang dipilih tidak boleh penuh.) Afinitas sesi dapat terganggu saat grup instance atau NEG penuh dan grup instance atau NEG lainnya tidak. Karena kepenuhan dapat berubah dengan cara yang tidak dapat diprediksi saat menggunakan mode penyeimbangan
UTILIZATION
, Anda harus menggunakan mode penyeimbanganRATE
atauCONNECTION
untuk meminimalkan situasi saat afinitas sesi dapat terganggu.Jumlah total instance atau endpoint backend yang dikonfigurasi harus tetap konstan. Jika setidaknya salah satu peristiwa berikut terjadi, jumlah instance atau endpoint backend yang dikonfigurasi akan berubah, dan afinitas sesi dapat terganggu:
Menambahkan instance atau endpoint baru:
- Anda menambahkan instance ke grup instance yang ada di layanan backend.
- Penskalaan otomatis grup instance terkelola menambahkan instance ke grup instance terkelola di layanan backend.
- Anda menambahkan endpoint ke NEG yang ada di layanan backend.
- Anda menambahkan grup instance atau NEG yang tidak kosong ke layanan backend.
Menghapus instance atau endpoint apa pun, bukan hanya instance atau endpoint yang dipilih:
- Anda menghapus instance apa pun dari backend grup instance.
- Penskalaan otomatis atau autohealing grup instance terkelola menghapus instance apa pun dari backend grup instance terkelola.
- Anda menghapus endpoint dari backend NEG.
- Anda menghapus grup instance backend atau NEG yang ada dan tidak kosong dari layanan backend.
Jumlah total instance atau endpoint backend yang responsif harus tetap konstan. Jika setidaknya salah satu peristiwa berikut terjadi, jumlah instance atau endpoint backend yang sehat akan berubah, dan afinitas sesi dapat terganggu:
- Setiap instance atau endpoint lulus health check-nya, bertransisi dari tidak responsif menjadi responsif.
- Instance atau endpoint apa pun gagal dalam health check-nya, yang bertransisi dari responsif menjadi tidak responsif atau waktu tunggu habis.
Waktu tunggu layanan backend
Sebagian besar load balancer memiliki waktu tunggu layanan backend. Google Cloud Nilai default-nya adalah 30 detik. Rentang lengkap nilai waktu tunggu yang diizinkan adalah 1 - 2.147.483.647 detik.
Untuk Load Balancer Aplikasi eksternal dan Load Balancer Aplikasi internal yang menggunakan protokol HTTP, HTTPS, atau HTTP/2, waktu tunggu layanan backend adalah waktu tunggu permintaan dan respons untuk traffic HTTP(S).
Untuk mengetahui detail selengkapnya tentang waktu tunggu layanan backend untuk setiap load balancer, lihat artikel berikut:
- Untuk Load Balancer Aplikasi eksternal global dan Load Balancer Aplikasi eksternal regional, lihat Waktu tunggu dan percobaan ulang.
- Untuk Load Balancer Aplikasi internal, lihat Waktu tunggu dan percobaan ulang.
Untuk Load Balancer Jaringan proxy eksternal, waktu tunggu adalah waktu tunggu tidak ada aktivitas. Untuk mengizinkan lebih banyak atau lebih sedikit waktu sebelum koneksi dihapus, ubah nilai waktu tunggu. Waktu tunggu tidak ada aktivitas ini juga digunakan untuk koneksi WebSocket.
Untuk Load Balancer Jaringan passthrough internal dan Load Balancer Jaringan passthrough eksternal, Anda dapat menetapkan nilai waktu tunggu layanan backend menggunakan
gcloud
atau API, tetapi nilai tersebut diabaikan. Waktu tunggu layanan backend tidak memiliki arti untuk load balancer pass-through ini.
- Untuk Cloud Service Mesh, kolom waktu tunggu layanan backend (ditentukan menggunakan
timeoutSec
) tidak didukung dengan layanan gRPC tanpa proxy. Untuk layanan tersebut, konfigurasi waktu tunggu layanan backend menggunakan kolommaxStreamDuration
. Hal ini karena gRPC tidak mendukung semantiktimeoutSec
yang menentukan jumlah waktu untuk menunggu backend menampilkan respons lengkap setelah permintaan dikirim. Waktu tunggu gRPC menentukan jumlah waktu untuk menunggu dari awal streaming hingga respons telah diproses sepenuhnya, termasuk semua percobaan ulang.
Health check
Setiap layanan backend yang backend-nya berupa grup instance atau NEG zonasi harus memiliki health check terkait. Layanan backend yang menggunakan NEG tanpa server atau NEG internet global sebagai backend tidak boleh merujuk ke health check.
Saat membuat load balancer menggunakan konsol Google Cloud , Anda dapat membuat health check, jika diperlukan, saat membuat load balancer, atau Anda dapat mereferensikan health check yang ada.
Saat membuat layanan backend menggunakan backend grup instance atau NEG zona menggunakan Google Cloud CLI atau API, Anda harus mereferensikan health check yang ada. Lihat panduan load balancer di Ringkasan Health Check untuk mengetahui detail tentang jenis dan cakupan health check yang diperlukan.
Untuk mengetahui informasi selengkapnya, baca dokumen berikut:
- Ringkasan health check
- Membuat health check
- Halaman pemeriksaan kesehatan
gcloud
- Halaman pemeriksaan kondisi REST API
Fitur tambahan diaktifkan di resource layanan backend
Fitur opsional berikut didukung oleh beberapa layanan backend.
Cloud CDN
Cloud CDN menggunakan jaringan edge global Google untuk menyajikan konten lebih dekat ke pengguna, sehingga mempercepat situs dan aplikasi Anda. Cloud CDN diaktifkan pada layanan backend yang digunakan oleh Load Balancer Aplikasi eksternal global. Load balancer menyediakan port dan alamat IP frontend yang menerima permintaan, serta backend yang merespons permintaan.
Untuk mengetahui detail selengkapnya, lihat dokumentasi Cloud CDN.
Cloud CDN tidak kompatibel dengan IAP. Keduanya tidak dapat diaktifkan di layanan backend yang sama.
Google Cloud Armor
Jika menggunakan salah satu load balancer berikut, Anda dapat menambahkan perlindungan tambahan ke aplikasi dengan mengaktifkan Google Cloud Armor di layanan backend selama pembuatan load balancer:
- Load Balancer Aplikasi eksternal global
- Load Balancer Aplikasi Klasik
- Load Balancer Jaringan proxy eksternal global
- Load Balancer Jaringan proxy klasik
Jika menggunakan konsol Google Cloud , Anda dapat melakukan salah satu tindakan berikut:
- Pilih kebijakan keamanan Google Cloud Armor yang ada.
- Terima konfigurasi kebijakan keamanan pembatasan frekuensi default Google Cloud Armor dengan nama, jumlah permintaan, interval, kunci, dan parameter pembatasan frekuensi yang dapat disesuaikan. Jika Anda menggunakan Google Cloud Armor dengan layanan proxy upstream, seperti penyedia CDN,
Enforce_on_key
harus ditetapkan sebagai alamat IP XFF. - Pilih untuk menonaktifkan perlindungan Google Cloud Armor dengan memilih Tidak ada.
IAP
Dengan IAP, Anda dapat membuat lapisan otorisasi pusat untuk aplikasi yang diakses oleh HTTPS, sehingga Anda dapat menggunakan model kontrol akses tingkat aplikasi, bukan mengandalkan firewall tingkat jaringan. IAP didukung oleh Load Balancer Aplikasi tertentu.
IAP tidak kompatibel dengan Cloud CDN. Keduanya tidak dapat diaktifkan di layanan backend yang sama.
Fitur pengelolaan traffic lanjutan
Untuk mempelajari fitur pengelolaan traffic lanjutan yang dikonfigurasi di layanan backend dan peta URL yang terkait dengan load balancer, lihat artikel berikut:
- Ringkasan pengelolaan traffic untuk Load Balancer Aplikasi internal
- Ringkasan pengelolaan traffic untuk Load Balancer Aplikasi eksternal global
- Ringkasan pengelolaan traffic untuk Load Balancer Aplikasi eksternal regional
API dan referensi gcloud
Untuk mengetahui informasi selengkapnya tentang properti resource layanan backend, lihat referensi berikut:
- Resource Global backend service API
Resource Regional backend service API
Halaman
gcloud compute backend-services
untuk layanan backend global dan regional
Langkah berikutnya
Untuk dokumentasi terkait dan informasi tentang cara penggunaan layanan backend dalam penyeimbangan beban, tinjau artikel berikut:
- Membuat header kustom
- Membuat Load Balancer Aplikasi eksternal
- Ringkasan Load Balancer Aplikasi Eksternal
- Mengaktifkan pengosongan koneksi
- Enkripsi dalam pengiriman di Google Cloud
Untuk video terkait: