Mengonfigurasi health check aktif untuk failover regional dengan PSC

Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee hybrid.

Lihat dokumentasi Apigee Edge.

Dokumen ini menjelaskan cara mengonfigurasi Apigee untuk mengonfigurasi health check aktif untuk kasus-kasus ketika Anda ingin menggunakan Private Service Connect (PSC) untuk perutean jaringan ke utara (traffic dari klien ke Apigee). Health check aktif berguna untuk mencegah hilangnya traffic jaringan jika terjadi kegagalan regional.

Ringkasan

Jika Anda berencana menggunakan PSC untuk perutean jaringan Apigee ke utara, ikuti petunjuk dalam dokumen ini untuk mengonfigurasi health check aktif. Saat ini, PSC tidak mendukung pemantauan health check aktif. Untuk mengatasi keterbatasan PSC ini, Anda dapat mengubah konfigurasi penginstalan Apigee untuk menggunakan grup instance terkelola (MIG), yang memang menyediakan kemampuan health check aktif.

Anda dapat menggunakan deteksi pencilan untuk pemantauan kondisi. Namun, selama kegagalan regional, Anda dapat kehilangan sejumlah traffic secara berkala karena deteksi pencilan menggunakan traffic real-time sebagai indikator. Deteksi pencilan mengalihkan sebagian traffic langsung secara berkala untuk memeriksa respons region yang gagal.

Gambar 1 menunjukkan arsitektur yang diusulkan. Endpoint layanan terhubung ke lampiran layanan di instance Apigee, dan traffic proxy MIG ke endpoint layanan. Anda mengaktifkan pemantauan health check di MIG.

Gambar 1. Arsitektur Apigee untuk health check aktif tanpa peering VPC.

Pendekatan health check berbasis MIG

Prasyarat

Anda dapat menerapkan teknik yang dijelaskan dalam dokumen ini ke penginstalan Apigee yang menggunakan peering VPC atau yang tidak menggunakan peering VPC. Namun, dalam kasus penginstalan yang di-peering VPC, teknik health check aktif yang dijelaskan di sini hanya berlaku jika Anda menggunakan PSC untuk konfigurasi pemilihan rute.

Sebelum melakukan langkah-langkah di bagian ini:

  • Untuk penginstalan peering non-VPC:
    1. Selesaikan Langkah penyediaan Apigee 1 hingga 6 untuk penginstalan berbasis langganan atau Bayar sesuai penggunaan. Saat ini, satu-satunya pilihan adalah melakukan langkah ini menggunakan antarmuka command line.
    2. Lewati Langkah 7: Konfigurasikan pemilihan rute, lalu lakukan langkah berikut.
  • Untuk penginstalan peering VPC yang menggunakan PSC untuk perutean:
    1. Selesaikan Langkah penyediaan Apigee 1 hingga 7 untuk penginstalan berbasis langganan atau penginstalan Bayar sesuai penggunaan. Saat ini, satu-satunya pilihan adalah melakukan langkah ini menggunakan antarmuka command line.
    2. Lewati Langkah 8: Konfigurasikan pemilihan rute, dan lakukan langkah berikut.

1. Mengonfigurasi endpoint layanan PSC untuk lampiran layanan Apigee

Pada langkah ini, Anda akan membuat PSC Service Endpoint yang mengarah ke lampiran layanan di instance Apigee:

  1. Dapatkan lampiran layanan dari instance Apigee yang Anda buat sebelumnya:
    curl -i -X GET -H "Authorization: Bearer $AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Dalam contoh output berikut, nilai serviceAttachment ditunjukkan dalam huruf tebal:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "host": "10.82.192.2",
          "port": "443",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-7-0-20220228-190814",
          "ipRange": "10.82.192.0/22,10.82.196.0/28",
          "consumerAcceptList": [
            "875609189304"
          ],
          "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1"
        }
      ]
    }
  2. Buat Endpoint Layanan PSC yang mengarah ke lampiran layanan yang Anda peroleh dari isi respons instance di langkah sebelumnya, seperti yang dijelaskan dalam Membuat endpoint Private Service Connect.

2. Mengonfigurasi MIG yang mengarah ke endpoint layanan

Pada langkah ini, Anda akan membuat MIG yang menjadi proxy traffic ke endpoint layanan. Kemudian, Anda dapat mengaktifkan health check aktif di MIG.

2A. Mengaktifkan Akses Google Pribadi untuk subnet jaringan VPC Anda

Untuk mengaktifkan Akses Google Pribadi untuk subnet jaringan VPC Anda, ikuti langkah-langkah yang tercantum dalam Mengaktifkan Akses Google Pribadi.

2 M Menetapkan variabel lingkungan

Petunjuk di bagian ini menggunakan variabel lingkungan untuk merujuk ke string yang berulang kali digunakan. Sebaiknya tetapkan hal ini sebelum melanjutkan:

MIG_NAME=YOUR_MIG_NAME  # A name you provide for the MIG
VPC_NAME=default       # If you are using a shared VPC, use the shared VPC name
VPC_SUBNET=default     # Private Google Access must be enabled for this subnet
REGION=RUNTIME_REGION        # The same region as your Apigee runtime instance
SERVICE_ENDPOINT_IP=YOUR_SERVICE_ENDPOINT_IP.  ## The endpoint IP of the service endpoint you just created

Anda akan menggunakan variabel ini beberapa kali selama proses yang tersisa. Jika Anda ingin mengonfigurasi beberapa region, buat variabel dengan nilai khusus untuk setiap wilayah.

2C. Membuat grup instance terkelola

Pada langkah ini, Anda akan membuat dan mengonfigurasi grup instance terkelola (MIG).

  1. Buat template instance dengan menjalankan perintah berikut.
    gcloud compute instance-templates create $MIG_NAME \
    --project $PROJECT_ID \
    --region $REGION \
    --network $VPC_NAME \
    --subnet $VPC_SUBNET \
    --tags=https-server,apigee-mig-proxy,gke-apigee-proxy \
    --machine-type e2-medium --image-family debian-12 \
    --image-project debian-cloud --boot-disk-size 20GB \
    --no-address \
    --metadata ENDPOINT=$SERVICE_ENDPOINT_IP,startup-script-url=gs://apigee-5g-saas/apigee-envoy-proxy-release/latest/conf/startup-script.sh

    Seperti yang dapat Anda lihat dari perintah ini, mesin berjenis e2-medium. Solusi ini menjalankan Debian 12 dan memiliki disk sebesar 20 GB. Skrip startup-script.sh mengonfigurasi MIG untuk merutekan traffic masuk dari load balancer ke instance Apigee.

  2. Buat grup instance terkelola dengan menjalankan perintah berikut:
    gcloud compute instance-groups managed create $MIG_NAME \
    --project $PROJECT_ID --base-instance-name apigee-mig \
    --size 2 --template $MIG_NAME --region $REGION
  3. Konfigurasikan penskalaan otomatis untuk grup dengan menjalankan perintah berikut:
    gcloud compute instance-groups managed set-autoscaling $MIG_NAME \
    --project $PROJECT_ID --region $REGION --max-num-replicas 3 \
    --target-cpu-utilization 0.75 --cool-down-period 90
  4. Tentukan port bernama dengan menjalankan perintah berikut:
    gcloud compute instance-groups managed set-named-ports $MIG_NAME \
    --project $PROJECT_ID --region $REGION --named-ports https:443

3. Mengonfigurasi load balancer dengan pemantauan health check

Pada langkah-langkah berikut, Anda akan mengonfigurasi load balancer dengan pemantauan health check.

3A. Membuat sertifikat dan kunci SSL untuk load balancer

Anda hanya perlu membuat kredensial satu kali, baik menginstal di satu maupun beberapa region. Pada langkah berikutnya, Anda akan mengaitkan kredensial ini dengan proxy HTTPS target load balancer.

Anda dapat membuat kredensial dengan:

Untuk mengetahui informasi selengkapnya tentang cara membuat dan menggunakan sertifikat SSL untuk load balancer Google Cloud, lihat Sertifikat SSL dan Ringkasan sertifikat SSL.

Pada contoh berikut, kami membuat sertifikat SSL yang dikelola Google:

  1. Buat variabel lingkungan berikut:
    CERTIFICATE_NAME=YOUR_CERT_NAME
    DOMAIN_HOSTNAME=YOUR_DOMAIN_HOSTNAME 

    Tetapkan DOMAIN_HOSTNAME ke nama host domain yang valid yang telah Anda daftarkan. Di langkah berikutnya, Anda akan mendapatkan alamat IP load balancer dan memperbarui data A domain agar mengarah ke alamat tersebut. Misalnya, nama host domain mungkin terlihat seperti ini: foo.example.com.

  2. Jalankan perintah gcloud compute ssl-certificates create:
    gcloud compute ssl-certificates create $CERTIFICATE_NAME \
    --domains=$DOMAIN_HOSTNAME \
    --project $PROJECT_ID \
    --global

    Diperlukan waktu hingga satu jam untuk penyediaan sertifikat. Untuk memeriksa status penyediaan, jalankan perintah ini:

    gcloud compute ssl-certificates describe $CERTIFICATE_NAME \
    --global \
    --format="get(name,managed.status, managed.Status)"

3 M Membuat health check

  1. Buat health check:
    gcloud compute health-checks create https HEALTH_CHECK_NAME \
    --project $PROJECT_ID --port 443 --global \
    --request-path /healthz/ingress

    Anda akan menggunakan health check ini untuk memastikan bahwa layanan backend sedang berjalan. Untuk mengonfigurasi health check lanjutan terhadap proxy tertentu, lihat Melakukan health check.

  2. Buat layanan backend:
    gcloud compute backend-services create PROXY_BACKEND_NAME \
    --project $PROJECT_ID \
    --protocol HTTPS \
    --health-checks HEALTH_CHECK_NAME \
    --port-name https \
    --timeout 302s \
    --connection-draining-timeout 300s \
    --global
  3. Tambahkan MIG ke layanan backend Anda dengan perintah berikut:
    gcloud compute backend-services add-backend PROXY_BACKEND_NAME \
    --project $PROJECT_ID --instance-group $MIG_NAME \
    --instance-group-region $REGION \
    --balancing-mode UTILIZATION --max-utilization 0.8 --global
  4. Buat peta URL load balancing dengan perintah berikut:
    gcloud compute url-maps create MIG_PROXY_MAP_NAME \
    --project $PROJECT_ID --default-service PROXY_BACKEND_NAME
  5. Buat proxy HTTPS target load balancing dengan perintah berikut:
    gcloud compute target-https-proxies create MIG_HTTPS_PROXY_NAME \
    --project $PROJECT_ID --url-map MIG_PROXY_MAP_NAME \
    --ssl-certificates $CERTIFICATE_NAME

3C. Mendapatkan alamat IP yang dicadangkan dan membuat aturan firewall

Anda harus menetapkan alamat IP ke load balancer, lalu membuat aturan yang memungkinkan load balancer mengakses MIG. Anda hanya perlu melakukan langkah ini sekali, baik menginstal di satu maupun beberapa region.

  1. Cadangkan alamat IP untuk load balancer:
    gcloud compute addresses create ADDRESSES_NAME \
    --project $PROJECT_ID \
    --ip-version=IPV4 \
    --global
  2. Buat aturan penerusan global dengan perintah berikut:
    gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --project $PROJECT_ID --address ADDRESSES_NAME --global \
    --target-https-proxy MIG_HTTPS_PROXY_NAME --ports 443
  3. Dapatkan alamat IP yang dicadangkan dengan menjalankan perintah berikut:
    gcloud compute addresses describe ADDRESSES_NAME \
    --project $PROJECT_ID --format="get(address)" --global
  4. Langkah penting: Buka situs, host DNS, atau ISP tempat data DNS Anda dikelola, dan pastikan data DNS domain Anda di-resolve ke alamat IP load balancer Google Cloud. Alamat ini adalah nilai IP yang ditampilkan di langkah terakhir. Untuk mengetahui detail selengkapnya, lihat Memperbarui data A dan AAAA DNS agar mengarah ke alamat IP load balancer.
  5. Buat aturan firewall yang memungkinkan load balancer mengakses MIG menggunakan perintah berikut:
    gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --description "Allow incoming from GLB on TCP port 443 to Apigee Proxy" \
    --project $PROJECT_ID --network $VPC_NAME --allow=tcp:443 \
    --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=gke-apigee-proxy

    Perlu diperhatikan bahwa rentang alamat IP 130.211.0.0/22 dan 35.191.0.0/16 adalah rentang alamat IP sumber untuk Google Load Balancing. Aturan firewall ini memungkinkan Google Cloud Load Balancing membuat permintaan health check ke MIG.

Penyediaan Apigee selesai. Buka Deploy a sample proxy.