Mengakses Google API lokasi melalui backend

Panduan ini menjelaskan cara mengonfigurasi Load Balancer Aplikasi internal dengan backend Private Service Connect untuk mengakses Google API berdasarkan lokasi.

Untuk informasi lebih lanjut tentang backend, lihat Tentang backend.

Load Balancer Aplikasi internal yang digunakan untuk Private Service Connect dapat dijangkau dari jaringan VPC Bersama dan dari jaringan yang terhubung.

Peran

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

Layanan yang didukung

Lihat daftar endpoint layanan lokasi yang didukung.

Sebelum memulai

  • Aktifkan Compute Engine API di project Anda.

  • Jika ingin mendaftarkan aturan penerusan load balancing dengan Direktori Layanan, enable Service Directory API di project Anda. Untuk mengonfigurasi Direktori Layanan, Anda harus membuat aturan penerusan dengan menggunakan Google Cloud CLI atau API.

  • Buat subnet khusus proxy jika Anda belum memilikinya. Harus ada satu subnet khusus proxy di jaringan dan region VPC tempat Anda ingin membuat Load Balancer Aplikasi internal. Subnet ini digunakan oleh semua Load Balancer Aplikasi internal dalam jaringan dan region tersebut.

  • Jika Anda belum memilikinya, buat kunci pribadi dan sertifikat yang dikelola sendiri untuk domain Anda. Lihat langkah 1 menggunakan sertifikat SSL yang dikelola sendiri. Anda memerlukan kunci pribadi dan sertifikat untuk membuat proxy HTTPS target saat mengonfigurasi load balancer.

Membuat grup endpoint jaringan

Untuk setiap layanan yang ingin Anda sediakan menggunakan load balancer, buat grup endpoint jaringan (NEG) Private Service Connect.

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 Region untuk grup endpoint jaringan.

  6. Pilih Target service untuk grup endpoint jaringan.

  7. Klik Create.

gcloud

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

Ganti kode berikut:

  • NEG_NAME: nama untuk grup endpoint jaringan.

  • TARGET_SERVICE: layanan target yang ingin Anda hubungkan. Lihat daftar endpoint layanan lokasi yang didukung.

  • REGION: region tempat membuat grup endpoint jaringan. Region harus sama dengan region yang ingin Anda hubungkan.

Mengonfigurasi load balancer

Semua komponen load balancer harus dibuat di region yang sama dengan grup endpoint jaringan Private Service Connect.

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 Terhadap publik atau internal, pilih Internal, lalu klik Berikutnya.
  5. Untuk Cross-region or single region deployment, pilih Best for regional working, lalu klik Next.
  6. Klik Konfigurasikan.

Konfigurasi dasar

  1. Masukkan Nama untuk load balancer.
  2. Pilih Region untuk load balancer.
  3. Pilih Network untuk load balancer.

    Jaringan harus berisi subnet khusus proxy di region tempat Anda membuat NEG dan load balancer. Jika tidak memilikinya, Anda dapat mengklik Reserve subnet untuk membuatnya.

  4. Biarkan jendela tetap terbuka untuk melanjutkan.

Konfigurasi backend

Grup endpoint jaringan Private Service Connect adalah jenis backend load balancer. Anda membuat layanan backend untuk setiap backend yang ingin dikonfigurasi.

  1. Klik Backend configuration.
  2. Untuk setiap grup endpoint jaringan Private Service Connect yang ingin Anda konfigurasi, buat layanan backend.

    1. Dari menu Create or select backend services, pilih Create a backend service.
    2. Masukkan Nama untuk layanan backend.
    3. Tetapkan Backend type ke Private Service Connect network endpoint group.
    4. Pilih HTTPS untuk protokol.

      Setelan Named port tidak digunakan untuk konfigurasi load balancer ini. Biarkan setelan named port tetap default.

    5. Di bagian Backends, klik menu New backend, lalu pilih grup endpoint jaringan Private Service Connect.

      Jika Anda perlu membuat grup endpoint jaringan Private Service Connect baru, klik Create Private Service Connect network endpoint.

Aturan perutean

Kumpulan aturan untuk merutekan permintaan HTTPS yang masuk ke layanan backend atau bucket backend tertentu disebut peta URL. Untuk mempelajari peta URL lebih lanjut, lihat Ringkasan peta URL.

Jika Anda hanya mengonfigurasi satu layanan backend untuk load balancer, aturan perutean default sudah cukup, dan Anda dapat langsung menuju ke Frontend configuration.

  1. Jika Anda memiliki lebih dari satu layanan backend, klik Routing rules.
  2. Pilih Simple host and path rule.
  3. Untuk setiap backend, lakukan hal berikut:
    1. Tambahkan host dan aturan jalur.
    2. Untuk Host, masukkan nama host yang akan digunakan untuk mengirim permintaan ke layanan ini—misalnya, cloudkms.example.com.
    3. Untuk Path, masukkan jalur—misalnya, /*.
    4. Untuk Backends, pilih layanan backend.

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 (termasuk HTTP/2).
  5. Pilih Subnetwork untuk load balancer.
  6. Pastikan Port ditetapkan ke 443 untuk mengizinkan traffic HTTPS.
  7. Untuk IP address, pilih alamat IP dari menu.

    Jika ingin mencadangkan alamat IP baru, klik Create IP address.

  8. Klik menu drop-down Certificate.

    1. Jika Anda memiliki resource sertifikat SSL yang dikelola sendiri yang ingin digunakan, pilih resource tersebut dari menu.
    2. Jika tidak, pilih Create a new certificate.
    3. Masukkan Nama untuk resource sertifikat.
    4. Di kolom yang sesuai, upload file berformat PEM:
      • Certificate
      • Private key
    5. Klik Create.
  9. Klik Done.

Tinjau dan selesaikan

  1. Klik Review and finalize untuk meninjau konfigurasi.
  2. Klik Create.

gcloud

  1. Untuk setiap grup endpoint jaringan yang telah Anda buat, buat layanan backend.

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --protocol=HTTPS \
     --region=REGION
    

    Ganti kode berikut:

    • BACKEND_SERVICE_NAME: nama layanan backend.
    • REGION: region tempat membuat layanan backend.
  2. Untuk setiap layanan backend yang telah Anda buat, tambahkan NEG yang sesuai ke layanan backend.

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

    Ganti kode berikut:

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

    Peta URL harus merujuk ke layanan backend default. Jika Anda mengonfigurasi load balancer dengan satu layanan backend, tetapkan layanan backend tersebut sebagai default. Jika Anda mengonfigurasi load balancer untuk menggunakan beberapa layanan backend, yang direferensikan oleh aturan host dan pencocok jalur yang Anda buat pada langkah berikutnya, pilih salah satu layanan backend sebagai default peta URL.

    gcloud compute url-maps create URL_MAP_NAME \
     --default-service=DEFAULT_BACKEND_SERVICE_NAME \
     --region=REGION
    

    Ganti kode berikut:

    • URL_MAP_NAME: nama untuk peta URL.

    • DEFAULT_BACKEND_SERVICE_NAME: nama default load balancer. Default digunakan jika tidak ada aturan host yang cocok dengan nama host yang diminta.

    • REGION: wilayah untuk membuat peta URL.

  4. Tambahkan layanan backend tambahan ke peta URL.

    Jika peta URL Anda perlu mereferensikan dua layanan backend atau lebih, selesaikan langkah-langkah berikut. Jika peta URL Anda hanya mereferensikan satu layanan backend, lewati langkah ini.

    1. Untuk setiap layanan backend, tambahkan pencocok jalur. Anda harus membuat satu pencocok jalur untuk setiap layanan backend.
    gcloud compute url-maps add-path-matcher URL_MAP_NAME \
     --path-matcher-name=PATH_MATCHER \
     --default-service=BACKEND_SERVICE_NAME \
     --region=REGION
    

    Ganti kode berikut:

    • URL_MAP_NAME: nama peta URL.
    • PATH_MATCHER: nama untuk pencocok jalur.
    • BACKEND_SERVICE_NAME: nama layanan backend.
    • REGION: region peta URL.
    1. Untuk setiap nama host, tambahkan aturan host.

      Setiap aturan host hanya dapat mereferensikan satu pencocok jalur, tetapi dua atau beberapa aturan host dapat merujuk pada pencocok jalur yang sama.

      gcloud compute url-maps add-host-rule URL_MAP_NAME \
      --hosts=HOST \
      --path-matcher-name=PATH_MATCHER \
      --region=REGION
      

      Ganti kode berikut:

      • URL_MAP_NAME: nama peta URL.
      • HOST: nama host yang akan dikirimi permintaan untuk layanan ini. Contoh, cloudkms.example.com.
      • PATH_MATCHER: nama pencocok jalur.
      • REGION: region peta URL.
  5. Membuat proxy HTTPS target.

    Buat resource sertifikat SSL regional menggunakan perintah gcloud compute ssl-certificates create. Sertifikat yang dikelola Google tidak didukung dengan Load Balancer Aplikasi internal.

    gcloud compute ssl-certificates create CERTIFICATE \
     --certificate=LB_CERT \
     --private-key=LB_PRIVATE_KEY \
     --region=REGION
    

    Ganti kode berikut:

    • CERTIFICATE: nama untuk sertifikat.

    • LB_CERT: jalur ke file sertifikat berformat PEM untuk sertifikat yang dikelola sendiri.

    • LB_PRIVATE_KEY: jalur ke file kunci pribadi berformat PEM untuk sertifikat yang dikelola sendiri.

    • REGION: region untuk sertifikat.

    Gunakan resource sertifikat SSL regional untuk membuat proxy HTTPS target dengan perintah gcloud compute target-https-proxies create.

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

    Ganti kode berikut:

    • PROXY_NAME: nama untuk proxy HTTPS target.
    • URL_MAP_NAME: nama peta URL.
    • REGION: region untuk resource sertifikat.
    • CERTIFICATE: nama resource sertifikat.
  6. Cadangkan alamat IPv4 internal regional untuk aturan penerusan.

    gcloud compute addresses create ADDRESS_NAME \
     --ip-version=IPV4 \
     --region=REGION \
     --subnet=SUBNETWORK
    

    Ganti kode berikut:

    • ADDRESS_NAME: nama untuk resource alamat IP.
    • REGION: region untuk membuat alamat IP.
    • SUBNET: subnet untuk membuat alamat IP.

    Jalankan perintah ini untuk melihat alamat IP yang dicadangkan. Setelah membuat load balancer, Anda dapat menggunakan alamat IP untuk memverifikasi konfigurasi.

    gcloud compute addresses describe ADDRESS_NAME \
     --format="get(address)" --region=REGION
    
  7. Membuat aturan penerusan.

    Buat aturan penerusan menggunakan perintah gcloud compute forwarding-rules create.

    gcloud compute forwarding-rules create FWD_RULE \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network=NETWORK \
     --address=ADDRESS_NAME \
     --ports=443 \
     --region=REGION \
     --target-https-proxy=PROXY_NAME \
     --target-https-proxy-region=PROXY_REGION \
     [--service-directory-registration=SD_SERVICE_NAME]
    

    Ganti kode berikut:

    • FWD_RULE: nama untuk aturan penerusan.

    • NETWORK: jaringan untuk membuat aturan penerusan.

    • ADDRESS_NAME: alamat IP yang dicadangkan.

    • REGION: region untuk aturan penerusan.

    • PROXY_NAME: nama proxy HTTPS target.

    • PROXY_REGION: region proxy HTTPS target.

    • SD_SERVICE_NAME: URI layanan Direktori Layanan tempat Anda ingin mendaftarkan load balancer, dalam format ini: projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME. Penentuan --service-directory-registration bersifat opsional.

Mengonfigurasi data DNS

Konfigurasikan data DNS untuk setiap host yang Anda tambahkan ke peta URL, yang mengarah ke alamat IP aturan penerusan. Jika Anda menggunakan Cloud DNS untuk mengelola DNS, baca bagian menambahkan data DNS. Jika tidak, konfigurasikan data DNS di server DNS Anda.

Misalnya, Anda telah mengonfigurasi backend dengan hal berikut:

  • NEG Private Service Connect yang menggunakan layanan target asia-east1-cloudkms.googleapis.com.

  • Load Balancer Aplikasi internal yang menggunakan NEG Private Service Connect tersebut sebagai backend.

  • Peta URL yang menentukan aturan host untuk cloudkms.example.com.

Agar konfigurasi ini berfungsi dengan benar, buat data DNS yang mengarahkan cloudkms.example.com ke alamat IP aturan penerusan.

Setiap permintaan yang dikirim ke cloudkms.example.com akan dikirim ke load balancer, yang akan meneruskan permintaan ke asia-east1-cloudkms.googleapis.com.

Memverifikasi konfigurasi

  1. Buat instance VM.

    gcloud compute instances create VM_NAME \
       --network=NETWORK \
       --image-project=debian-cloud --image-family=debian-9 \
       --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 menghindari 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.

    Jika perlu, Anda dapat melewati validasi sertifikat menggunakan flag -k. Anda mungkin perlu melewati 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. Misalnya, jika load balancer meneruskan permintaan ke endpoint lokasi Cloud Key Management Service, Anda dapat menggunakan v1/projects/<var>PROJECT_ID</var>/locations.

    • FWD_RULE_IP_ADDRESS: alamat IP yang ditetapkan ke resource alamat IP yang dicadangkan, ADDRESS_NAME, yang digunakan dalam konfigurasi aturan penerusan.

Mengakses backend dari host lokal

Jika jaringan lokal Anda terhubung ke jaringan VPC, Anda dapat mengirim traffic ke backend Private Service Connect.

  • Jaringan lokal Anda harus terhubung ke jaringan VPC yang berisi Load Balancer Aplikasi internal Anda menggunakan tunnel Cloud VPN atau lampiran VLAN di region yang sama dengan Load Balancer Aplikasi internal.

  • Jaringan lokal harus memiliki rute yang sesuai ke Load Balancer Aplikasi internal Anda. Pastikan setiap Cloud Router yang mengelola sesi BGP untuk tunnel Cloud VPN atau lampiran VLAN telah dikonfigurasi untuk memberitahukan rentang alamat IP utama subnet yang digunakan oleh aturan penerusan Load Balancer Aplikasi internal Anda. Cloud Router memberi tahu rute subnet secara default.

  • Anda harus mengonfigurasi sistem lokal agar nama host di peta URL Load Balancer Aplikasi internal Anda menghasilkan alamat IP aturan penerusan Load Balancer Aplikasi internal. Anda dapat membuat data DNS di server nama lokal atau menggunakan Cloud DNS.

    Jika Anda telah membuat data DNS menggunakan zona pribadi yang dikelola Cloud DNS, selesaikan langkah-langkah berikut:

    • Buat kebijakan server masuk di jaringan VPC yang terhubung dengan jaringan lokal Anda.

    • Identifikasi titik entri forwarder masuk, di region tempat tunnel Cloud VPN dan lampiran VLAN Anda berada, di jaringan VPC tempat infrastruktur lokal koneksi jaringan.

    • Konfigurasikan server nama DNS lokal guna meneruskan permintaan DNS untuk nama host di peta URL ke titik entri forwarder masuk Cloud DNS.

Gambar 1. Dengan mengonfigurasi Private Service Connect, Cloud Router, dan host lokal, Anda dapat terhubung ke Google API dan layanan Google menggunakan backend regional.