Load Balancer Jaringan passthrough eksternal adalah load balancer Lapisan 4 regional. Load Balancer Jaringan passthrough eksternal mendistribusikan traffic TCP dan UDP di antara 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
- VM Google Cloud dengan IP eksternal
- VM Google Cloud yang memiliki akses internet melalui Cloud NAT atau NAT berbasis instance
Bergantung pada konfigurasi aturan penerusan, setiap load balancer berbasis kumpulan target 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 melakukan load balancing traffic TCP atau UDP. Karena load balancer adalah load balancer passthrough, backend Anda akan menghentikan koneksi TCP atau paket UDP yang di-load balance. Misalnya, Anda dapat menjalankan server web HTTPS di backend dan menggunakan Load Balancer Jaringan passthrough eksternal untuk merutekan permintaan ke server tersebut, yang akan menghentikan TLS di backend itu sendiri.
Jika Anda mem-build aplikasi di GKE, sebaiknya gunakan pengontrol Layanan GKE bawaan, yang men-deploy load balancer Google Cloud atas nama pengguna GKE. 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. Ini menentukan instance backend tempat traffic di-load balance. Setiap aturan penerusan adalah frontend untuk load balancer. Perlu diingat bahwa ada batasan pada 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 proxy 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 target pool. 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 dalam kumpulan target.
Load balancer mempertahankan alamat IP sumber paket yang 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 yang masuk tersebar di seluruh instance, dan setiap koneksi baru mungkin
beralih ke instance yang berbeda. Semua paket untuk koneksi diarahkan ke instance yang sama hingga koneksi ditutup. Koneksi yang dibuat tidak
diperhitungkan dalam proses load balancing.
Terlepas dari setelan afinitas sesi, semua paket untuk koneksi akan 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 jangka panjang sedang digunakan.
Anda dapat memilih setelan afinitas sesi yang berbeda jika memerlukan beberapa koneksi dari klien untuk membuka 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
) dari 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 dikirim ke 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 load balanced, 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 autoscaler Compute Engine, yang memungkinkan pengguna melakukan penskalaan otomatis pada grup instance dalam kumpulan target berdasarkan penggunaan backend. Untuk mengetahui informasi selengkapnya, lihat Menskalakan berdasarkan penggunaan CPU.
Jika 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 maksimal 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 target pool tertentu. Anda tidak dapat melakukan load balancing traffic tanpa aturan penerusan.
Setiap aturan penerusan mencocokkan alamat IP, protokol, dan secara opsional, rentang port tertentu ke 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 cenderung terfragmentasi sebelum tiba di jaringan VPC Google Cloud, lihat Load balancing dan paket UDP yang terfragmentasi.
Load Balancer Jaringan passthrough eksternal berbasis kumpulan target mendukung protokol berikut
untuk setiap aturan penerusan: TCP
atau UDP
. Jika ingin load balancer meneruskan semua traffic protokol IP, 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. Secara opsional, 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 kumpulan target yang sama.
- Anda perlu mengonfigurasi rentang port yang berbeda 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 terikat dengan 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 masing-masing aturan penerusan eksternal regional.
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 dengan 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 penghentian dan penutupan koneksi TCP yang halus, koneksi yang ada tidak dihentikan secara aktif. Namun, koneksi yang ada ke backend yang tidak sehat tidak dijamin akan tetap berfungsi dalam jangka waktu yang lama. Jika memungkinkan, Anda harus memulai proses shutdown tuntas sesegera mungkin untuk backend yang tidak sehat.
Pemeriksa kesehatan akan terus mengkueri instance yang tidak responsif, dan menampilkan instance ke kumpulan saat jumlah pemeriksaan yang berhasil terjadi sesuai yang ditentukan. 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 status instance. Meskipun layanan Anda tidak menggunakan HTTP, Anda harus menjalankan server web dasar di setiap instance yang dapat dikueri oleh sistem health check.
Health check 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 izin masuk yang mengizinkan traffic dari rentang tersebut.
Load Balancer Jaringan passthrough eksternal adalah load balancer passthrough, yang berarti bahwa aturan firewall Anda harus mengizinkan traffic dari alamat IP sumber klien. Jika layanan Anda terbuka untuk internet, cara termudahnya 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 pengembalian
Saat VM backend menerima paket load balancing dari klien, sumber dan tujuan paket tersebut adalah:
- Sumber: alamat IP eksternal yang terkait dengan VM Google Cloud atau alamat IP yang dapat dirutekan 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 akan tiba dengan alamat IP tujuan dari aturan penerusan load balancer. Software yang berjalan di VM backend harus dikonfigurasi 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: Dengarkan (ikat ke) port yang disertakan dalam aturan penerusan load balancer
Paket return dikirim langsung dari VM backend load balancer ke klien. Alamat IP sumber dan tujuan paket yang ditampilkan bergantung pada protokol:
- TCP berorientasi pada koneksi sehingga VM backend harus membalas dengan paket yang alamat IP sumbernya cocok dengan alamat IP aturan penerusan sehingga 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 tempat mereka 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 † | Sumber paket yang meminta |
† 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 tempat klien mengirim paket permintaan.
Jalur pemilihan rute 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 dalam kumpulan target (project layanan). | kumpulan target harus ditentukan dalam project dan region yang sama dengan tempat instance dalam kumpulan target berada. Pemeriksaan kesehatan 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 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 intervensi mungkin menunggu semua fragmen tiba sebelum meneruskannya, sehingga menyebabkan penundaan, atau mungkin menghapus fragmen. Google Cloud tidak menunggu semua fragmen; Google Cloud meneruskan setiap fragmen segera setelah fragmen tersebut 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 dihapus karena load balancer tidak dapat menghitung hash 5-tuple. - Jika ada lebih dari satu aturan penerusan UDP untuk alamat IP load-balanced yang sama, 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
.- Menetapkan afinitas sesi ke
NONE
menunjukkan bahwa mempertahankan afinitas tidak diperlukan. Oleh karena itu, load balancer menggunakan hash 5-tuple untuk memilih backend untuk paket yang tidak terfragmentasi, tetapi hash 3-tuple untuk paket yang terfragmentasi. - Menetapkan afinitas sesi ke
CLIENT_IP_PROTO
atauCLIENT_IP
berarti bahwa port sumber dan tujuan tidak digunakan untuk hashing, sehingga hash yang sama dihitung untuk paket yang terfragmentasi dan tidak terfragmentasi.
- Menetapkan afinitas sesi ke
- Hanya gunakan satu aturan penerusan UDP per alamat IP yang di-load balance. Tindakan 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 penyusunan ulang.
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, hanya gunakan satu aturan penerusan UDP per alamat IP yang di-load balance, dan konfigurasikan 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 tidak mendukung Peering Jaringan VPC.
Langkah selanjutnya
- Google Cloud Armor mendukung perlindungan DDoS jaringan lanjutan untuk Load Balancer Jaringan passthrough eksternal. Untuk informasi selengkapnya, lihat Mengonfigurasi perlindungan DDoS jaringan lanjutan.
- Untuk mengonfigurasi Load Balancer Jaringan passthrough eksternal dan mendistribusikan traffic di seluruh kumpulan 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: