Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.
Lihat dokumentasi Apigee Edge.
Dokumen ini menjelaskan cara mengonfigurasi host Virtual Private Cloud (VPC) Bersama dan melampirkan project layanan target backend dan Apigee yang terpisah ke host tersebut. Jaringan VPC bersama memungkinkan Anda menerapkan infrastruktur jaringan yang dikelola secara terpusat dengan Google Cloud. Anda dapat menggunakan satu jaringan VPC dalam project host untuk menghubungkan resource dari beberapa project layanan.
Manfaat VPC Bersama
Runtime Apigee (berjalan di VPC yang dikelola Google) di-peering dengan VPC yang Anda miliki. Dalam topologi ini, endpoint runtime Apigee dapat berkomunikasi dengan jaringan VPC Anda, seperti yang ditunjukkan dalam diagram berikut:
Lihat juga ringkasan arsitektur Apigee.
Dalam banyak skenario, topologi yang dijelaskan di atas terlalu sederhana, karena jaringan VPC adalah bagian dari satu project Google Cloud, dan banyak organisasi ingin mengikuti praktik terbaik untuk hierarki resource dan memisahkan infrastruktur mereka menjadi beberapa project. Bayangkan topologi jaringan tempat kita memiliki project tenant Apigee yang di-peering ke jaringan VPC seperti sebelumnya, tetapi memiliki backend internal yang terletak di VPC project lain. Seperti yang ditunjukkan dalam diagram ini:
Jika Anda melakukan peering VPC Apigee ke VPC Backend, seperti yang ditunjukkan dalam diagram, backend dapat dijangkau dari jaringan VPC Apigee dan sebaliknya, karena peering jaringan bersifat simetris. Namun, project tenant Apigee hanya dapat berkomunikasi dengan VPC Apigee, karena peering tidak bersifat transitif, seperti yang dijelaskan dalam dokumentasi peering VPC. Agar dapat berfungsi, Anda dapat men-deploy proxy tambahan di VPC Apigee untuk meneruskan traffic melalui link peering ke VPC backend; namun, pendekatan ini menambahkan overhead dan pemeliharaan operasional tambahan.
VPC Bersama menawarkan solusi untuk masalah yang dijelaskan di atas. VPC Bersama memungkinkan Anda membuat konektivitas antara runtime dan backend Apigee yang berada di project Google Cloud lain di organisasi yang sama tanpa komponen jaringan tambahan.
Mengonfigurasi VPC Bersama dengan Apigee
Bagian ini menjelaskan cara melampirkan project layanan VPC Apigee ke host VPC Bersama. Subnet yang ditentukan dalam project host dibagikan dengan project layanan. Di bagian selanjutnya, kami akan menjelaskan cara membuat subnet kedua untuk layanan backend yang di-deploy di project layanan VPC kedua. Diagram berikut menunjukkan arsitektur yang dihasilkan:
Apigee menyediakan skrip penyediaan untuk menyederhanakan pembuatan topologi yang diperlukan. Ikuti langkah-langkah di bagian ini untuk mendownload dan menggunakan skrip penyediaan guna menyiapkan Apigee dengan VPC Bersama.
Prasyarat
- Tinjau konsep yang dibahas dalam Ringkasan VPC Bersama. Anda harus memahami konsep project host dan project layanan.
- Buat project Google Cloud baru yang dapat Anda konfigurasi untuk VPC Bersama. Project ini adalah project host. Lihat Membuat dan mengelola project.
- Ikuti langkah-langkah di Penyediaan VPC Bersama untuk menyediakan project untuk VPC Bersama. Anda harus menjadi admin organisasi atau diberi peran Identity and Access Management (IAM) administratif yang sesuai untuk mengaktifkan project host untuk VPC Bersama.
- Buat project Google Cloud kedua. Project ini adalah project layanan. Kemudian, Anda akan melampirkan project tersebut ke project host.
Mendownload skrip
Apigee menyediakan skrip penyediaan untuk menyederhanakan pembuatan topologi yang diperlukan. Anda perlu mengambil skrip dari GitHub:
- Clone project GitHub yang berisi skrip:
git clone https://github.com/apigee/devrel.git
- Buka direktori berikut dalam project:
cd devrel/tools/apigee-x-trial-provision
- Tetapkan variabel lingkungan berikut:
export HOST_PROJECT=HOST_PROJECT_ID
export SERVICE_PROJECT=SERVICE_PROJECT_ID
Dengan keterangan:
HOST_PROJECT_ID
adalah project ID project host VPC Bersama yang Anda buat sebagai salah satu prasyarat.SERVICE_PROJECT_ID
adalah project ID project layanan Google Cloud yang Anda buat di prasyarat.
Mengonfigurasi project host
- Tetapkan variabel lingkungan berikut:
YOUR_SHARED_VPC
adalah nama jaringan VPC Bersama Anda.YOUR_SHARED_SUBNET
adalah nama subnet VPC Bersama Anda.CIDR_BLOCK
adalah blok CIDR untuk VPC Apigee. Contoh:10.111.0.0/23
.- Untuk mengonfigurasi peering dan firewall VPC Apigee, jalankan skrip dengan opsi berikut:
./apigee-x-trial-provision.sh \ -p $HOST_PROJECT --shared-vpc-host-config --peering-cidr $PEERING_CIDR
Skrip mengonfigurasi project host; output Anda akan terlihat seperti berikut, dengan
NETWORK
danSUBNET
mewakili jalur yang sepenuhnya memenuhi syarat dalam project host:export NETWORK=projects/$HOST_PROJECT/global/networks/$NETWORK
export SUBNET=projects/$HOST_PROJECT/regions/us-west1/subnetworks/$SUBNET
- Ekspor variabel yang ditampilkan dalam output.
export NETWORK=YOUR_SHARED_VPCexport SUBNET=YOUR_SHARED_SUBNET
export PEERING_CIDR=CIDR_BLOCK
Dengan keterangan:
Mengonfigurasi project layanan
Pada langkah ini, Anda akan mengonfigurasi project layanan. Setelah selesai, skrip akan membuat dan men-deploy contoh proxy API di lingkungan Apigee yang dapat Anda gunakan untuk menguji penyediaan.
- Jalankan skrip
apigee-x-trial-provision.sh
untuk kedua kalinya guna menyediakan project layanan dengan setelan jaringan bersama:./apigee-x-trial-provision.sh \ -p $SERVICE_PROJECT
Skrip ini membuat proxy contoh di lingkungan Apigee dan mencetak perintah curl ke
STDOUT
yang dapat Anda panggil untuk menguji penyediaan. - Panggil proxy API pengujian. Contoh:
curl -v https://10-111-111-111.nip.io/hello-world
Mengonfigurasi project layanan lain untuk layanan backend
Praktik terbaiknya adalah memisahkan infrastruktur Google Cloud Anda menjadi beberapa project. Lihat Menentukan hierarki resource untuk zona landing Google Cloud Anda. Bagian ini menjelaskan cara men-deploy layanan backend di project layanan terpisah dan melampirkan ke host VPC bersama. Apigee dapat menggunakan layanan backend sebagai target proxy API karena project layanan Apigee dan project layanan backend dilampirkan ke host VPC Bersama.
Prasyarat
Untuk melakukan langkah-langkah ini, kami mengasumsikan bahwa Anda telah menyiapkan dan membagikan VPC Bersama dengan project layanan backend, seperti yang dijelaskan dalam Menyiapkan VPC Bersama.
Mengonfigurasi project layanan
Di bagian ini, Anda akan menguji layanan backend di subnet VPC bersama lainnya, membuat subnet kedua di project host, dan menggunakan alamat IP RFC1918 pribadinya sebagai URL target untuk proxy Apigee API Anda.
- Dari dalam project layanan backend, jalankan perintah berikut untuk melihat semua
subnet bersama yang tersedia:
gcloud compute networks subnets list-usable --project $HOST_PROJECT --format yaml
Contoh output:
ipCidrRange: 10.0.0.0/20 network: https://www.googleapis.com/compute/v1/projects/my-svpc-hub/global/networks/hub-vpc subnetwork: https://www.googleapis.com/compute/v1/projects/my-svpc-hub/regions/europe-west1/subnetworks/sub1
- Buat variabel lingkungan berikut:
BACKEND_SERVICE_PROJECT=PROJECT_ID
SHARED_VPC_SUBNET=SUBNET
Dengan keterangan:
PROJECT_ID
adalah nama project layanan yang Anda buat untuk layanan backend.SUBNET
adalah salah satu output subjaringan dari perintah sebelumnya.
- Untuk membuat layanan
httpbin
backend dalam project untuk tujuan pengujian, gunakan perintah berikut:gcloud compute --project=$BACKEND_SERVICE_PROJECT instances create-with-container httpbin \ --machine-type=e2-small --subnet=$SHARED_VPC_SUBNET \ --image-project=cos-cloud --image-family=cos-stable --boot-disk-size=10GB \ --container-image=kennethreitz/httpbin --container-restart-policy=always --tags http-server
- Buat dan deploy proxy API Apigee dengan mengikuti langkah-langkah di Membuat proxy API.
- Dapatkan alamat IP internal virtual machine (VM) tempat layanan target berjalan.
Anda akan menggunakan IP ini di langkah berikutnya untuk memanggil proxy API pengujian:
gcloud compute instances list --filter=name=httpbin
- Untuk menguji konfigurasi, panggil proxy. Gunakan alamat IP internal VM
yang Anda dapatkan di langkah sebelumnya. Contoh berikut mengasumsikan bahwa Anda memberi nama
basepath proxy
/myproxy
. Contoh:curl -v https://INTERNAL_IP/myproxy
Panggilan API ini menampilkan
Hello, Guest!
.