Subnet khusus proxy untuk load balancer berbasis Envoy

Halaman ini menjelaskan cara menggunakan subnet khusus proxy yang digunakan oleh load balancing berbasis Envoy. Subnet khusus proxy menyediakan kumpulan alamat IP yang dicadangkan secara eksklusif untuk proxy Envoy yang digunakan oleh load balancer Google Cloud. Data ini tidak dapat digunakan untuk tujuan lain.

Proxy menghentikan koneksi masuk, lalu mengevaluasi ke mana setiap permintaan harus diarahkan berdasarkan peta URL, afinitas sesi layanan backend, mode penyeimbangan setiap grup instance backend atau NEG, dan faktor lainnya.

  1. Klien membuat koneksi ke alamat IP dan port aturan penerusan load balancer.

  2. Setiap proxy memproses alamat IP dan port yang ditentukan oleh aturan penerusan load balancer yang sesuai. Salah satu {i>proxy<i} menerima dan menghentikan koneksi jaringan klien.

  3. Proxy tersebut membuat koneksi ke VM backend atau endpoint yang sesuai dalam NEG, seperti yang ditentukan oleh layanan backend dan peta URL load balancer.

Setiap proxy load balancer diberi alamat IP internal. Paket yang dikirim dari proxy ke VM backend atau endpoint memiliki alamat IP sumber dari subnet khusus proxy.

Subnet khusus proxy tidak dapat digunakan untuk tujuan lain. Alamat IP untuk aturan penerusan load balancer tidak berasal dari subnet khusus proxy. Selain itu, alamat IP VM backend dan endpoint tidak berasal dari subnet khusus proxy.

Load balancer yang didukung

Load balancer berbasis Envoy berikut memerlukan subnet khusus proxy:

  • Subnet khusus proxy dengan tujuan GLOBAL_MANAGED_PROXY:

    Di jaringan dan region tertentu, satu subnet khusus proxy dari GLOBAL_MANAGED_PROXY digunakan bersama oleh semua Load Balancer Aplikasi internal lintas region di region tersebut. Kapan pun, hanya satu subnet dengan tujuan GLOBAL_MANAGED_PROXY yang dapat aktif di setiap region jaringan VPC.

Cara subnet khusus proxy sesuai dengan arsitektur load balancer

Diagram berikut menunjukkan resource Google Cloud yang diperlukan untuk Load Balancer Aplikasi internal regional.

Komponen bernomor Load Balancer Aplikasi internal regional.
Komponen bernomor Load Balancer Aplikasi internal Regional (klik untuk memperbesar).

Seperti yang ditunjukkan pada diagram, deployment load balancer berbasis Envoy memerlukan setidaknya dua subnet:

  • VM backend dan endpoint backend load balancer menggunakan satu subnet yang rentang alamat IP utamanya adalah 10.1.2.0/24 (dalam contoh ini). Subnet ini bukan subnet khusus proxy. Anda dapat menggunakan beberapa subnet untuk VM backend dan endpoint jika subnet berada di region yang sama dengan load balancer. Untuk Load Balancer Aplikasi internal, alamat IP load balancer yang terkait dengan aturan penerusan juga dapat berada di subnet ini (tetapi tidak harus).
  • Subnet khusus proxy adalah 10.129.0.0/23 (dalam contoh ini).

Rekomendasi ukuran subnet khusus proxy

Subnet khusus proxy harus menyediakan 64 alamat IP atau lebih. Panjang ini sesuai dengan panjang awalan /26 atau lebih pendek. Sebaiknya mulai dengan subnet khusus proxy dengan awalan /23 (512 alamat khusus proxy) dan ubah ukuran sesuai kebutuhan traffic Anda.

Proxy dialokasikan di level VPC, bukan level load balancer. Anda harus membuat satu subnet khusus proxy di setiap region jaringan VPC tempat Anda menggunakan load balancer berbasis Envoy. Jika Anda men-deploy beberapa load balancer di region yang sama dan jaringan VPC yang sama, load balancer tersebut akan memiliki subnet khusus proxy yang sama untuk load balancing.

Load balancer berbasis Envoy akan otomatis menskalakan jumlah proxy yang tersedia untuk menangani traffic berdasarkan kebutuhan traffic Anda. Biaya instance proxy didasarkan pada jumlah instance proxy yang diperlukan untuk memenuhi kebutuhan traffic Anda. Setiap proxy tambahan akan dikenai biaya per jam tambahan sesuai dengan harga yang ditunjukkan pada tabel sebelumnya.

Jumlah proxy yang dialokasikan ke load balancer Anda dihitung berdasarkan kapasitas terukur yang diperlukan untuk menangani traffic selama jangka waktu 10 menit. Selama jangka waktu ini, kami melihat lebih banyak hal dari:

  • Jumlah proxy yang diperlukan untuk melayani kebutuhan bandwidth traffic Anda. Setiap instance proxy dapat menangani hingga 18 MB per detik. Kami memantau total bandwidth yang diperlukan dan membagi total tersebut dengan bandwidth yang dapat didukung instance proxy.
  • Jumlah proxy yang diperlukan untuk menangani koneksi dan permintaan. Kami menghitung total setiap resource berikut dan membagi setiap nilai berdasarkan hal yang dapat ditangani oleh instance proxy:
    • 600 (HTTP) atau 150 (HTTPS) koneksi baru per detik
    • 3.000 koneksi aktif
    • 1.400 permintaan per detik*

* Instance proxy dapat menangani 1.400 permintaan per detik jika Cloud Logging dinonaktifkan. Jika mengaktifkan Logging, instance proxy Anda dapat menangani lebih sedikit permintaan per detik. Misalnya: mencatat 100% permintaan ke dalam log akan mengurangi kapasitas penanganan permintaan proxy menjadi 700 permintaan per detik. Anda dapat menetapkan Logging untuk mengambil sampel traffic dengan persentase yang lebih kecil. Hal ini memungkinkan Anda memenuhi kebutuhan kemampuan observasi sekaligus mengontrol biaya.

Untuk contoh mendetail tentang cara penagihan subnet khusus proxy, lihat Biaya instance proxy dalam dokumentasi harga Cloud Load Balancing.

Membuat subnet khusus proxy

Anda harus membuat subnet khusus proxy untuk load balancer berbasis Envoy, terlepas dari apakah jaringan Anda mode otomatis atau kustom. Membuat subnet khusus proxy pada dasarnya sama dengan prosedur membuat subnet apa pun, kecuali dengan penambahan beberapa tanda.

Untuk subnet khusus proxy, --purpose harus disetel ke REGIONAL_MANAGED_PROXY atau GLOBAL_MANAGED_PROXY, bergantung pada load balancer Anda.

Anda tidak dapat menggunakan kembali subnet yang ada sebagai subnet khusus proxy. Anda harus membuat subnet baru di setiap region yang memiliki load balancer berbasis Envoy. Hal ini sebagian karena perintah subnets update tidak mengizinkan perubahan kolom --purpose subnet.

Anda harus membuat subnet khusus proxy untuk digunakan oleh proxy load balancer, sebelum membuat aturan penerusan untuk load balancer regional. Jika Anda mencoba mengonfigurasi load balancer tanpa terlebih dahulu membuat subnet khusus proxy untuk region tersebut, proses pembuatan load balancer akan gagal.

Konsol

  1. Di Konsol Google Cloud, buka halaman jaringan VPC.
    Buka halaman VPC networks
  2. Klik nama jaringan VPC Bersama yang ingin Anda tambahi subnet khusus proxy.
  3. Klik Tambahkan subnet.
  4. Masukkan Nama.
  5. Pilih Wilayah.
  6. Tetapkan Destination ke salah satu opsi berikut:
    • Untuk load balancer regional: Proxy yang Dikelola Regional
    • Untuk load balancer lintas region: Proxy yang Dikelola Lintas Region
    • Masukkan rentang alamat IP.
    • Klik Tambahkan.

gcloud

Perintah gcloud compute networks subnets create membuat subnet khusus proxy.

gcloud compute networks subnets create SUBNET_NAME \
    --purpose=SUBNET_PURPOSE \
    --role=ACTIVE \
    --region=REGION \
    --network=VPC_NETWORK_NAME \
    --range=CIDR_RANGE

Kolom ini didefinisikan sebagai berikut:

  • SUBNET_NAME adalah nama subnet khusus proxy.
  • SUBNET_PURPOSE adalah tujuan subnet. Tetapkan setelan ini ke REGIONAL_MANAGED_PROXY atau GLOBAL_MANAGED_PROXY, bergantung pada load balancer Anda.
  • REGION adalah region dari subnet khusus proxy.
  • VPC_NETWORK_NAME adalah nama jaringan VPC yang berisi subnet.
  • CIDR_RANGE adalah rentang alamat IP utama subnet. Anda harus menggunakan subnet mask tidak lebih dari 26, sehingga tersedia minimal 64 alamat IP untuk proxy di region tersebut. Panjang subnet mask yang direkomendasikan adalah /23.

Untuk contoh konfigurasi lengkap, lihat Mengonfigurasi subnet khusus proxy.

Anda harus mengonfigurasi aturan firewall agar backend dapat menerima koneksi dari subnet khusus proxy. Untuk mengetahui contoh konfigurasi lengkap, termasuk penyiapan aturan firewall, lihat artikel berikut:

Ketersediaan proxy

Terkadang region Google Cloud tidak memiliki kapasitas proxy yang cukup untuk load balancer baru. Jika hal ini terjadi, Google Cloud Console akan memberikan pesan peringatan ketersediaan proxy saat Anda membuat load balancer. Untuk mengatasi masalah ini, Anda dapat melakukan salah satu tindakan berikut:

  • Pilih region lain untuk load balancer Anda. Ini bisa menjadi opsi praktis jika Anda memiliki backend di region lain.
  • Pilih jaringan VPC yang sudah memiliki alokasi subnet khusus proxy.
  • Tunggu hingga masalah kapasitas selesai.

Mengubah ukuran atau rentang alamat subnet khusus proxy

Saat jumlah traffic yang ditangani oleh load balancer meningkat, Anda mungkin perlu meningkatkan ukuran subnet khusus proxy agar jumlah proxy Envoy yang lebih besar dapat ditetapkan ke load balancer Anda.

Anda tidak dapat memperluas subnet khusus proxy dengan cara yang sama seperti yang Anda lakukan untuk rentang alamat utama (dengan perintah expand-ip-range). Sebagai gantinya, Anda harus membuat subnet khusus proxy cadangan yang memenuhi kebutuhan Anda, lalu mempromosikannya ke peran aktif. Hal ini karena hanya satu subnet khusus proxy yang dapat aktif per region dan per jaringan VPC, dan karena Anda hanya dapat memperluas rentang alamat IP utama subnet.

Mengalihkan subnet khusus proxy dari pencadangan ke aktif tidak mengganggu koneksi baru:

  • Subnet khusus proxy yang baru diaktifkan akan digunakan untuk koneksi baru.
  • Subnet khusus proxy yang aktif (sekarang dicadangkan) tidak lagi digunakan untuk koneksi baru.
  • Google Cloud mulai menghabiskan koneksi yang ada dari proxy di subnet khusus proxy yang sebelumnya aktif (sekarang dicadangkan).

Anda hanya dapat membuat satu subnet aktif dan satu subnet khusus proxy cadangan per region, per jaringan VPC.

Konsol

  1. Buat subnet khusus proxy cadangan di region yang sama, dengan menentukan rentang alamat IP utama yang memenuhi kebutuhan Anda

    1. Di Konsol Google Cloud, buka halaman jaringan VPC.
      Buka halaman VPC networks
    2. Klik nama jaringan VPC Bersama yang ingin Anda tambahi subnet khusus proxy.
    3. Klik Tambahkan subnet.
    4. Masukkan Nama.
    5. Pilih Wilayah.
    6. Tetapkan Destination ke salah satu opsi berikut:
      • Untuk load balancer regional: Proxy yang Dikelola Regional
      • Untuk load balancer lintas region: Proxy yang Dikelola Lintas Region
      • Untuk Peran, pilih Cadangan.
      • Masukkan rentang alamat IP.
      • Klik Tambahkan.
  2. Buat atau ubah aturan firewall izinkan masuk yang berlaku untuk VM backend atau endpoint Anda sehingga aturan tersebut mencakup rentang alamat IP utama dari subnet khusus proxy cadangan.

  3. Dorong subnet khusus proxy cadangan ke peran aktif. Tindakan ini juga akan mendemosikan subnet khusus proxy yang sebelumnya aktif ke peran cadangan:

    1. Di Konsol Google Cloud, buka halaman jaringan VPC.
      Buka halaman VPC networks
    2. Klik nama jaringan VPC Bersama yang ingin Anda ubah.
    3. Di bagian Subnet khusus proxy yang dicadangkan untuk load balancing, cari subnet cadangan yang dibuat pada langkah sebelumnya.
    4. Klik Aktifkan.
    5. Tentukan Waktu tunggu pengosongan opsional.
    6. Klik Aktifkan subnet.
  4. Setelah waktu tunggu pengosongan koneksi, atau setelah Anda yakin bahwa koneksi ke VM atau endpoint backend tidak berasal dari proxy dalam subnet khusus proxy yang sebelumnya aktif (sekarang mencadangkan), Anda dapat melakukan tindakan berikut:

    • Ubah aturan firewall izinkan masuk yang berlaku untuk VM backend atau endpoint Anda agar tidak mencakup rentang alamat IP utama dari subnet khusus proxy yang sebelumnya aktif (sekarang dicadangkan).
    • Hapus subnet khusus proxy yang sebelumnya aktif (sekarang mencadangkan) untuk melepaskan alamat IP yang digunakan subnet untuk rentang alamat IP utamanya.

gcloud

Langkah-langkah berikut mengasumsikan bahwa Anda sudah memiliki subnet khusus proxy yang aktif.

  1. Buat subnet khusus proxy cadangan di region yang sama, dengan menentukan rentang alamat IP utama yang sesuai dengan kebutuhan Anda, menggunakan perintah gcloud compute networks subnets create dengan flag --role=BACKUP.

    gcloud compute networks subnets create BACKUP_PROXY_ONLY_SUBNET_NAME \
       --purpose=SUBNET_PURPOSE \
       --role=BACKUP \
       --region=REGION \
       --network=VPC_NETWORK_NAME \
       --range=BACKUP_PROXY_ONLY_SUBNET_RANGE
    

    Ganti kode berikut:

    • BACKUP_PROXY_ONLY_SUBNET_NAME: nama subnet khusus proxy cadangan yang baru dibuat
    • SUBNET_PURPOSE: tujuan subnet khusus proxy cadangan yang baru dibuat
    • REGION: region dari subnet khusus proxy cadangan yang baru dibuat. Region ini harus merupakan region yang sama dengan subnet khusus proxy yang aktif saat ini.
    • REGION: jaringan subnet khusus proxy cadangan yang baru dibuat. Jaringan ini harus sama dengan subnet khusus proxy yang aktif saat ini.
    • BACKUP_PROXY_ONLY_SUBNET_RANGE: rentang CIDR dari subnet khusus proxy cadangan yang baru dibuat
  2. Buat atau ubah aturan firewall izinkan masuk yang berlaku untuk VM atau endpoint backend Anda, sehingga aturan tersebut kini menyertakan rentang alamat IP utama dari subnet khusus proxy cadangan. Aturan firewall seharusnya sudah menerima koneksi dari subnet yang aktif.

    gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges ACTIVE_PROXY_ONLY_SUBNET_RANGE,BACKUP_PROXY_ONLY_SUBNET_RANGE
    

    Ganti kode berikut:

    • PROXY_ONLY_SUBNET_FIREWALL_RULE: nama aturan firewall yang mengizinkan traffic dari subnet khusus proxy untuk mencapai endpoint atau instance backend Anda
    • ACTIVE_PROXY_ONLY_SUBNET_RANGE: rentang CIDR subnet khusus proxy yang aktif saat ini
  3. Update subnet baru, dengan menyetelnya ke subnet khusus proxy ACTIVE di region dan tunggu hingga subnet lama habis. Tindakan ini juga akan mendemosikan subnet khusus proxy yang sebelumnya aktif menjadi peran cadangan.

    Untuk segera menghabiskan rentang alamat IP, setel --drain-timeout ke 0s. Tindakan ini akan segera mengakhiri semua koneksi ke proxy yang telah menetapkan alamat di subnet yang sedang digunakan.

    gcloud compute networks subnets update BACKUP_PROXY_ONLY_SUBNET_NAME \
       --region=REGION \
       --role=ACTIVE \
       --drain-timeout=CONNECTION_DRAINING_TIMEOUT
    

    Ganti kode berikut:

    • CONNECTION_DRAINING_TIMEOUT: jumlah waktu, dalam detik, yang digunakan Google Cloud untuk memigrasikan koneksi yang ada dari proxy di subnet khusus proxy yang sebelumnya aktif
  4. Pantau status pengosongan dengan menggunakan perintah list atau describe. Status subnet adalah DRAINING saat subnet sedang dikuras.

    gcloud compute networks subnets list
    

    Tunggu hingga pengosongan selesai. Jika subnet khusus proxy lama dikosongkan, status subnet adalah READY.

  5. Perbarui aturan firewall subnet hanya proxy Anda agar hanya mengizinkan koneksi dari subnet baru.

    gcloud compute firewall-rules PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges BACKUP_PROXY_ONLY_SUBNET_RANGE
    
  6. Setelah yakin bahwa koneksi ke VM backend atau endpoint Anda tidak berasal dari proxy di subnet khusus proxy yang sebelumnya aktif (sekarang dicadangkan), Anda dapat menghapus subnet lama.

    gcloud compute networks subnets delete ACTIVE_PROXY_ONLY_SUBNET_NAME \
      --region=REGION
    

Memigrasikan tujuan subnet khusus proxy

Jika sebelumnya Anda membuat subnet khusus proxy dengan --purpose=INTERNAL_HTTPS_LOAD_BALANCER, Anda harus memigrasikan tujuan subnet ke REGIONAL_MANAGED_PROXY agar dapat membuat load balancer berbasis Envoy lainnya di region yang sama di jaringan VPC.

Konsol

Jika menggunakan Konsol Google Cloud untuk membuat load balancer, Anda akan diminta untuk memigrasikan tujuan subnet khusus proxy yang dibuat sebelumnya dari --purpose=INTERNAL_HTTPS_LOAD_BALANCER ke REGIONAL_MANAGED_PROXY saat membuat load balancer.

gcloud

Untuk mengubah tujuan subnet khusus proxy yang ada dari --purpose=INTERNAL_HTTPS_LOAD_BALANCER menjadi REGIONAL_MANAGED_PROXY, gunakan perintah berikut:

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --purpose=REGIONAL_MANAGED_PROXY \
    --region=REGION

Memigrasikan tujuan subnet khusus proxy dari --purpose=INTERNAL_HTTPS_LOAD_BALANCER ke REGIONAL_MANAGED_PROXY tidak akan menyebabkan periode nonaktif. Perubahan akan langsung diterapkan.

Menghapus subnet khusus proxy

Menghapus subnet khusus proxy akan merilis rentang alamat IP utamanya, sehingga Anda dapat menggunakan rentang tersebut untuk tujuan lain. Google Cloud menerapkan aturan berikut saat menerima permintaan untuk menghapus subnet khusus proxy:

  • Subnet khusus proxy yang aktif tidak dapat dihapus jika ada setidaknya satu load balancer regional di region dan jaringan VPC yang sama.

  • Subnet khusus proxy yang aktif tidak dapat dihapus jika ada subnet khusus proxy cadangan di region dan jaringan VPC yang sama.

    Jika Anda mencoba menghapus subnet khusus proxy yang aktif sebelum menghapus cadangan, pesan error berikut akan muncul: "Invalid resource usage: Tidak dapat menghapus subnetwork AKTIF karena ada subnetwork BACKUP".

Secara praktis, aturan ini memiliki pengaruh sebagai berikut:

  • Jika tidak ada load balancer regional yang ditentukan di region dan jaringan VPC tertentu, Anda dapat menghapus subnet khusus proxy di region tersebut. Jika ada subnet khusus proxy cadangan, Anda harus menghapusnya terlebih dahulu sebelum dapat menghapus subnet khusus proxy yang aktif.

  • Jika memiliki setidaknya satu load balancer regional yang ditentukan di region dan jaringan VPC tertentu, Anda tidak dapat menghapus subnet khusus proxy yang aktif. Namun, Anda dapat mempromosikan subnet khusus proxy cadangan ke peran aktif, yang secara otomatis mendemosikan subnet khusus proxy yang sebelumnya aktif ke peran cadangan. Setelah koneksi habis, Anda dapat menghapus subnet khusus proxy cadangan (yang sebelumnya aktif).

Lihat menghapus subnet dalam dokumentasi jaringan VPC untuk informasi lebih lanjut.

Batasan

Batasan berikut berlaku untuk subnet khusus proxy:

  • Anda tidak dapat memiliki subnet INTERNAL_HTTPS_LOAD_BALANCER dan REGIONAL_MANAGED_PROXY di jaringan dan region yang sama, dengan cara yang sama Anda tidak dapat memiliki dua proxy REGIONAL_MANAGED_PROXY atau dua proxy INTERNAL_HTTPS_LOAD_BALANCER.

  • Anda hanya dapat membuat satu subnet aktif dan satu subnet khusus proxy cadangan di setiap region di setiap jaringan VPC.

  • Anda tidak dapat membuat subnet khusus proxy cadangan, kecuali jika Anda telah membuat subnet khusus proxy yang aktif di region dan jaringan tersebut.

  • Anda dapat mengubah peran subnet khusus proxy dari cadangan menjadi aktif dengan memperbarui subnet. Jika Anda melakukannya, Google Cloud akan otomatis mengubah subnet khusus proxy yang sebelumnya aktif menjadi pencadangan. Anda tidak dapat secara eksplisit menetapkan peran subnet khusus proxy untuk mencadangkan dengan mengupdatenya.

  • Selama periode pengosongan koneksi subnet khusus proxy (--drain-timeout), Anda tidak dapat mengubah peran subnet khusus proxy dari cadangan menjadi aktif.

  • Google Cloud tidak memberikan peringatan jika subnet khusus proxy Anda kehabisan alamat IP. Namun, Anda dapat mengonfigurasi Monitoring untuk memantau penggunaan alamat IP pada subnet khusus proxy. Anda dapat menentukan kebijakan pemberitahuan guna menyiapkan pemberitahuan untuk metrik loadbalancing.googleapis.com/subnet/proxy_only/addresses.

  • Subnet khusus proxy tidak mendukung VPC Flow Logs.

Langkah selanjutnya