Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.
Lihat dokumentasi Apigee Edge.
Dokumen ini menjelaskan cara menggunakan Private Service Connect (PSC) untuk membuat koneksi pribadi antara Apigee dan layanan target backend. Secara default, Anda dapat mengakses endpoint target secara global. Perhatikan bahwa traffic proxy API yang mengalir antara Apigee dan layanan target backend disebut sebagai traffic "selatan".
Langkah-langkah konfigurasi jaringan southbound yang dijelaskan dalam dokumen ini berlaku untuk instance Apigee yang di-peering VPC dan non-VPC. Namun, perlu diperhatikan bahwa peering DNS pribadi hanya didukung untuk instance Apigee yang melakukan peering VPC.
Menghubungkan Apigee secara pribadi ke target backend
Untuk menghubungkan Apigee secara pribadi ke target backend, Anda harus membuat dua entitas: lampiran layanan di jaringan VPC tempat target di-deploy dan lampiran endpoint di VPC Apigee. Kedua entitas ini memungkinkan Apigee terhubung ke layanan target.
Gambar 1 mengilustrasikan arsitektur jaringan Apigee yang mendukung akses global untuk koneksi southbound di beberapa wilayah:
Gambar 1: Arsitektur jaringan southbound Apigee.
Batasan
Di 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, 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 berjalan di jaringan VPC yang tidak di-peering langsung dengan Apigee. Langkah-langkah dalam contoh ini menggunakan panggilan gcloud
dan Apigee API untuk menyiapkan dan mengonfigurasi lampiran layanan di jaringan VPC tempat target di-deploy dan lampiran endpoint di VPC Apigee.
Contoh skenario
Contoh ini mempertimbangkan kasus saat Anda memiliki server web Apache yang di-deploy di Grup Instance Terkelola (MIG) yang berjalan di VPC. Agar dapat berkomunikasi dengan Apigee dalam konteks ini, kami mengekspos layanan melalui gateway masuk.
Menyiapkan load balancer
Siapkan load balancer di VPC tempat microservice yang ingin Anda ekspos berada:
- 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
- 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"
- Buat grup instance terkelola:
gcloud compute instance-groups managed create $BACKEND \ --project $PROJECT_ID --base-instance-name $BACKEND \ --size 1 --template $BACKEND --region $REGION
- 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
- Buat load balancer:
- 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
- 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
- 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
- Buat layanan backend:
Membuat lampiran layanan
Buat lampiran layanan PSC di jaringan VPC tempat layanan target di-deploy.
- Untuk melakukan tugas ini, Anda harus memiliki izin
compute.subnetworks.create
atau peran IAM Compute Network Admin (roles/compute.networkAdmin
). - Buat subnet PSC dengan parameter
purpose
ditetapkan kePRIVATE_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
- Buat lampiran layanan di jaringan VPC Anda:
- 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
- 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 berupa string yang terdiri dari 1-63 karakter, yang hanya berisi huruf kecil, angka, dan tanda hubung. Nama tidak boleh berisi angka dan tanda hubung awal. Selain itu, nama tidak boleh memiliki tanda hubung di akhir. Untuk deskripsi mendetail tentang 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.
- Dapatkan aturan penerusan dari
load balancer internal.
Anda akan menggunakan aturan ini di langkah berikutnya:
Membuat lampiran endpoint
Buat lampiran endpoint di organisasi Apigee. Anda dapat melakukan langkah ini dari command line 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 lampiran layanan, seperti yang dijelaskan sebelumnya dalam contoh ini. Untuk mengetahui informasi selengkapnya tentang mengekspos layanan dengan PSC, lihat Memublikasikan layanan terkelola menggunakan Private Service Connect. Perhatikan bahwa lampiran layanan harus dikonfigurasi untuk menerima koneksi baru.
Command line
Buat lampiran endpoint di VPC Apigee dari command line:
- Dapatkan resource lampiran layanan:
gcloud compute service-attachments list
Perintah ini 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
- Dapatkan token autentikasi untuk Apigee API:
TOKEN="$(gcloud auth print-access-token)"
- 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 lampiran endpoint lain dengan nama yang sama, dan Anda tidak dapat mengubah nama nanti. Nama harus dimulai 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 yang mirip dengan 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" } }
Sekarang Anda dapat menggunakan Alamat IP
7.0.3.4
yang ditampilkan dalam respons untuk terhubung ke layanan di balik lampiran layanan, seperti yang ditunjukkan pada langkah berikutnya. Perhatikan bahwa7.0.3.4
adalah IP publik yang digunakan secara pribadi (PUPI) yang ditetapkan oleh Apigee ke gateway masuk. Rentang ini tidak diiklankan di internet dan tidak ada layanan Google yang menggunakan IP dalam rentang ini secara internal. - REGION adalah region lampiran layanan. Contoh:
- 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:
- Di UI Apigee, buka Admin > Endpoint Attachments.
- Klik + Lampiran Endpoint. Dialog Lampiran endpoint akan muncul.
- Masukkan nama untuk lampiran endpoint. Nama harus unik. Tidak boleh ada lampiran endpoint lain dengan nama yang sama, dan Anda tidak dapat mengubah nama nanti. Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 31 huruf kecil, angka, atau tanda hubung, tetapi tidak boleh diakhiri dengan tanda hubung. Panjang minimumnya adalah 2.
- Klik Berikutnya.
- Dari menu drop-down Lampiran Layanan, pilih lampiran layanan yang akan dihubungkan.
Perilaku UI bergantung pada izin Anda. Jika memiliki izin untuk mencantumkan wilayah dan lampiran layanan, Anda cukup memilih lampiran layanan dari daftar dropdown. Jika Anda tidak memiliki izin untuk mencantumkan wilayah, daftar statis wilayah akan ditampilkan, dan Anda dapat memilih dari daftar tersebut. Jika tidak memiliki izin untuk mencantumkan lampiran layanan, Anda harus memasukkan namanya secara manual. berada dan nama lampiran layanan. Perhatikan bahwa jika Anda tidak memiliki izin untuk mencantumkan wilayah, daftar wilayah statis akan ditampilkan untuk Anda pilih.
- Verifikasi bahwa endpoint layanan dapat menerima koneksi. Untuk mengetahui langkah-langkahnya, lihat Memeriksa dan mengelola konektivitas lampiran.
- Klik Berikutnya.
- Klik Create. Operasi ini biasanya memerlukan waktu satu atau dua menit hingga selesai.
- Untuk memeriksa status pembuatan saat ini, klik Muat ulang di halaman daftar.
- Gunakan IP host lampiran layanan sebagai target proxy API.
IP host muncul di UI Lampiran Endpoint saat proses pembuatan selesai, seperti yang ditunjukkan
pada screenshot berikut:
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 lampiran endpoint di project Apigee Anda, dan cara mengubah preferensi koneksi jika Anda ingin mengubahnya.
- Ikuti langkah-langkah di Mencantumkan layanan yang dipublikasikan untuk melihat daftar lampiran layanan di project Anda.
- Pilih lampiran layanan yang ingin Anda hubungkan seperti yang dijelaskan dalam Melihat detail untuk layanan yang dipublikasikan.
- 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.
- Terima semua koneksi secara otomatis: Lampiran layanan menerima lampiran endpoint dari project mana pun. Jika Anda memilih opsi ini, lampiran layanan akan dapat menerima koneksi dari lampiran endpoint di project Apigee. Tidak diperlukan konfigurasi lebih lanjut.
- Terima koneksi dari project yang dipilih: Anda menentukan project tempat
lampiran layanan akan menerima koneksi. Jika memilih opsi ini, Anda harus menambahkan project ID project Apigee ke lampiran layanan. Anda dapat menemukan project ID Apigee di langkah Verifikasi koneksi project di UI Lampiran endpoint, seperti yang ditunjukkan dalam screenshot ini:
Anda juga dapat mengambil ID project Apigee menggunakan Apigee Organizations API, yang menampilkan ID di kolom bernama
apigeeProjectId
.
- Jika Anda melakukan perubahan pada preferensi koneksi, simpan perubahan tersebut.
- Di UI Apigee, buka Admin > Endpoint Attachments. Anda juga dapat mencantumkan lampiran endpoint dengan Apigee Endpoints API.
- Dalam daftar lampiran, pastikan Status Koneksi PSC sekarang adalah
ACCEPTED
. Jika kolom menampilkan status selainACCEPTED
, lihat Memecahkan masalah status koneksi PSC.
Mengelola lampiran endpoint
endpointAttachments 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 memanggil Apigee Endpoints API.
Untuk mencantumkan lampiran endpoint di UI Apigee:
- Di UI Apigee, buka Admin > Endpoint Attachments.
- Melihat 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:
- Di UI Apigee, buka Admin > Endpoint Attachments.
- Pilih Lampiran Endpoint yang akan dihapus.
- 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 untuk mengizinkan Apigee me-resolve nama di zona pribadi Anda. Secara default, zona pribadi bersifat pribadi untuk jaringan VPC tempat zona tersebut dihosting. Untuk mengetahui langkah-langkah mengonfigurasi peering DNS antara zona DNS pribadi dan Apigee (produser 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 adalah Aktif, tetapi status koneksi tidak Disetujui. Beberapa kemungkinan status koneksi ditunjukkan pada Gambar 2.
Gambar 2: Detail status lampiran endpoint
Status yang diberikan dapat membantu menunjukkan kemungkinan penyebabnya, seperti yang dijelaskan dalam tabel berikut:
Status koneksi | Kemungkinan penyebab | Solusi yang direkomendasikan |
---|---|---|
DIPERBOLEHKAN | Lampiran layanan telah menerima koneksi dari endpoint koneksi. | T/A |
TERTUNDA | Project ID Apigee mungkin tidak ada dalam daftar project yang diterima konsumen atau dalam daftar yang 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 ID project Apigee dari daftar penolakan konsumen dan tambahkan ke daftar penerimaan konsumen di 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 lampiran layanan, tetapi ada masalah dengan lampiran layanan. | Jelaskan lampiran layanan 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 target PSC southbound.