Pola jaringan arah selatan

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

Lihat Dokumentasi Apigee Edge.

Dokumen ini menjelaskan cara menggunakan Pribadi Service Connect (PSC) untuk membuat koneksi pribadi antara Apigee dan layanan target backend. Secara {i>default<i}, Anda dapat mengakses endpoint target secara global. Perhatikan bahwa proxy API traffic yang mengalir antara Apigee dan layanan target backend disebut sebagai "ke Selatan" kemacetan.

Langkah-langkah konfigurasi jaringan selatan yang dijelaskan dalam dokumen ini berlaku untuk jaringan VPC-peering dan instance Apigee yang di-peering non-VPC. Namun, perlu diketahui bahwa peering DNS pribadi hanya didukung untuk instance Apigee yang di-peering VPC.

Menghubungkan Apigee ke target backend secara pribadi

Untuk menghubungkan Apigee secara pribadi ke target backend, Anda harus membuat dua entity: lampiran layanan di jaringan VPC tempat target di-deploy dan lampiran endpoint di VPC Apigee. Ini dua entity memungkinkan Apigee terhubung ke layanan target.

Gambar 1 mengilustrasikan arsitektur jaringan Apigee yang mendukung akses global untuk arah selatan koneksi di beberapa region:

Gambar 1: Arsitektur jaringan Apigee yang mengarah ke selatan.

Batasan

Dalam organisasi Apigee, satu lampiran endpoint diizinkan untuk lampiran layanan tertentu. Misalnya, Anda memiliki 10 lampiran layanan yang mengekspos layanan target. Anda dapat membuat 10 lampiran endpoint di organisasi Apigee Anda, satu untuk setiap lampiran layanan.

Contoh: Mengekspos layanan target ke Apigee

Contoh ini menunjukkan cara menggunakan PSC untuk memungkinkan Apigee berkomunikasi dengan layanan target yang sedang berjalan di jaringan VPC yang tidak di-peering langsung dengan Apigee. Langkah-langkah dalam contoh ini menggunakan gcloud dan panggilan Apigee API untuk menyiapkan dan mengonfigurasi lampiran layanan di jaringan VPC target di-deploy beserta lampiran endpoint di VPC Apigee.

Contoh skenario

Contoh ini mempertimbangkan kasus ketika Anda memiliki server web Apache yang di-deploy di Grup Instance Terkelola (MIG) yang berjalan di VPC Anda. Agar dapat berkomunikasi dengan Apigee dalam konteks ini, kami mengekspos layanan melalui atau gateway masuk.

Menyiapkan load balancer

Menyiapkan load balancer di VPC tempat microservice yang ingin diekspos berada di:

  1. Buat variabel lingkungan berikut:
    export PROJECT_ID=YOUR_PROJECT_ID
    export IMAGE_PROJECT=debian-cloud
    export IMAGE_FAMILY=debian-12
    export BACKEND=foo
    export REGION=us-west1
    export ZONE=us-west1-a
    export NETWORK=default
    export SUBNET_NAME=default
  2. Buat template instance:
    gcloud compute instance-templates create "$BACKEND" \
        --tags=psc-demo,http-server,https-server \
        --image-family "$IMAGE_FAMILY" --image-project "$IMAGE_PROJECT" \
        --network "$NETWORK" --subnet "$SUBNET_NAME" --region "$REGION" \
        --project "$PROJECT_ID" \
        --metadata startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>foo[/]: '\`/bin/hostname\`'</h1></body></html>' | sudo tee /var/www/html/index.html
        sudo mkdir /var/www/html/foo
        echo '<!doctype html><html><body><h1>foo[/foo]: '\`/bin/hostname\`'</h1></body></html>' | sudo tee /var/www/html/foo/index.html"
  3. Buat grup instance terkelola:
    gcloud compute instance-groups managed create $BACKEND \
        --project $PROJECT_ID --base-instance-name $BACKEND \
        --size 1 --template $BACKEND --region $REGION
  4. Buat health check:
    gcloud compute instance-groups managed set-named-ports $BACKEND \
        --project $PROJECT_ID --region $REGION --named-ports http:80
    gcloud compute health-checks create tcp hc-tcp-$BACKEND \
      --region=$REGION \
      --description="health check for psc backend" \
      --port-name=http --project=$PROJECT_ID
  5. Buat load balancer:
    1. Buat layanan backend:
      gcloud compute backend-services create be-ilb \
          --load-balancing-scheme=internal \
          --protocol=tcp \
          --region=$REGION \
          --network=$NETWORK \
          --health-checks=hc-tcp-$BACKEND \
          --health-checks-region=$REGION \
          --project=$PROJECT_ID
    2. Tambahkan grup instance terkelola ke layanan backend:
      gcloud compute backend-services add-backend be-ilb \
          --region=$REGION \
          --instance-group=$BACKEND \
          --instance-group-zone=$ZONE \
          --project=$PROJECT_ID
      
    3. Buat aturan penerusan:
      gcloud compute forwarding-rules create fr-ilb \
          --region=$REGION \
          --load-balancing-scheme=internal \
          --network=$NETWORK \
          --subnet=$SUBNET_NAME \
          --ip-protocol=TCP \
          --ports=80 \
          --backend-service=be-ilb \
          --backend-service-region=$REGION \
          --project=$PROJECT_ID

Membuat lampiran layanan

Buat lampiran layanan PSC di jaringan VPC tempat layanan target di-deploy.

  1. Untuk melakukan tugas ini, Anda harus memiliki compute.subnetworks.create atau Admin Jaringan Compute Peran IAM (roles/compute.networkAdmin).
  2. Buat subnet PSC dengan parameter purpose yang ditetapkan ke PRIVATE_SERVICE_CONNECT:
    gcloud compute networks subnets create PSC_SUBNET_NAME \
      --network NETWORK --region=REGION --purpose=PRIVATE_SERVICE_CONNECT --range=RANGE
    gcloud compute --project=$PROJECT_ID firewall-rules create allow-psc-nat-80 \
      --direction=INGRESS --priority=1000 --network NETWORK --action=ALLOW --rules=tcp:80
      --source-ranges=RANGE --target-tags=psc-demo

    Untuk mengetahui deskripsi mendetail tentang parameter perintah, lihat referensi Google Cloud CLI. Anda juga dapat melakukan langkah ini di Konsol atau dengan API.

    Contoh:

    gcloud compute networks subnets create psc-subnet --network default \
    --region=us-west1 --purpose=PRIVATE_SERVICE_CONNECT --range=10.100.0.0/28
  3. Buat lampiran layanan di jaringan VPC Anda:
    1. Dapatkan aturan penerusan dari load balancer internal. Anda akan menggunakan aturan ini di langkah berikutnya:
      gcloud compute forwarding-rules list --project=PROJECT_ID

      Dengan PROJECT_ID sebagai project ID Google Cloud. Contoh:

      gcloud compute forwarding-rules list --project=my-project
      NAME                                                  REGION    IP_ADDRESS    IP_PROTOCOL  TARGET
      k8s2-tcp-e61tta3j-apps-istio-ingressgateway-0kl92frk  us-west1  10.138.0.53   TCP
      
    2. Buat lampiran layanan:
      gcloud compute service-attachments create PSC_NAME \
          --region=REGION --producer-forwarding-rule=PRODUCER_FORWARDING_RULE \
          --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=PSC_SUBNET_NAME --project=PROJECT_ID

      Parameter NAME harus terdiri dari string dengan 1-63 karakter, yang hanya terdiri dari huruf kecil, angka, dan tanda hubung. URL tidak boleh memiliki awalan angka dan tanda hubung. Selain itu, teks tidak boleh memiliki tanda hubung di akhir. Untuk deskripsi mendetail parameter untuk perintah ini, lihat Referensi Google Cloud CLI.

      Contoh:

      gcloud compute service-attachments create gkebackend \
          --region=us-west1 --producer-forwarding-rule=k8s2-tcp-e62tta1j-apps-istio-ingressgateway-0kl92frk \
          --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=psc-subnet --project=my-project

      Anda juga dapat melakukan langkah ini di UI Konsol. Lihat, misalnya, Memublikasikan layanan dengan persetujuan project otomatis.

Membuat lampiran endpoint

Buat lampiran endpoint di organisasi Apigee. Anda dapat melakukan langkah ini dari baris perintah atau UI lampiran Endpoint Apigee.

Prasyarat: Sebelum membuat lampiran endpoint, Anda harus memublikasikan layanan yang ingin diekspos menggunakan Private Service Connect (PSC) dengan membuat load balancer dan layanan lampiran, seperti yang dijelaskan sebelumnya dalam contoh ini. Untuk informasi selengkapnya tentang mengekspos layanan dengan PSC, lihat Memublikasikan layanan terkelola menggunakan Pribadi Connect Service Connect. Perhatikan bahwa lampiran layanan harus dikonfigurasi untuk menerima koneksi baru.

Command line

Buat lampiran endpoint di VPC Apigee dari command line:

  1. Dapatkan resource lampiran layanan:
    gcloud compute service-attachments list

    Perintah tersebut akan menampilkan informasi lampiran layanan. Anda akan menggunakan informasi ini di langkah berikutnya. Contoh:

    NAME       REGION   TARGET_SERVICE                                       CONNECTION_PREFERENCE
    gkebackend us-west1 k8s2-tcp-tgysilgj-apps-istio-ingressgateway-fzdhwstg ACCEPT_AUTOMATIC
  2. Dapatkan token autentikasi untuk Apigee API:
    TOKEN="$(gcloud auth print-access-token)"
  3. Gunakan Apigee API ini untuk membuat lampiran endpoint. Gunakan nilai yang ditampilkan dari Perintah gcloud compute service-attachments list dalam isi permintaan:
    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type:application/json" \
    "https://apigee.googleapis.com/v1/organizations/ORGANIZATION/endpointAttachments?endpointAttachmentId=EA_NAME" \
    -d '{
        "location": "REGION",
        "serviceAttachment": "projects/PROJECT_ID/regions/REGION/serviceAttachments/SA_NAME"
    }'

    Dengan keterangan:

    • REGION adalah region lampiran layanan. Contoh: us-west1
    • ORGANIZATION adalah nama organisasi Apigee Anda.
    • PROJECT_ID adalah project Google Cloud tempat lampiran layanan dibuat.
    • EA_NAME adalah nama lampiran endpoint. Nama harus unik. Tidak boleh ada endpoint lain lampiran dengan nama yang sama, dan Anda tidak dapat mengubah namanya di lain waktu. Nama harus diawali dengan huruf kecil, diikuti dengan maksimal 31 huruf kecil, angka, atau tanda hubung, tetapi tidak boleh diakhiri dengan tanda hubung. Panjang minimumnya adalah 2.
    • SA_NAME adalah nama lampiran layanan.

    Apigee memulai operasi yang berjalan lama. Setelah operasi selesai, Anda akan melihat respons mirip dengan contoh berikut ini:

    {
      "name": "organizations/my-organization/operations/6e249895-e78e-48f0-a28f-7140e15e1676",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/my-organization/endpointAttachments/gkebackend",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.EndpointAttachment",
        "name": "organizations/my-organization/endpointAttachments/gkebackend",
        "location": "us-west1",
        "host": "7.0.3.4",
        "serviceAttachment": "projects/my-project/regions/us-west1/serviceAttachments/gkebackend"
      }
    }

    Anda sekarang dapat menggunakan Alamat IP 7.0.3.4 yang ditampilkan sebagai respons untuk menghubungkan ke layanan di belakang lampiran layanan, seperti yang ditunjukkan pada langkah berikutnya. Perhatikan bahwa 7.0.3.4 adalah IP publik yang digunakan secara pribadi (PUPI) yang ditetapkan oleh Apigee ke gateway masuk. Penting tidak diiklankan di internet dan tidak ada layanan Google yang menggunakan IP dalam rentang ini secara internal.

  4. Gunakan IP host lampiran layanan sebagai target proxy API. Contoh:
    <TargetEndpoint name="default">
        <HTTPTargetConnection>
            <URL>http://7.0.3.4/orders</URL>
        </HTTPTargetConnection>
    </TargetEndpoint>

UI Apigee

Buat lampiran endpoint di organisasi Apigee di UI Apigee:

  1. Di UI Apigee, buka Admin > Lampiran Endpoint.
  2. Klik + Lampiran Endpoint. Dialog lampiran Endpoint akan muncul.
  3. Masukkan nama untuk lampiran endpoint. Nama harus unik. Tidak boleh ada endpoint lain lampiran dengan nama yang sama, dan Anda tidak dapat mengubah namanya di lain waktu. Nama harus diawali dengan huruf kecil, diikuti dengan maksimal 31 huruf kecil, angka, atau tanda hubung, tetapi tidak boleh diakhiri dengan tanda hubung. Panjang minimumnya adalah 2.
  4. Klik Next.
  5. Dari daftar dropdown Service Lampiran, pilih lampiran layanan yang akan dihubungkan.

    Perilaku UI bergantung pada izin Anda. Jika Anda memiliki izin untuk mencantumkan region dan lampiran layanan, Anda cukup memilih lampiran layanan dari daftar dropdown. Jika Anda tidak memiliki izin untuk mencantumkan region, daftar statis wilayah akan ditunjukkan, dan Anda dapat memilih dari daftar. Jika Anda tidak memiliki izin untuk mencantumkan layanan lampiran, Anda harus memasukkan namanya secara manual. terletak dan nama lampiran layanan. Perhatikan bahwa jika Anda tidak memiliki izin untuk mencantumkan wilayah, daftar wilayah statis akan ditampilkan untuk Anda pilih.

    Lokasi project ID Apigee diperlukan untuk konfigurasi lampiran layanan.

  6. Pastikan endpoint layanan dapat menerima koneksi. Untuk mengetahui langkah-langkahnya, lihat Memeriksa dan mengelola konektivitas lampiran.
  7. Klik Next.
  8. Klik Create. Operasi biasanya dapat diselesaikan dalam satu atau dua menit.
  9. Untuk memeriksa status pembuatan saat ini, klik Muat ulang di halaman daftar.
  10. Gunakan IP host lampiran layanan sebagai target proxy API. IP host akan muncul di UI Lampiran Endpoint saat proses pembuatan selesai, seperti yang ditunjukkan dalam screenshot berikut:

    IP host lampiran layanan ditampilkan di UI lampiran Endpoint

    Contoh:
    <TargetEndpoint name="default">
        <HTTPTargetConnection>
            <URL>http://7.0.5.2/orders</URL>
        </HTTPTargetConnection>
    </TargetEndpoint>

Memeriksa dan mengelola konektivitas lampiran

Bagian ini menjelaskan cara memverifikasi bahwa lampiran layanan dapat mengakses endpoint lampiran di project Apigee, dan cara mengubah preferensi koneksi jika ingin mengubahnya.

  1. Ikuti langkah-langkah di Menampilkan daftar layanan yang dipublikasikan untuk melihat daftar lampiran layanan di project Anda.
  2. Pilih lampiran layanan yang ingin Anda hubungkan, seperti yang dijelaskan di Lihat detail untuk layanan yang dipublikasikan.
  3. Pilih preferensi koneksi untuk lampiran layanan yang dipublikasikan. Private Service Connect menawarkan dua opsi yang dijelaskan di bawah. Jika Anda ingin mengubah preferensi koneksi saat ini, ikuti langkah-langkah di Mengubah preferensi koneksi untuk layanan yang dipublikasikan.
    • Otomatis terima semua koneksi: Lampiran layanan menerima lampiran endpoint dari proyek apa pun. Jika Anda memilih opsi ini, lampiran layanan dapat menerima koneksi dari lampiran endpoint di project Apigee. Tidak ada konfigurasi lebih lanjut yang tidak diperlukan.
    • Accept connection from selected projects: Anda menentukan project tempat project lampiran layanan akan menerima koneksi. Jika Anda memilih opsi ini, Anda harus menambahkan project ID dari project Apigee ke lampiran layanan. Anda dapat menemukan project ID Apigee di langkah Verifikasi koneksi project di UI Lampiran endpoint, seperti yang ditunjukkan di sini {i>screenshot<i} (tangkapan layar):

      Lokasi project ID Apigee diperlukan untuk konfigurasi lampiran layanan.

      Anda juga dapat mengambil project ID Apigee menggunakan Apigee Organisasi API, yang menampilkan ID di kolom bernama apigeeProjectId.

  4. Jika Anda melakukan perubahan pada preferensi koneksi, simpan perubahan tersebut.
  5. Di UI Apigee, buka Admin > Lampiran Endpoint. Anda juga dapat mencantumkan lampiran endpoint dengan Apigee Endpoints API.
  6. Dalam daftar lampiran, verifikasi Status Koneksi PSC sekarang adalah ACCEPTED. Jika kolom menampilkan status daripada ACCEPTED, lihat Memecahkan masalah status koneksi PSC.

Mengelola lampiran endpoint

endpointLampiran API Apigee menyediakan metode untuk membuat, menghapus, mendapatkan, dan mencantumkan lampiran endpoint.

Mencantumkan lampiran endpoint

Anda dapat melihat daftar lampiran endpoint di UI lampiran Endpoint Apigee atau dengan dengan memanggil Apigee Endpoints API.

Untuk mencantumkan lampiran endpoint di UI Apigee:

  1. Di UI Apigee, buka Admin > Lampiran Endpoint.
  2. Lihat daftar lampiran endpoint.

Membuat lampiran endpoint

Untuk membuat lampiran endpoint di UI atau dengan Apigee Endpoints API, lihat Membuat lampiran endpoint.

Menghapus lampiran endpoint

Untuk menghapus endpoint menggunakan UI Apigee:

  1. Di UI Apigee, buka Admin > Lampiran Endpoint.
  2. Pilih Lampiran Endpoint yang akan dihapus.
  3. Klik Hapus Lampiran Endpoint.

Anda juga dapat menggunakan Apigee Endpoints API untuk mencantumkan, membuat, dan menghapus lampiran endpoint.

Peering DNS pribadi

Jika memiliki zona pribadi Cloud DNS yang dihosting di project Cloud yang di-peering dengan Apigee, Anda dapat mengonfigurasi peering DNS agar Apigee dapat me-resolve nama di zona pribadi Anda. Secara default, zona pribadi bersifat pribadi untuk jaringan VPC tempat zona tersebut yang dihosting. Untuk langkah-langkah konfigurasi Peering DNS antara zona DNS pribadi dan Apigee (produsen layanan), lihat Berbagi zona DNS pribadi dengan produsen layanan.

Pemecahan masalah

Masalah status koneksi PSC

Bagian ini menjelaskan kemungkinan solusi saat lampiran endpoint telah disediakan dan statusnya Aktif, tetapi koneksinya status tidak Diterima. Beberapa kemungkinan status koneksi ditunjukkan pada Gambar 2.

Gambar 2: Detail status lampiran endpoint

Status yang diberikan dapat membantu menunjukkan kemungkinan penyebab, seperti dijelaskan dalam tabel berikut:

Status koneksi Kemungkinan penyebab Solusi yang direkomendasikan
DITERIMA Lampiran layanan telah menerima koneksi dari endpoint koneksi. T/A
TERTUNDA ID project Apigee mungkin tidak ada dalam daftar project yang diterima konsumen atau pun dalam daftar ditolak. Tambahkan project ID Apigee ke daftar penerimaan konsumen di lampiran layanan. Lihat Mengubah preferensi koneksi untuk layanan yang dipublikasikan.
DITOLAK ID project Apigee ada dalam daftar penolakan konsumen. Hapus Project ID Apigee dari daftar tolak konsumen dan menambahkannya ke penerimaan konsumen pada lampiran layanan. Lihat Mengelola permintaan akses ke layanan yang dipublikasikan.
FROZEN Lampiran layanan untuk lampiran endpoint ini telah ditangguhkan atau dinonaktifkan. Jelaskan lampiran layanan untuk mengetahui detailnya. Lihat Melihat detail untuk layanan yang dipublikasikan.
DITUTUP Lampiran layanan untuk lampiran endpoint ini telah dihapus. Buat ulang lampiran layanan dan lampiran endpoint.
NEEDS_ATTENTION Lampiran endpoint telah diterima oleh layanan lampiran, tetapi ada masalah dengan lampiran layanan. Deskripsikan layanan lampiran untuk mengetahui detail selengkapnya. Lihat Melihat detail untuk layanan yang dipublikasikan.
TIDAK TERSEDIA Status konektivitas tidak tersedia, yang dapat terjadi selama penyediaan. Tunggu beberapa menit untuk melihat apakah statusnya berubah.

Konfigurasi PSC dengan Apigee

Lihat Playbook masalah konektivitas Apigee dengan playbook target PSC arah selatan.