Mengakses layanan yang dipublikasikan melalui backend

Panduan ini menjelaskan cara mengonfigurasi Load Balancer Aplikasi eksternal global dengan backend Private Service Connect untuk mengakses layanan yang dipublikasikan menggunakan Private Service Connect.

Gambar 1. Dengan backend yang didasarkan pada Load Balancer Aplikasi eksternal global, konsumen layanan yang memiliki akses internet dapat mengirimkan traffic ke layanan di jaringan VPC produsen layanan (klik untuk memperbesar).

Untuk mengetahui informasi selengkapnya, lihat Tentang backend Private Service Connect.

Peran

Peran Admin Load Balancer Compute (roles/compute.loadBalancerAdmin) berisi izin yang diperlukan untuk melakukan tugas yang dijelaskan dalam panduan ini.

Sebelum memulai

  • Jika ingin memublikasikan layanan Anda sendiri, lihat Memublikasikan layanan menggunakan Private Service Connect.

  • Jika Anda menghubungkan layanan yang dipublikasikan oleh pihak ketiga, tanyakan informasi berikut kepada produsen layanan:

    • URI lampiran layanan untuk layanan yang ingin Anda hubungkan. Lampiran layanan memiliki format berikut: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • Persyaratan apa pun terkait nama DNS yang Anda gunakan untuk mengirim permintaan. Anda mungkin perlu menggunakan nama DNS tertentu pada konfigurasi peta URL atau konfigurasi DNS.

Membuat grup endpoint jaringan

Buat NEG Private Service Connect yang mengarah ke lampiran layanan untuk layanan yang dipublikasikan yang ingin Anda akses. Jika layanan yang dipublikasikan di-deploy di beberapa region yang berbeda, buat satu NEG per lampiran layanan.

Setiap NEG Private Service Connect menggunakan alamat IP /32 sehingga load balancer dapat berkomunikasi dengannya.

Konsol

  1. Di Konsol Google Cloud, buka halaman Network endpoint groups.

    Buka Network endpoint groups

  2. Klik Create network endpoint group.

  3. Masukkan Nama untuk grup endpoint jaringan.

  4. Untuk Network endpoint group type, pilih Network endpoint group (Private Service Connect).

  5. Pilih jenis target Published service.

  6. Untuk Target service, masukkan URI lampiran layanan.

  7. Pilih Network dan Subnet untuk membuat grup endpoint jaringan.

    Subnet harus berada di region yang sama dengan layanan yang dipublikasikan.

  8. Klik Create.

gcloud

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=TARGET_SERVICE \
    --region=REGION \
    --network=NETWORK \
    --subnet=SUBNET

Ganti kode berikut:

  • NEG_NAME: nama untuk grup endpoint jaringan.

  • TARGET_SERVICE: lampiran layanan yang ingin Anda hubungkan.

  • REGION: region tempat membuat grup endpoint jaringan. Region harus sama dengan region layanan target.

  • NETWORK: jaringan untuk membuat grup endpoint jaringan. Jika dihilangkan, jaringan default akan digunakan.

  • SUBNET: subnet untuk membuat grup endpoint jaringan. Subnet harus berada di region yang sama dengan layanan target. Subnet harus disediakan jika Anda menyediakan jaringan. Jika jaringan dan subnet dihilangkan, jaringan default akan digunakan, dan subnet default di REGION yang ditentukan akan digunakan.

Mencadangkan alamat IP eksternal untuk load balancer

Guna mencadangkan alamat IP eksternal untuk load balancer, ikuti langkah-langkah berikut.

Konsol

  1. Di Konsol Google Cloud, buka halaman IP addresses.

    Buka alamat IP

  2. Untuk mereservasi alamat IPv4, klik Reserve static address.

  3. Tetapkan Name untuk resource alamat IP.

  4. Tetapkan paket Jaringan ke Premium.

  5. Tetapkan IP version ke IPv4.

  6. Tetapkan Type ke Global.

  7. Klik Reserve.

gcloud

  1. Cadangkan alamat IPv4 eksternal global untuk load balancer.

    gcloud compute addresses create ADDRESS_NAME \
        --ip-version=IPV4 --global
    

    Ganti ADDRESS_NAME dengan nama untuk resource alamat IP.

  2. Jalankan perintah ini untuk melihat alamat IP yang dicadangkan:

    gcloud compute addresses describe ADDRESS_NAME \
      --format="get(address)" --global
    

Membuat resource sertifikat SSL

Untuk membuat load balancer HTTPS, Anda harus menambahkan resource sertifikat SSL ke front end load balancer. Buat resource sertifikat SSL menggunakan sertifikat SSL yang dikelola Google atau sertifikat SSL yang dikelola sendiri.

  • Sertifikat yang dikelola Google. Sebaiknya gunakan sertifikat yang dikelola Google karena Google Cloud memperoleh, mengelola, dan memperpanjang sertifikat ini secara otomatis. Untuk membuat sertifikat yang dikelola Google, Anda harus memiliki domain dan data DNS untuk domain tersebut guna menyediakan sertifikat. Jika belum memiliki domain, Anda bisa mendapatkannya dari Google Domains. Untuk mengetahui informasi selengkapnya, lihat Memulai Google Domains. Selain itu, Anda perlu memperbarui data A DNS domain agar mengarah ke alamat IP load balancer yang dibuat di langkah sebelumnya. Untuk mengetahui petunjuk selengkapnya, lihat Menggunakan sertifikat yang dikelola Google.

  • Sertifikat yang dikelola sendiri. Sertifikat SSL yang dikelola sendiri adalah sertifikat yang Anda peroleh, sediakan, dan perpanjang sendiri. Sertifikat yang dikelola sendiri dapat ditandatangani oleh certificate authority atau dapat ditandatangani sendiri. Jika sertifikat ini ditandatangani oleh certificate authority, Anda harus memiliki domain. Jika belum memiliki domain, Anda bisa mendapatkannya dari Google Domains. Untuk mengetahui informasi selengkapnya, lihat Memulai Google Domains. Selain itu, Anda perlu memperbarui data A DNS domain agar mengarah ke alamat IP load balancer yang dibuat di langkah sebelumnya. Untuk mengetahui petunjuk selengkapnya, lihat Menggunakan sertifikat SSL yang dikelola sendiri.

    Jika tidak ingin menyiapkan domain saat ini, Anda dapat menggunakan sertifikat SSL yang ditandatangani sendiri untuk pengujian.

Petunjuk ini mengasumsikan bahwa Anda telah membuat resource sertifikat SSL.

Mengonfigurasi load balancer

Konfigurasikan Load Balancer Aplikasi eksternal global dengan kemampuan pengelolaan traffic lanjutan (skema load balancing ditetapkan ke EXTERNAL_MANAGED) untuk terhubung ke layanan terkelola.

Jika Anda terhubung ke layanan yang dipublikasikan dan di-deploy di beberapa region, dan telah membuat beberapa NEG Private Service Connect agar terhubung ke setiap lampiran layanan, Anda dapat menambahkan semua NEG ke layanan backend.

Meskipun NEG Private Service Connect bersifat regional, semua komponen load balancing lain dalam konfigurasi ini bersifat global.

Konsol

Memulai konfigurasi Anda

  1. Di Konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Klik Create load balancer.
  3. Untuk Type of load balancer, pilih Application Load Balancer (HTTP/HTTPS) lalu klik Next.
  4. Untuk Public facing or internal, pilih Public facing (eksternal), lalu klik Next.
  5. Untuk Global or single region deployment, pilih Best for global Workload, lalu klik Next.
  6. Untuk Load balancer Generation, pilih Global external Application Load Balancer, lalu klik Next.
  7. Klik Konfigurasikan.

Konfigurasi dasar

  1. Masukkan Nama load balancer.
  2. Biarkan jendela tetap terbuka untuk melanjutkan.

Konfigurasi frontend

  1. Klik Frontend configuration.
  2. Klik Add Frontend IP and Port.
  3. Masukkan Nama untuk load balancer.
  4. Di kolom Protocol, pilih HTTPS (includes HTTP/2).
  5. Pastikan Port ditetapkan ke 443 untuk mengizinkan traffic HTTPS.
  6. Untuk Alamat IP, pilih alamat IP yang Anda cadangkan.

  7. Klik daftar Certificate, lalu pilih sertifikat yang telah Anda buat.

  8. Klik OK.

  9. Klik Done.

Konfigurasi backend

Grup endpoint jaringan Private Service Connect adalah jenis backend load balancer. Tambahkan semua NEG Private Service Connect untuk layanan terkelola yang sama ke layanan backend.

  1. Klik Backend configuration.
  2. Klik daftar Backend services & backend buckets, lalu klik Create a backend service.
  3. Masukkan Name untuk layanan backend.
  4. Tetapkan Backend type ke Private Service Connect network endpoint group.
  5. Di bagian Backends, klik daftar Private Service Connect network endpoint group, lalu pilih NEG Private Service Connect yang Anda buat. Klik Done.
  6. Jika Anda membuat lebih dari satu NEG Private Service Connect, klik Add backend untuk memilih NEG lain.

    Ulangi langkah ini hingga semua NEG untuk layanan terkelola ini ditambahkan ke layanan backend.

  7. Klik Create.

Aturan perutean

Karena konfigurasi ini hanya berisi satu layanan backend, aturan perutean default sudah memadai dan Anda tidak perlu melakukan perubahan apa pun di bagian ini.

Melakukan peninjauan dan penyelesaian

  1. Untuk meninjau konfigurasi, klik Review and finalize.
  2. Klik Create.

gcloud

  1. Buat layanan backend untuk layanan terkelola yang ingin Anda hubungkan.

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTPS \
        --global
    

    Ganti BACKEND_SERVICE_NAME dengan nama layanan backend.

  2. Tambahkan NEG Private Service Connect yang mengarah ke layanan target.

    Jika Anda telah membuat beberapa NEG di region yang berbeda untuk layanan yang sama, ulangi langkah ini untuk menambahkan semua NEG ke layanan backend.

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --network-endpoint-group=NEG_NAME \
      --network-endpoint-group-region=REGION \
      --global
    

    Ganti kode berikut:

    • BACKEND_SERVICE_NAME: nama layanan backend.
    • NEG_NAME: nama grup endpoint jaringan.
    • REGION: region grup endpoint jaringan.
  3. Buat peta URL untuk load balancer.

    Peta URL harus merujuk ke layanan backend default. Konfigurasikan layanan backend yang telah Anda buat sebagai layanan backend default.

    gcloud compute url-maps create URL_MAP_NAME \
      --default-service=BACKEND_SERVICE_NAME \
      --global
    

    Ganti kode berikut:

    • URL_MAP_NAME: nama untuk peta URL.

    • BACKEND_SERVICE_NAME: nama layanan backend default load balancer. Default akan digunakan jika tidak ada aturan host yang cocok dengan nama host yang diminta.

  4. Buat proxy HTTPS target.

    Gunakan resource sertifikat SSL yang Anda buat untuk membuat proxy HTTPS target.

    gcloud compute target-https-proxies create PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --ssl-certificates=CERTIFICATE
    

    Ganti kode berikut:

    • PROXY_NAME: nama untuk proxy HTTPS target.
    • URL_MAP_NAME: nama peta URL.
    • CERTIFICATE: nama resource sertifikat.
  5. Buat aturan penerusan.

    gcloud compute forwarding-rules create FWD_RULE \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --address=ADDRESS_NAME \
        --target-https-proxy=PROXY_NAME \
        --ports=443 \
        --global
    

    Ganti kode berikut:

    • FWD_RULE: nama untuk aturan penerusan.

    • ADDRESS_NAME: resource alamat IP yang Anda cadangkan untuk digunakan bagi aturan penerusan.

    • PROXY_NAME: nama proxy HTTPS target.

Mengonfigurasi data DNS

Jika Anda ingin mengakses backend Private Service Connect menggunakan nama DNS, buat nama DNS untuk setiap aturan penerusan eksternal. Data DNS harus sesuai dengan nama di peta URL. Kecuali jika peta URL Anda menulis ulang nama, data DNS juga harus sesuai dengan nama yang diharapkan oleh layanan produsen.

Jika Anda menggunakan Cloud DNS untuk mengelola DNS, lihat menambahkan data DNS.

Memverifikasi konfigurasi

  1. Buat instance VM.

    gcloud compute instances create VM_NAME \
        --network=NETWORK \
        --image-project=debian-cloud --image-family=debian-11 \
        --zone=ZONE
    

    Ganti kode berikut:

    • VM_NAME: nama untuk virtual machine.

    • NETWORK: jaringan untuk VM.

    • ZONE: zona untuk VM.

  2. Hubungkan ke VM.

    gcloud compute ssh VM_NAME --zone=ZONE
    
  3. Gunakan curl untuk memverifikasi konfigurasi. Perintah ini menetapkan header Host dan mengabaikan resolusi DNS dengan menentukan alamat IP yang ditentukan pengguna. Anda dapat menghapus port jika menggunakan port default untuk protokol, misalnya, menggunakan port 443 untuk HTTPS.

    Anda dapat melewati validasi sertifikat menggunakan flag -k. Anda mungkin perlu melewatkan validasi jika menggunakan sertifikat yang ditandatangani sendiri untuk mengonfigurasi proxy HTTPS target, atau jika VM tidak memiliki sertifikat certificate authority yang menandatangani sertifikat Anda.

    curl [-k] -s 'https://HOST:443/RESOURCE_URI' \
        -H 'Host: HOST' \
        --connect-to HOST:443:FWD_RULE_IP_ADDRESS:443
    

    Ganti kode berikut:

    • HOST: nama host yang dikonfigurasi di peta URL.

    • RESOURCE_URI: sisa URI resource yang ingin Anda gunakan untuk verifikasi.

    • FWD_RULE_IP_ADDRESS: alamat IP yang ditetapkan ke aturan penerusan.

Pemecahan masalah

Pembuatan backend berhasil, tetapi konektivitas tidak terhubung

Jika Anda berhasil membuat backend untuk layanan yang dipublikasikan, tetapi konektivitas tidak terbentuk, periksa status koneksi backend. Status koneksi mungkin menunjukkan langkah-langkah yang dapat Anda lakukan untuk menyelesaikan masalah.