Panduan ini menggunakan contoh untuk menjelaskan dasar-dasar penggunaan backend eksternal (terkadang disebut origin kustom) di Load Balancer Aplikasi eksternal. Backend eksternal adalah endpoint di luar Google Cloud. Saat menggunakan backend eksternal dengan Load Balancer Aplikasi eksternal, Anda dapat meningkatkan performa dengan menggunakan caching Cloud CDN.
Panduan ini menjelaskan langkah-langkah untuk mengonfigurasi sebuah Load Balancer Aplikasi eksternal global dengan layanan backend yang Cloud CDN-nya diaktifkan dan melakukan proxy ke server backend eksternal di backend.example.com.
Dalam contoh ini, load balancer menerima permintaan HTTPS dari klien dan membuat proxy permintaan tersebut sebagai HTTPS ke backend eksternal. Contoh ini mengasumsikan bahwa backend eksternal mendukung HTTPS.
Opsi lainnya adalah mengonfigurasi load balancer untuk menerima permintaan HTTP atau HTTPS, dan menggunakan HTTPS saat melakukan proxy permintaan ke backend eksternal.
Panduan ini mengasumsikan bahwa Anda telah menyiapkan load balancer dan Anda sedang menambahkan backend eksternal baru. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan Load Balancer Aplikasi klasik dengan backend grup instance terkelola.
Gambar 1 menunjukkan contoh arsitektur.
Dalam diagram, www.example.com memiliki frontend load balancer dengan alamat IP 120.1.1.1. Jika terjadi cache tidak ditemukan, permintaan pengguna untuk
/cart/id/1223515 akan diambil dari backend eksternal melalui HTTPS. Semua
traffic masuk lainnya diarahkan ke layanan backend Google Cloud dengan VM Compute Engine atau ke bucket backend, berdasarkan peta URL.
Sebelum memulai
Sebelum mengikuti panduan ini, pahami hal-hal berikut:
Ringkasan grup endpoint jaringan internet, yang mencakup batasan.
Izin
Untuk mengikuti panduan ini, Anda perlu membuat grup endpoint jaringan (NEG) internet dan membuat atau mengubah Load Balancer Aplikasi eksternal dalam sebuah project. Anda harus menjadi pemilik atau editor project, atau Anda harus memiliki peran IAM Compute Engine berikut:
| Tugas | Peran yang diperlukan |
|---|---|
| Membuat dan mengubah komponen load balancer | Network Admin |
| Membuat dan mengubah NEG | Compute Instance Admin |
Mengonfigurasi load balancer dengan backend eksternal
Bagian ini menunjukkan cara mengonfigurasi dan menguji NEG internet.
Ringkasan penyiapan
Menyiapkan NEG internet melibatkan langkah-langkah berikut:
- Menentukan endpoint internet di NEG internet.
- Menambahkan NEG internet sebagai backend ke layanan backend.
- Menentukan traffic pengguna mana yang akan dipetakan ke layanan backend ini dengan mengonfigurasi peta URL Load Balancer Aplikasi eksternal Anda.
- Memasukkan rentang IP yang diperlukan ke dalam daftar yang diizinkan.
Contoh ini membuat resource berikut:
- Aturan penerusan dengan alamat IP
120.1.1.1mengarahkan permintaan masuk ke proxy target. networkTieraturan penerusan harusPREMIUM.- Proxy target membandingkan tiap permintaan dengan peta URL guna menentukan layanan backend yang sesuai untuk permintaan tersebut.
- Untuk backend eksternal, proxy target harus berupa
TargetHttpProxyatauTargetHttpsProxy. Contoh ini menggunakanTargetHttpsProxy. - Cloud CDN diaktifkan (opsional) di layanan backend memungkinkan penyimpanan cache dan penyajian respons dari cache Cloud CDN.
- Contoh ini mencakup
header
kustom, yang diperlukan saat backend eksternal mengharapkan
nilai tertentu untuk header
Hostpermintaan HTTP.
Penyiapannya akan terlihat seperti berikut.
Membuat NEG dan endpoint internet
Konsol
- Di konsol Google Cloud , buka halaman Network endpoint groups.
- Klik Create network endpoint group.
- Masukkan nama grup endpoint jaringan:
example-fqdn-neg. - Untuk Network endpoint group type, pilih Network endpoint group (Internet).
- Untuk Default port, masukkan
443. - Untuk New network endpoint, pilih Fully qualified domain name and port.
- Untuk FQDN, masukkan
backend.example.com. - Untuk Port type, pilih Default, dan pastikan Port number adalah
443. - Klik Create.
gcloud
Buat NEG internet, dan tetapkan
--network-endpoint-typekeinternet-fqdn-port(nama host dan port tempat backend eksternal Anda dapat dijangkau):gcloud compute network-endpoint-groups create example-fqdn-neg \ --network-endpoint-type="internet-fqdn-port" --globalTambahkan endpoint Anda ke NEG. Jika port tidak ditentukan, pemilihan port akan ditetapkan secara default ke port
80(HTTP) atau443(HTTPS; HTTP/2), bergantung pada protokol yang dikonfigurasi di layanan backend. Pastikan untuk menyertakan flag--global:gcloud compute network-endpoint-groups update example-fqdn-neg \ --add-endpoint="fqdn=backend.example.com,port=443" \ --globalCantumkan NEG internet yang dibuat:
gcloud compute network-endpoint-groups list --global
Output:
NAME LOCATION ENDPOINT_TYPE SIZE example-fqdn-neg global INTERNET_FQDN_PORT 1
Cantumkan endpoint dalam NEG tersebut:
gcloud compute network-endpoint-groups list-network-endpoints example-fqdn-neg \ --globalOutput:
INSTANCE IP_ADDRESS PORT FQDN backend.example.com
Menambahkan backend eksternal ke load balancer
Contoh berikut memperbarui load balancer yang ada.
Di load balancer yang ada, layanan default adalah layanan Google Cloud. Contoh ini mengubah peta URL yang ada dengan menambahkan pencocok jalur yang mengirim semua permintaan untuk cart/id/1223515 ke layanan backend images, yang terkait dengan NEG internet.
Konsol
Membuat layanan backend dan menambahkan NEG internet
- Di konsol Google Cloud , buka halaman Load balancing.
- Untuk menambahkan layanan backend ke load balancer yang ada, pilih Load Balancer Aplikasi klasik Anda, klik Menu, lalu pilih Edit.
- Klik Backend configuration.
- Di menu Backend services & backend buckets, pilih Create a backend service.
- Tetapkan name layanan backend menjadi
images. - Untuk Backend type, pilih Internet network endpoint group.
- Pilih protokol yang akan Anda gunakan dari load balancer ke NEG internet. Untuk contoh ini, pilih HTTPS.
- Di bagian New backend > Internet network endpoint group, pilih
example-fqdn-neg, lalu klik Done. - Pilih Enable Cloud CDN.
- Opsional: Ubah setelan cache mode dan TTL.
- Di Advanced configurations, di bagian Custom request headers,
klik Add header.
- Untuk Header name, masukkan
Host. - Untuk Header value, masukkan
backend.example.com.
- Untuk Header name, masukkan
- Klik Create.
- Biarkan jendela tetap terbuka untuk melanjutkan.
Melampirkan layanan backend ke peta URL yang ada
- Klik Host and path rules.
- Baris pertama atau beberapa baris pertama memiliki layanan Google Cloud di kolom
kanan, dan salah satunya sudah diisi dengan aturan default
Any unmatched (default)untuk Hosts dan Paths. - Pastikan ada baris dengan
imagesyang dipilih di kolom kanan. Jika tidak ada, klik Add host and path rule, lalu pilihimages. Isi kolom lainnya sebagai berikut:- Di Hosts, masukkan
*. - Di Paths, masukkan
/cart/id/1223515.
- Di Hosts, masukkan
Meninjau dan menyelesaikan
- Klik Review and finalize.
- Bandingkan setelan Anda dengan yang ingin Anda buat.
- Jika semuanya sudah benar, klik Update.
gcloud
Buat layanan backend baru untuk NEG:
gcloud compute backend-services create images \ --global \ --enable-cdn \ --cache-mode=CACHE_MODE \ --protocol=HTTP2
Tetapkan mode cache dengan mengganti CACHE_MODE dengan salah satu dari berikut ini:
CACHE_ALL_STATIC: otomatis meng-cache konten statis.USE_ORIGIN_HEADERS(default): mewajibkan origin untuk menyetel header caching yang valid agar dapat meng-cache konten.FORCE_CACHE_ALL: meng-cache semua konten, dengan mengabaikan semua perintahprivate,no-store, atauno-cachedi header responsCache-Control.
Konfigurasi layanan backend untuk menambahkan header permintaan kustom
Host: backend.example.comke permintaan:gcloud compute backend-services update images \ --custom-request-header "Host: backend.example.com" --global
Gunakan perintah
backend-services add-backenduntuk menambahkan NEG internet ke layanan backend:gcloud compute backend-services add-backend images \ --network-endpoint-group "example-fqdn-neg" \ --global-network-endpoint-group \ --global
Lampirkan layanan backend baru ke peta URL load balancer dengan membuat aturan pencocokan baru untuk mengarahkan permintaan ke backend tersebut:
gcloud compute url-maps add-path-matcher EXAMPLE_URL_MAP \ --default-service=GCP_SERVICE_EXAMPLE \ --path-matcher-name=CUSTOM_ORIGIN_PATH_MATCHER_EXAMPLE \ --backend-service-path-rules=/CART/ID/1223515=IMAGES
Ganti kode berikut:
EXAMPLE_URL_MAP: nama peta URL yang adaGCP_SERVICE_EXAMPLE: nama layanan backend default yang adaCUSTOM_ORIGIN_PATH_MATCHER_EXAMPLE: nama aturan jalur baru ini/CART/ID/1223515: jalurIMAGES: nama layanan backend baru dengan NEG internet terlampir
Memasukkan rentang IP yang diperlukan ke daftar yang diizinkan
Untuk mengizinkan Load Balancer Aplikasi eksternal mengirim permintaan ke NEG internet Anda, Anda harus
meng-kueri data TXT DNS _cloud-eoips.googleusercontent.com menggunakan alat
seperti dig atau nslookup.
Contohnya, jalankan perintah dig berikut ini:
dig TXT _cloud-eoips.googleusercontent.com | grep -Eo 'ip4:[^ ]+' | cut -d':' -f2
Outputnya berisi dua rentang IP, sebagai berikut:
34.96.0.0/20
34.127.192.0/18
Catat rentang IP dan pastikan rentang ini diizinkan oleh firewall atau daftar kontrol akses (ACL) cloud Anda.
Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi permintaan.
Menghubungkan domain ke load balancer
Setelah load balancer dibuat, catat alamat IP yang terkait dengan
load balancer, misalnya, 30.90.80.100. Untuk mengarahkan domain ke
load balancer, buat data A menggunakan layanan pendaftaran domain. Jika
Anda menambahkan beberapa domain ke sertifikat SSL, Anda harus menambahkan data A
untuk setiap domain, yang semuanya mengarah ke alamat IP load balancer. Misalnya, untuk
membuat data A bagi www.example.com dan example.com, gunakan string berikut:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Jika Anda menggunakan Cloud DNS sebagai penyedia DNS, lihat Menambahkan, mengubah, dan menghapus data.
Menguji Load Balancer Aplikasi eksternal
Setelah mengonfigurasi load balancer, Anda dapat mulai mengirimkan traffic ke alamat IP load balancer. Jika mengonfigurasi domain, Anda juga dapat mengirim traffic ke nama domain tersebut. Namun, propagasi DNS memerlukan waktu untuk selesai, jadi Anda dapat memulai dengan menggunakan alamat IP untuk pengujian.
Di konsol Google Cloud , buka halaman Load balancing.
Klik load balancer yang baru saja dibuat.
Catat alamat IP load balancer.
Jika Anda membuat load balancer HTTP, Anda dapat menguji load balancer dengan menggunakan browser web di
http://IP_ADDRESS. GantiIP_ADDRESSdengan alamat IP load balancer. Anda akan diarahkan ke halaman beranda layananhelloworld.Jika Anda membuat load balancer HTTPS, Anda dapat menguji load balancer menggunakan browser web di
https://IP_ADDRESS. GantiIP_ADDRESSdengan alamat IP load balancer. Anda akan diarahkan ke halaman beranda layananhelloworld.Jika tidak berhasil dan Anda menggunakan sertifikat yang dikelola Google, pastikan status resource sertifikat Anda adalah ACTIVE. Untuk mengetahui informasi selengkapnya, lihat Status resource sertifikat SSL yang dikelola Google.
Atau, Anda dapat menggunakan
curldari command line komputer lokal Anda. GantiIP_ADDRESSdengan alamat IPv4 load balancer.Jika Anda menggunakan sertifikat yang dikelola Google, uji domain yang mengarah ke alamat IP load balancer. Contoh:
curl -s 'https://www.example.com:443' --resolve www.example.com:443:IP_ADDRESS
Opsional: Jika Anda menggunakan domain kustom, Anda mungkin perlu menunggu hingga setelan DNS yang diperbarui diterapkan. Kemudian, uji domain Anda (misalnya,
backend.example.com) di browser web.Untuk mendapatkan bantuan terkait pemecahan masalah, lihat Memecahkan masalah backend eksternal dan NEG internet.
Menonaktifkan Cloud CDN
Konsol
Di konsol Google Cloud , buka halaman Load balancing.
Klik nama load balancer yang ingin Anda ubah.
Klik Edit.
Klik Backend configuration.
Untuk layanan backend dengan backend NEG internet, klik Edit.
Hapus centang pada kotak Enable Cloud CDN.
Untuk meninjau perubahan Anda, klik Review and finalize, lalu klik Update.
gcloud
gcloud compute backend-services update BACKEND_SERVICE_NAME \
--no-enable-cdn
Menonaktifkan Cloud CDN tidak akan membatalkan atau menghapus cache. Jika Anda menonaktifkan Cloud CDN lalu mengaktifkannya kembali, sebagian besar atau semua konten yang di-cache mungkin masih di-cache. Untuk mencegah konten digunakan oleh cache, Anda harus menginvalidasi konten tersebut.
Langkah berikutnya
- Untuk memeriksa apakah Cloud CDN menyajikan respons dari cache, lihat Log dan metrik untuk caching.
- Untuk mempelajari konten mana yang dapat di-cache atau tidak dapat di-cache, lihat Ringkasan caching.
- Untuk menemukan titik kehadiran GFE, lihat Lokasi cache.