Load Balancer Jaringan passthrough eksternal adalah load balancer Lapisan 4 regional. Load Balancer Jaringan passthrough eksternal mendistribusikan traffic TCP dan UDP ke berbagai instance virtual machine (VM) backend di region yang sama dalam jaringan Virtual Private Cloud (VPC). Load Balancer Jaringan passthrough eksternal dapat menerima traffic dari salah satu hal berikut:
- Klien mana pun di internet
- Google Cloud VM dengan IP eksternal
- Google Cloud VM yang memiliki akses internet melalui Cloud NAT atau NAT berbasis instance
Bergantung pada konfigurasi aturan penerusan, setiap load balancer berbasis target pool mendukung salah satu jenis traffic protokol berikut:
- TCP
- UDP
- TCP dan UDP
Cakupan load balancer bersifat regional, bukan global. Artinya, semua instance backend untuk Load Balancer Jaringan passthrough eksternal harus berada di region yang sama. Anda dapat menempatkan backend di zona mana pun di region.
Load Balancer Jaringan passthrough eksternal mendukung semua port. Anda dapat menggunakan Load Balancer Jaringan passthrough eksternal untuk menyeimbangkan beban traffic TCP atau UDP. Karena load balancer adalah load balancer passthrough, backend Anda menghentikan koneksi TCP yang di-load balance atau paket UDP itu sendiri. Misalnya, Anda dapat menjalankan server web HTTPS di backend dan menggunakan Load Balancer Jaringan passthrough eksternal untuk merutekan permintaan ke server tersebut, sehingga menghentikan TLS di backend itu sendiri.
Jika Anda membangun aplikasi di GKE, sebaiknya gunakan pengontrol Layanan GKE bawaan, yang men-deploy load balancer Google Cloud mewakili pengguna GKE. Arsitektur ini sama dengan arsitektur load balancing mandiri, kecuali siklus prosesnya sepenuhnya otomatis dan dikontrol oleh GKE. Untuk mengetahui detailnya, lihat Mengekspos aplikasi menggunakan layanan.
Arsitektur
Load balancer terdiri dari beberapa komponen konfigurasi. Satu load balancer dapat memiliki hal berikut:
- Satu kumpulan target
- Beberapa aturan penerusan
Load Balancer Jaringan passthrough eksternal selalu memiliki satu kumpulan target. Beberapa aturan penerusan dapat mereferensikan kumpulan target.
Kumpulan target adalah backend untuk load balancer. Backend ini menentukan instance backend yang trafficnya di-load balance. Setiap aturan penerusan adalah frontend untuk load balancer. Perlu diingat bahwa ada batasan jumlah aturan penerusan dan kumpulan target per project.
Load Balancer Jaringan passthrough eksternal menyeimbangkan beban pada sistem Anda berdasarkan data protokol IP yang masuk, seperti alamat, port, dan jenis protokol.
Load Balancer Jaringan passthrough eksternal adalah load balancer pass-through, sehingga backend Anda menerima permintaan klien asli. Load Balancer Jaringan passthrough eksternal tidak melakukan offload atau proxying Transport Layer Security (TLS). Traffic dirutekan langsung ke VM Anda.
Saat membuat aturan penerusan untuk load balancer, Anda akan menerima alamat IP virtual (VIP) efemeral atau mencadangkan VIP yang berasal dari blok jaringan regional.
Kemudian, Anda mengaitkan aturan penerusan tersebut dengan kumpulan target. VIP di-anycast dari titik kehadiran global Google, tetapi backend-nya bersifat regional. Load balancer tidak boleh memiliki backend yang mencakup beberapa region.
Anda dapat menggunakan firewall Google Cloud untuk mengontrol atau memfilter akses ke VM backend.
Load Balancer Jaringan passthrough eksternal memeriksa port sumber dan tujuan, alamat IP,
dan protokol untuk menentukan cara meneruskan paket. Untuk traffic TCP, Anda dapat mengubah perilaku penerusan load balancer dengan mengonfigurasi afinitas sesi. Load Balancer Jaringan passthrough eksternal meneruskan paket ke antarmuka jaringan pertama (nic0
) instance di kumpulan target.
Load balancer mempertahankan alamat IP sumber paket masuk. Alamat IP tujuan untuk paket masuk adalah alamat IP eksternal regional yang terkait dengan aturan penerusan load balancer.
Algoritma distribusi beban
Secara default, untuk mendistribusikan traffic ke instance, nilai
afinitas sesi ditetapkan ke
NONE
. Cloud Load Balancing memilih instance berdasarkan hash IP dan port sumber, IP dan port tujuan, serta protokol. Artinya, koneksi TCP masuk didistribusikan ke seluruh instance, dan setiap koneksi baru dapat masuk ke instance yang berbeda. Semua paket untuk koneksi diarahkan ke instance yang sama hingga koneksi ditutup. Koneksi yang sudah dibuat tidak diperhitungkan dalam proses load balancing.
Terlepas dari setelan afinitas sesi, semua paket untuk koneksi diarahkan ke instance yang dipilih hingga koneksi ditutup. Koneksi yang ada tidak memengaruhi keputusan load balancing untuk koneksi masuk baru. Hal ini dapat menyebabkan ketidakseimbangan di antara backend jika koneksi TCP berjangka panjang sedang digunakan.
Anda dapat memilih setelan afinitas sesi yang berbeda jika memerlukan beberapa koneksi dari klien untuk masuk ke instance yang sama.
Kumpulan target
Resource kumpulan target menentukan grup
instance yang harus menerima traffic masuk dari aturan penerusan. Saat aturan penerusan mengarahkan traffic ke kumpulan target, Cloud Load Balancing memilih instance dari kumpulan target ini berdasarkan hash port dan IP sumber serta port dan IP tujuan. Setiap kumpulan target beroperasi di satu region dan
mendistribusikan traffic ke antarmuka jaringan pertama (nic0
) instance backend. Untuk mengetahui informasi selengkapnya tentang cara traffic didistribusikan ke instance, lihat bagian Algoritma distribusi beban.
Load Balancer Jaringan passthrough eksternal bukan proxy. Respons dari VM backend langsung menuju klien, bukan kembali melalui load balancer. Load balancer mempertahankan alamat IP sumber paket. Alamat IP tujuan untuk paket masuk adalah alamat IP eksternal regional yang terkait dengan aturan penerusan load balancer. Akibatnya:
Instance yang berpartisipasi sebagai VM backend untuk Load Balancer Jaringan passthrough eksternal harus menjalankan lingkungan tamu Linux, lingkungan tamu Windows, atau proses lain yang memberikan kemampuan yang setara.
Lingkungan OS tamu (atau proses yang setara) bertanggung jawab untuk mengonfigurasi rute lokal di setiap VM backend. Rute ini memungkinkan VM menerima paket yang memiliki tujuan yang cocok dengan alamat IP aturan penerusan load balancer.
Pada instance backend yang menerima traffic yang di-load balance, Anda harus mengonfigurasi software untuk mengikat ke alamat IP yang terkait dengan aturan penerusan load balancer (atau ke alamat IP apa pun,
0.0.0.0/0
).
Load Balancer Jaringan passthrough eksternal mendukung penskalakan otomatis Compute Engine, yang memungkinkan pengguna melakukan penskalaan otomatis pada grup instance di kumpulan target berdasarkan pemanfaatan backend. Untuk mengetahui informasi selengkapnya, lihat Menskalakan berdasarkan pemanfaatan CPU.
Jika Anda ingin target pool berisi satu instance VM, sebaiknya gunakan fitur penerusan protokol.
Kumpulan target hanya dapat digunakan dengan aturan penerusan yang menangani traffic TCP dan UDP. Untuk semua protokol lainnya, Anda harus membuat instance target. Anda harus membuat kumpulan target sebelum dapat menggunakannya dengan aturan penerusan. Setiap project dapat memiliki hingga 50 kumpulan target.
Aturan penerusan
Aturan penerusan berfungsi bersama dengan kumpulan target untuk mendukung load balancing. Untuk menggunakan load balancing, Anda harus membuat aturan penerusan yang mengarahkan traffic ke kumpulan target tertentu. Anda tidak dapat melakukan load balancing traffic tanpa aturan penerusan.
Setiap aturan penerusan mencocokkan alamat IP, protokol, dan secara opsional, rentang port tertentu dengan satu kumpulan target. Saat traffic dikirim ke alamat IP eksternal yang ditayangkan oleh aturan penerusan, aturan penerusan akan mengarahkan traffic tersebut ke kumpulan target yang sesuai.
Jika Anda melakukan load balancing paket UDP yang kemungkinan akan terfragmentasi sebelum tiba di jaringan VPC Google Cloud , lihat Load balancing dan paket UDP terfragmentasi.
Load Balancer Jaringan passthrough eksternal berbasis kumpulan target mendukung protokol berikut
untuk setiap aturan penerusan: TCP
atau UDP
. Jika Anda ingin load balancer meneruskan traffic protokol IP semua, Anda harus menggunakan Load Balancer Jaringan passthrough eksternal berbasis layanan Backend.
Beberapa aturan penerusan
Anda dapat mengonfigurasi beberapa aturan penerusan eksternal regional untuk Load Balancer Jaringan passthrough eksternal yang sama. Setiap aturan penerusan dapat memiliki alamat IP eksternal regional yang berbeda, atau beberapa aturan penerusan dapat memiliki alamat IP eksternal regional yang sama.
Mengonfigurasi beberapa aturan penerusan eksternal regional dapat berguna untuk kasus penggunaan berikut:
- Anda perlu mengonfigurasi lebih dari satu alamat IP eksternal untuk target pool yang sama.
- Anda perlu mengonfigurasi rentang port atau protokol yang berbeda menggunakan alamat IP eksternal yang sama untuk kumpulan target yang sama.
Saat menggunakan beberapa aturan penerusan, pastikan Anda mengonfigurasi software yang berjalan di VM backend sehingga software tersebut terikat ke semua alamat IP yang diperlukan. Hal ini diperlukan karena alamat IP tujuan untuk paket yang dikirim melalui load balancer adalah alamat IP eksternal regional yang terkait dengan aturan penerusan eksternal regional masing-masing.
Health check
Health check memastikan bahwa Compute Engine meneruskan koneksi baru hanya ke instance yang aktif dan siap menerimanya. Compute Engine mengirim permintaan health check ke setiap instance pada frekuensi yang ditentukan. Setelah instance melampaui jumlah kegagalan health check yang diizinkan, instance tersebut tidak lagi dianggap sebagai instance yang memenuhi syarat untuk menerima traffic baru.
Untuk memungkinkan penonaktifan dan penutupan koneksi TCP yang lancar, koneksi yang ada tidak dihentikan secara aktif. Namun, koneksi yang ada ke backend yang tidak sehat tidak dijamin akan tetap layak untuk jangka waktu yang lama. Jika memungkinkan, Anda harus memulai proses penonaktifan yang benar sesegera mungkin untuk backend yang tidak sehat.
Pemeriksa kondisi terus membuat kueri instance yang tidak responsif, dan menampilkan instance ke kumpulan saat sejumlah pemeriksaan berhasil yang ditentukan terjadi. Jika
semua instance ditandai sebagai UNHEALTHY
, load balancer akan mengarahkan traffic baru
ke semua instance yang ada.
Load Balancer Jaringan passthrough eksternal mengandalkan health check HTTP lama untuk menentukan kondisi instance. Meskipun layanan Anda tidak menggunakan HTTP, Anda harus menjalankan server web dasar di setiap instance yang dapat dikueri oleh sistem health check.
Pemeriksaan kesehatan HTTPS lama tidak didukung untuk Load Balancer Jaringan passthrough eksternal dan tidak dapat digunakan dengan sebagian besar jenis load balancer lainnya.
Aturan firewall
Health check untuk Load Balancer Jaringan passthrough eksternal dikirim dari rentang IP ini. Anda harus membuat aturan firewall yang mengizinkan masuk untuk mengizinkan traffic dari rentang tersebut.
Load Balancer Jaringan passthrough eksternal adalah load balancer passthrough, yang berarti aturan firewall Anda harus mengizinkan traffic dari alamat IP sumber klien. Jika layanan Anda terbuka untuk internet, cara termudah adalah mengizinkan traffic dari semua rentang IP. Jika ingin membatasi akses sehingga hanya alamat IP sumber tertentu yang diizinkan, Anda dapat menyiapkan aturan firewall untuk menerapkan pembatasan tersebut, tetapi Anda harus mengizinkan akses dari rentang IP health check.
Untuk contoh aturan firewall dan contoh konfigurasi, lihat Aturan firewall untuk Load Balancer Jaringan passthrough eksternal.
Alamat IP untuk paket permintaan dan respons
Saat VM backend menerima paket yang di-load balance dari klien, sumber dan tujuan paket adalah sebagai berikut:
- Sumber: alamat IP eksternal yang terkait dengan VM Google Cloud atau alamat IP yang dapat dirutekan ke internet dari sistem yang terhubung ke load balancer.
- Tujuan: alamat IP aturan penerusan load balancer.
Karena load balancer adalah load balancer pass-through (bukan proxy), paket tiba dengan alamat IP tujuan aturan penerusan load balancer. Konfigurasi software yang berjalan di VM backend untuk melakukan hal berikut:
- Memproses (mengikat ke) alamat IP aturan penerusan load balancer atau alamat IP
apa pun (
0.0.0.0
atau::
) - Jika protokol aturan penerusan load balancer mendukung port: Lakukan pemantauan (bind ke) port yang disertakan dalam aturan penerusan load balancer
Paket kembali dikirim langsung dari VM backend load balancer ke klien. Alamat IP sumber dan tujuan paket yang ditampilkan bergantung pada protokol:
- TCP berorientasi koneksi sehingga VM backend harus membalas dengan paket yang alamat IP sumbernya cocok dengan alamat IP aturan penerusan agar klien dapat mengaitkan paket respons dengan koneksi TCP yang sesuai.
- UDP tidak memiliki koneksi, sehingga VM backend dapat mengirim paket respons yang alamat IP sumbernya cocok dengan alamat IP aturan penerusan atau cocok dengan alamat IP yang ditetapkan untuk VM. Secara praktis, sebagian besar klien mengharapkan respons berasal dari alamat IP yang sama dengan alamat IP yang digunakan untuk mengirim paket.
Tabel berikut merangkum sumber dan tujuan untuk paket respons:
Jenis traffic | Sumber | Tujuan |
---|---|---|
TCP | Alamat IP aturan penerusan load balancer | Sumber paket yang meminta |
UDP | Untuk sebagian besar kasus penggunaan, alamat IP aturan penerusan load balancer 1 | Sumber paket yang meminta |
1 Jika VM memiliki alamat IP eksternal atau saat Anda menggunakan Cloud NAT, Anda juga dapat menetapkan alamat IP sumber paket respons ke alamat IPv4 internal utama NIC VM. Google Cloud atau Cloud NAT mengubah alamat IP sumber paket respons menjadi alamat IPv4 eksternal NIC atau alamat IPv4 eksternal Cloud NAT untuk mengirim paket respons ke alamat IP eksternal klien. Tidak menggunakan alamat IP aturan penerusan sebagai sumber adalah skenario lanjutan karena klien menerima paket respons dari alamat IP eksternal yang tidak cocok dengan alamat IP yang dikirimi paket permintaan.
Jalur perutean khusus
Google Cloud menggunakan rute khusus yang tidak ditentukan di jaringan VPC Anda untuk health check. Untuk mengetahui informasi selengkapnya, lihat Jalur untuk health check.
Arsitektur VPC Bersama
Tabel berikut merangkum komponen VPC Bersama untuk Load Balancer Jaringan passthrough eksternal:
Alamat IP | Aturan penerusan | Komponen backend |
---|---|---|
Alamat IP eksternal regional harus ditentukan dalam project yang sama dengan instance yang di-load balance. | Aturan penerusan eksternal regional harus ditentukan dalam project yang sama dengan instance di kumpulan target (project layanan). | Kumpulan target harus ditentukan dalam project yang sama dan region yang sama dengan tempat instance dalam kumpulan target berada. Health check yang terkait dengan kumpulan target juga harus ditentukan dalam project yang sama. |
Distribusi traffic
Cara Load Balancer Jaringan passthrough eksternal berbasis kumpulan target mendistribusikan koneksi baru bergantung pada cara afinitas sesi telah dikonfigurasi.
Afinitas sesi
Afinitas sesi mengontrol metode hashing yang digunakan untuk mendistribusikan koneksi baru
dari klien ke VM backend load balancer. Load balancer berbasis kumpulan target menggunakan parameter sessionAffinity
untuk mengonfigurasi afinitas sesi.
Untuk mengetahui informasi selengkapnya, lihat Menggunakan kumpulan target.
Load balancing dan paket UDP yang terfragmentasi
Jika Anda melakukan load balancing paket UDP, perhatikan hal berikut:
- Paket yang tidak terfragmentasi ditangani secara normal di semua konfigurasi.
- Paket UDP mungkin terfragmentasi sebelum mencapai Google Cloud. Jaringan perantara mungkin menunggu semua fragmen tiba sebelum meneruskannya, sehingga menyebabkan penundaan, atau mungkin membatalkan fragmen. Google Cloud tidak menunggu semua fragmen; Google Cloud meneruskan setiap fragmen segera setelah tiba.
Karena fragmen UDP berikutnya tidak berisi port tujuan, masalah dapat terjadi dalam situasi berikut:
- Jika afinitas sesi kumpulan target ditetapkan ke
NONE
(afinitas 5-tuple), fragmen berikutnya mungkin dihilangkan karena load balancer tidak dapat menghitung hash 5-tuple. - Jika ada lebih dari satu aturan penerusan UDP untuk alamat IP yang sama dan di-load balance, fragmen berikutnya mungkin tiba di aturan penerusan yang salah.
- Jika afinitas sesi kumpulan target ditetapkan ke
Jika Anda mengharapkan paket UDP yang terfragmentasi, lakukan hal berikut:
- Tetapkan afinitas sesi ke
NONE
,CLIENT_IP_PROTO
, atauCLIENT_IP
.- Menyetel afinitas sesi ke
NONE
menunjukkan bahwa afinitas tidak perlu dipertahankan. Oleh karena itu, load balancer menggunakan hash 5 tuple untuk memilih backend bagi paket yang tidak terfragmentasi, tetapi hash 3 tuple untuk paket yang terfragmentasi. - Menyetel afinitas sesi ke
CLIENT_IP_PROTO
atauCLIENT_IP
berarti port sumber dan tujuan tidak digunakan untuk hashing, sehingga hash yang sama dihitung untuk paket yang terfragmentasi dan tidak terfragmentasi.
- Menyetel afinitas sesi ke
- Gunakan hanya satu aturan penerusan UDP per alamat IP yang di-load balance. Hal ini memastikan bahwa semua fragmen tiba di aturan penerusan yang sama.
Dengan setelan ini, fragmen UDP dari paket yang sama akan diteruskan ke instance yang sama untuk digabungkan kembali.
Menggunakan instance target sebagai backend
Jika Anda menggunakan instance target sebagai backend untuk Load Balancer Jaringan passthrough eksternal dan Anda mengharapkan paket UDP yang terfragmentasi, gunakan hanya satu aturan penerusan UDP per alamat IP yang di-load balance, dan konfigurasi aturan penerusan untuk menerima traffic di semua port 0-65535. Hal ini memastikan bahwa semua fragmen tiba di aturan penerusan yang sama meskipun tidak memiliki port tujuan yang sama.
Batasan
- Anda tidak dapat menggunakan konsol Google Cloud untuk membuat Load Balancer Jaringan passthrough eksternal berbasis kumpulan target. Sebagai gantinya, gunakan gcloud atau REST API.
- Load Balancer Jaringan passthrough eksternal berbasis kumpulan target tidak mendukung Cloud Logging.
Langkah berikutnya
- Google Cloud Armor mendukung perlindungan DDoS jaringan lanjutan untuk Load Balancer Jaringan passthrough eksternal. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi perlindungan DDoS jaringan lanjutan.
- Untuk mengonfigurasi Load Balancer Jaringan passthrough eksternal dan mendistribusikan traffic di seluruh rangkaian instance Apache, lihat Menyiapkan Load Balancer Jaringan passthrough eksternal dengan kumpulan target.
- Untuk mempelajari cara kerja Load Balancer Jaringan passthrough eksternal dengan layanan backend regional, bukan kumpulan target, lihat: