Halaman ini menunjukkan cara men-deploy Load Balancer Aplikasi eksternal regional dengan backend Cloud Run. Untuk menyiapkannya, Anda menggunakan backend NEG serverless untuk load balancer.
Sebelum mencoba prosedur ini, pastikan Anda memahami topik berikut:
Panduan ini menunjukkan cara mengonfigurasi Load Balancer Aplikasi yang mem-proxy permintaan ke backend NEG tanpa server.
NEG Serverless memungkinkan Anda menggunakan layanan Cloud Run dengan load balancer. Setelah Anda mengonfigurasi load balancer dengan backend NEG serverless, permintaan ke load balancer akan dirutekan ke backend Cloud Run.
Sebelum memulai
Menginstal Google Cloud SDK
Instal alat Google Cloud CLI. Lihat ringkasan gcloud untuk mengetahui informasi konseptual dan penginstalan tentang alat ini.
Jika Anda belum menjalankan gcloud CLI sebelumnya, jalankan
gcloud init
terlebih dahulu untuk melakukan inisialisasi direktori
gcloud
.
Men-deploy layanan Cloud Run
Petunjuk di halaman ini mengasumsikan bahwa Anda sudah memiliki layanan Cloud Run yang berjalan.
Untuk contoh di halaman ini, Anda dapat menggunakan salah satu panduan memulai Cloud Run untuk men-deploy layanan Cloud Run.
NEG serverless dan load balancer harus berada di region yang sama dengan layanan Cloud Run. Anda dapat memblokir permintaan eksternal yang dikirim langsung ke URL default layanan Cloud Run dengan membatasi traffic masuk keinternal and cloud load
balancing
. Contoh:
gcloud run deploy CLOUD_RUN_SERVICE_NAME \ --platform=managed \ --allow-unauthenticated \ --ingress=internal-and-cloud-load-balancing \ --region=REGION \ --image=IMAGE_URL
Catat nama layanan yang Anda buat. Bagian selanjutnya di halaman ini menunjukkan cara menyiapkan load balancer yang merutekan permintaan ke layanan ini.
Konfigurasikan izin
Untuk mengikuti panduan ini, Anda perlu membuat NEG tanpa server dan membuat load balancer dalam sebuah project. Anda harus menjadi pemilik atau editor project, atau memiliki peran dan izin IAM Compute Engine berikut:
Tugas | Peran yang diperlukan |
---|---|
Membuat komponen jaringan dan load balancer | Admin Jaringan |
Membuat dan mengubah NEG | Compute Instance Admin |
Membuat dan mengubah sertifikat SSL | Security Admin |
Mengonfigurasi jaringan dan subnet
Untuk mengonfigurasi jaringan dan subnetnya, Anda akan melakukan tugas berikut:
- Buat jaringan VPC dan subnet.
- Buat subnet khusus proxy.
Membuat jaringan VPC
Buat jaringan VPC mode kustom, lalu subnet yang Anda inginkan dalam suatu region.
Konsol
Di Konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Untuk Name, masukkan
lb-network
.Untuk Mode pembuatan subnet, klik Kustom.
Di bagian New subnet tentukan parameter konfigurasi berikut untuk subnet:
- Untuk Name, masukkan
lb-subnet
. - Pilih Region.
- Untuk Rentang alamat IP, masukkan
10.1.2.0/24
. - Klik Done.
- Untuk Name, masukkan
Klik Create.
gcloud
Buat jaringan VPC kustom menggunakan perintah
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Buat subnet di jaringan
lb-network
. Contoh ini menggunakan rentang alamat IP10.1.2.0/24
untuk subnet. Anda dapat mengonfigurasi rentang subnet yang valid.gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=REGION
Membuat subnet khusus proxy
Buat subnet khusus proxy untuk semua load balancer berbasis Envoy regional di region tertentu pada jaringan lb-network
.
Konsol
Di Konsol Google Cloud, buka halaman jaringan VPC.
Klik nama jaringan VPC Bersama tempat Anda ingin menambahkan subnet khusus proxy.
Klik Tambahkan subnet.
Di kolom Name, masukkan
proxy-only-subnet
.Pilih Region.
Tetapkan Tujuan ke Proxy yang Dikelola Berdasarkan Wilayah.
Masukkan rentang alamat IP sebagai
10.129.0.0/23
.Klik Tambahkan.
gcloud
Buat subnet khusus proxy menggunakan perintah
gcloud compute networks subnets create
.Contoh ini menggunakan rentang alamat IP
10.129.0.0/23
untuk subnet khusus proxy. Anda dapat mengonfigurasi rentang subnet yang valid.gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=lb-network \ --range=10.129.0.0/23
Membuat load balancer
Dalam diagram berikut, load balancer menggunakan backend NEG tanpa server untuk mengarahkan permintaan ke layanan Cloud Run tanpa server.
Traffic yang berasal dari load balancer ke backend NEG serverless menggunakan rute khusus yang ditentukan di luar VPC Anda dan tidak tunduk pada aturan firewall. Oleh karena itu, jika load balancer hanya memiliki backend NEG serverless, Anda tidak perlu membuat aturan firewall untuk mengizinkan traffic dari subnet khusus proxy ke backend serverless.
Konsol
Memulai konfigurasi
Di konsol Google Cloud, buka halaman Load balancing.
- Klik Create load balancer.
- Untuk Type of load balancer, pilih Application Load Balancer (HTTP/HTTPS), lalu klik Next.
- Untuk Public facing or internal, pilih Public facing (external), lalu klik Next.
- Untuk Global or single region deployment, pilih Best for regional workloads, lalu klik Next.
- Klik Konfigurasikan.
Konfigurasi dasar
- Untuk nama load balancer, masukkan
serverless-lb
. - Pilih Network sebagai
lb_network
. - Biarkan jendela tetap terbuka untuk melanjutkan.
Mengonfigurasi frontend
- Sebelum melanjutkan, pastikan Anda memiliki sertifikat SSL.
- Klik Frontend configuration.
- Masukkan Nama.
- Untuk mengonfigurasi Load Balancer Aplikasi eksternal regional, isi kolom sebagai berikut.
- Di bagian Protocol, pilih HTTPS.
- Di bagian Network service tier, pilih Standard.
- Di bagian IP version, pilih IPv4.
- Di bagian IP address, pilih Ephemeral.
- Di bagian Port, pilih
443
. Di bagian Certificate, pilih sertifikat SSL yang ada atau buat sertifikat baru.
Contoh berikut menunjukkan cara membuat sertifikat SSL Compute Engine:
- Klik Buat sertifikat baru.
- Di kolom Name, masukkan nama.
- Di kolom yang sesuai, upload file berformat PEM:
- Certificate
- Private key
- Klik Create.
- Opsional: Untuk membuat load balancer HTTP, lakukan tindakan berikut:
- Di bagian Protocol, pilih HTTP.
- Di bagian Network service tier, pilih Standard.
- Di bagian IP version, pilih IPv4.
- Di bagian IP address, pilih Ephemeral.
- Di bagian Port, pilih
80
. - Klik Done.
Jika ingin menguji proses ini tanpa menyiapkan resource sertifikat SSL, Anda dapat menyiapkan load balancer HTTP.
Mengonfigurasi layanan backend
- Klik Backend configuration.
- Di menu drop-down Create or select backend services, tahan kursor di atas Backend services, lalu pilih Create a backend service.
- Di jendela Create a backend service, masukkan Name.
- Di bagian Backend type, pilih Serverless network endpoint group.
- Jangan ubah Protokol. Parameter ini diabaikan.
- Di bagian Backends > New backend, pilih Create serverless network endpoint group.
- Di jendela Create serverless network endpoint group, masukkan Name.
- Di bagian Region, region load balancer akan ditampilkan.
- Dari kolom Serverless network endpoint group type, pilih Cloud Run. Cloud Run adalah satu-satunya jenis yang didukung.
- Pilih Pilih nama layanan.
- Dari menu drop-down Service, pilih layanan Cloud Run yang ingin Anda buat load balancer-nya.
- Klik Done.
- Klik Create.
- Di jendela Create backend service, klik Create.
Mengonfigurasi aturan pemilihan rute
Aturan perutean menentukan cara traffic Anda diarahkan. Anda dapat mengarahkan traffic ke layanan backend atau layanan Kubernetes. Setiap traffic yang tidak cocok secara eksplisit dengan pencocok host dan jalur akan dikirim ke layanan default.
- Klik Simple host and path rule.
- Pilih layanan backend dari menu drop-down Backend.
Meninjau konfigurasi
- Klik Review and finalize.
- Tinjau nilai untuk Backend, Host and Path rules, dan Frontend.
- Opsional: Klik Equivalent Code untuk melihat permintaan REST API yang akan digunakan untuk membuat load balancer.
- Klik Create. Tunggu load balancer dibuat.
- Klik nama load balancer (serverless-lb).
- Catat alamat IP load balancer untuk tugas berikutnya.
gcloud
- Cadangkan alamat IP eksternal statis untuk load balancer.
gcloud compute addresses create IP_ADDRESS_NAME \ --region=REGION \ --network-tier=STANDARD
- Buat NEG tanpa server untuk layanan Cloud Run Anda:
gcloud compute network-endpoint-groups create SERVERLESS_NEG_NAME \ --region=REGION \ --network-endpoint-type=serverless \ --cloud-run-service=CLOUD_RUN_SERVICE_NAME
- Buat layanan backend regional. Tetapkan
--protocol
ke HTTP. Parameter ini diabaikan, tetapi diperlukan karena--protocol
secara default ditetapkan ke TCP.gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --region=REGION
- Tambahkan NEG tanpa server sebagai backend ke layanan backend:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --region=REGION \ --network-endpoint-group=SERVERLESS_NEG_NAME \ --network-endpoint-group-region=REGION
- Buat peta URL regional untuk mengarahkan permintaan masuk ke layanan backend:
Contoh peta URL ini hanya menargetkan satu layanan backend yang mewakili satu aplikasi serverless, sehingga Anda tidak perlu menyiapkan aturan host atau pencocok jalur.gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --region=REGION
- Opsional: Lakukan langkah ini jika Anda menggunakan HTTPS antara klien dan load balancer. Langkah ini tidak diperlukan untuk load balancer HTTP.
Anda dapat membuat sertifikat Compute Engine atau Certificate Manager. Gunakan salah satu metode berikut untuk membuat sertifikat menggunakan Pengelola Sertifikat:
- Sertifikat yang dikelola sendiri secara regional. Untuk informasi tentang cara membuat dan menggunakan sertifikat yang dikelola sendiri secara regional, lihat men-deploy sertifikat yang dikelola sendiri secara regional. Peta sertifikat tidak didukung.
Sertifikat regional yang dikelola Google. Peta sertifikat tidak didukung.
Jenis sertifikat regional yang dikelola Google berikut didukung oleh Pengelola Sertifikat:
- Sertifikat regional yang dikelola Google dengan otorisasi DNS per project. Untuk mengetahui informasi selengkapnya, lihat Men-deploy sertifikat yang dikelola Google secara regional.
- Sertifikat (pribadi) regional yang dikelola Google dengan Certificate Authority Service. Untuk mengetahui informasi selengkapnya, lihat Men-deploy sertifikat yang dikelola Google regional dengan Layanan CA.
- Buat proxy target regional untuk merutekan permintaan ke peta URL.
Untuk load balancer HTTP, buat proxy target HTTP: Untuk load balancer HTTPS, buat proxy target HTTPS. Proxy ini merupakan bagian dari load balancer yang menyimpan sertifikat SSL untuk Load Balancing HTTPS, sehingga Anda juga memuat sertifikat pada langkah ini.gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=REGION
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --region=REGION
- Buat aturan penerusan untuk mengarahkan permintaan masuk ke proxy.
Untuk load balancer HTTP:
Untuk load balancer HTTPS:gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=lb-network \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --target-http-proxy-region=REGION \ --region=REGION \ --ports=80
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=lb-network \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --target-https-proxy-region=REGION \ --region=REGION \ --ports=443
Setelah membuat sertifikat, lampirkan sertifikat langsung ke proxy target.
Untuk membuat resource sertifikat SSL regional yang dikelola sendiri:gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate CRT_FILE_PATH \ --private-key KEY_FILE_PATH \ --region=REGION
Menguji load balancer
Setelah mengonfigurasi load balancer, Anda dapat mulai mengirimkan traffic ke alamat IP load balancer.
Di konsol Google Cloud, buka halaman Load balancing.
Klik load balancer yang baru saja Anda buat.
Catat alamat IP load balancer internal.
Untuk load balancer HTTP, Anda dapat menguji load balancer menggunakan browser web dengan membuka
http://IP_ADDRESS
. GantiIP_ADDRESS
dengan alamat IP load balancer. Anda akan diarahkan ke halaman beranda layanan Cloud Run.Untuk load balancer HTTPS, Anda dapat menguji load balancer menggunakan browser web dengan membuka
https://IP_ADDRESS
. GantiIP_ADDRESS
dengan alamat IP load balancer. Anda akan diarahkan ke halaman beranda layanan Cloud Run.
Jika Anda menggunakan sertifikat yang ditandatangani sendiri untuk pengujian, browser akan menampilkan peringatan. Anda harus secara eksplisit memerintahkan browser untuk menerima sertifikat yang ditandatangani sendiri. Klik peringatan untuk melihat halaman sebenarnya.
Opsi konfigurasi tambahan
Bagian ini memperluas contoh konfigurasi untuk memberikan opsi konfigurasi alternatif dan tambahan. Semua tugas bersifat opsional. Anda dapat melakukannya dalam urutan apa pun.
Menggunakan masker URL
Saat membuat NEG tanpa server, Anda dapat menggunakan masker URL untuk mengarah ke beberapa layanan yang ditayangkan di domain yang sama, bukan memilih layanan Cloud Run tertentu. Masker URL adalah template skema URL Anda. NEG tanpa server menggunakan template ini untuk mengekstrak nama layanan dari URL permintaan yang masuk dan memetakan permintaan ke layanan yang sesuai.
Masker URL sangat berguna jika layanan Anda dipetakan ke domain kustom, bukan ke alamat default yang disediakan Google Cloud untuk layanan yang di-deploy. Masker URL memungkinkan Anda menargetkan beberapa layanan dan versi dengan satu aturan meskipun aplikasi Anda menggunakan pola URL kustom.
Jika Anda belum melakukannya, pastikan Anda membaca Ringkasan NEGS Serverless: Masker URL.
Membuat masker URL
Untuk membuat mask URL untuk load balancer, mulailah dengan URL layanan Anda. Contoh ini menggunakan aplikasi serverless contoh yang berjalan di
https://example.com/login
. Ini adalah URL tempat layanan login
aplikasi
ditayangkan.
- Hapus
http
atauhttps
dari URL. Anda memilikiexample.com/login
. - Ganti nama layanan dengan placeholder untuk mask URL.
- Cloud Run: Ganti
nama layanan Cloud Run dengan
placeholder
<service>
. Jika layanan Cloud Run memiliki tag yang terkait dengannya, ganti nama tag dengan placeholder<tag>
. Dalam contoh ini, masker URL yang Anda miliki adalahexample.com/<service>
.
- Cloud Run: Ganti
nama layanan Cloud Run dengan
placeholder
Opsional: Jika nama layanan dapat diekstrak dari bagian jalur URL, domain dapat dihilangkan. Bagian jalur dari mask URL dibedakan oleh karakter garis miring (
/
) pertama. Jika garis miring (/
) tidak ada dalam mask URL, mask tersebut dipahami hanya mewakili host. Oleh karena itu, untuk contoh ini, masker URL dapat dikurangi menjadi/<service>
.Demikian pula, jika
<service>
dapat diekstrak dari bagian host URL, Anda dapat menghapus jalur sepenuhnya dari mask URL.Anda juga dapat menghapus komponen host atau subdomain yang muncul sebelum placeholder pertama serta komponen jalur yang muncul setelah placeholder terakhir. Dalam kasus tersebut, placeholder akan mengambil informasi yang diperlukan untuk komponen.
Berikut beberapa contoh lainnya yang menunjukkan aturan ini:
Tabel ini mengasumsikan bahwa Anda memiliki domain kustom bernama example.com
dan
semua layanan Cloud Run Anda sedang dipetakan
ke domain ini.
Layanan, Nama tag | URL domain kustom Cloud Run | Masker URL |
---|---|---|
service: login | https://login-home.example.com/web | <service>-home.example.com |
service: login | https://example.com/login/web | example.com/<service> atau /<service> |
service: login, tag: test | https://test.login.example.com/web | <tag>.<service>.example.com |
service: login, tag: test | https://example.com/home/login/test | example.com/home/<service>/<tag> atau /home/<service>/<tag> |
service: login, tag: test | https://test.example.com/home/login/web | <tag>.example.com/home/<service> |
Membuat NEG tanpa server dengan masker URL
Konsol
Untuk load balancer baru, Anda dapat menggunakan proses menyeluruh yang sama seperti yang dijelaskan sebelumnya dalam dokumen ini. Saat mengonfigurasi layanan backend, masukkan mask URL, bukan memilih layanan tertentu.
Jika sudah memiliki load balancer, Anda dapat mengedit konfigurasi backend dan mengarahkan NEG serverless ke masker URL, bukan layanan tertentu.
Untuk menambahkan NEG tanpa server berbasis mask URL ke layanan backend yang ada, lakukan tindakan berikut:
- Di konsol Google Cloud, buka halaman Load balancing.
Buka Load balancing - Klik nama load balancer yang memiliki layanan backend yang ingin Anda edit.
- Di halaman Detail load balancer, klik Edit.
- Di halaman Edit global external Application Load Balancer, klik Backend configuration.
- Di halaman Backend configuration, klik Edit untuk layanan backend yang ingin Anda ubah.
- Klik Add backend.
- Pilih Create Serverless network endpoint group.
- Untuk Name, masukkan
helloworld-serverless-neg
. - Di bagian Region, region load balancer akan ditampilkan.
- Di bagian Serverless network endpoint group type, Cloud Run adalah satu-satunya jenis grup endpoint jaringan yang didukung.
- Pilih Gunakan Masker URL.
- Masukkan masker URL. Untuk mengetahui informasi tentang cara membuat mask URL, lihat Membuat mask URL.
- Klik Create.
- Di Backend baru, klik Selesai.
- Klik Perbarui.
gcloud
Untuk membuat NEG tanpa server dengan contoh masker URL
example.com/<service>
:
gcloud compute network-endpoint-groups create SERVERLESS_NEG_MASK_NAME \ --region=REGION \ --network-endpoint-type=serverless \ --cloud-run-url-mask="example.com/<service>"
Menghapus NEG serverless
Grup endpoint jaringan tidak dapat dihapus jika dilampirkan ke layanan backend. Sebelum Anda menghapus NEG, pastikan NEG tersebut dilepaskan dari layanan backend.
Konsol
- Untuk memastikan NEG tanpa server yang ingin Anda hapus tidak
digunakan oleh layanan backend apa pun, buka tab Layanan backend di halaman
Komponen load balancing.
Buka Layanan backend - Jika NEG serverless sedang digunakan, lakukan hal berikut:
- Klik nama layanan backend yang menggunakan NEG tanpa server.
- Klik Edit.
- Dari daftar Backends, klik untuk menghapus backend NEG tanpa server dari layanan backend.
- Klik Simpan.
- Buka halaman Network endpoint group di konsol Google Cloud.
Buka Network endpoint group - Centang kotak untuk NEG serverless yang ingin Anda hapus.
- Klik Hapus.
- Klik Delete lagi untuk mengonfirmasi.
gcloud
Untuk menghapus NEG tanpa server dari layanan backend, Anda harus menentukan region tempat NEG dibuat.
gcloud compute backend-services remove-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=SERVERLESS_NEG_NAME \ --network-endpoint-group-region=REGION \ --region=REGION
Untuk menghapus NEG tanpa server:
gcloud compute network-endpoint-groups delete SERVERLESS_NEG_NAME \ --region=REGION
Langkah selanjutnya
- Menggunakan logging dan pemantauan
- Memecahkan masalah NEG tanpa server
- Membersihkan penyiapan load balancer
- Menggunakan modul Terraform untuk load balancer HTTPS eksternal dengan backend Cloud Run