1. Pengantar
Peering VPC adalah metode umum bagi produsen untuk menawarkan konsumsi layanan kepada pengguna mereka. Namun, penggunaan peering VPC memunculkan banyak kerumitan pemilihan rute seperti peering VPC non-transitif, konsumsi alamat IP yang besar, dan eksposur resource yang berlebihan dalam VPC yang di-peering.
Private Service Connect (PSC) adalah metode konektivitas yang memungkinkan produsen mengekspos layanan melalui endpoint tunggal yang disediakan konsumen di VPC beban kerja. Dengan demikian, berbagai masalah yang dihadapi pengguna akan terbebas dari peering VPC. Meskipun banyak layanan baru dibuat dengan PSC, masih banyak layanan yang tersedia sebagai layanan Peering VPC.
Google Cloud dengan senang hati memperkenalkan jalur migrasi untuk layanan yang telah Anda buat melalui Peering VPC untuk beralih ke arsitektur berbasis PSC. Dengan metode migrasi ini, alamat IP untuk layanan produsen yang diekspos melalui peering VPC dipertahankan hingga ke arsitektur berbasis PSC sehingga ada perubahan minimal yang diperlukan oleh konsumen. Ikuti codelab ini untuk mempelajari langkah-langkah teknis dalam melakukan migrasi ini.
CATATAN: Jalur migrasi ini hanya untuk layanan yang produsen dan konsumen berada dalam organisasi Google Cloud yang sama. Untuk layanan Google Cloud atau layanan pihak ketiga yang menggunakan peering VPC, layanan tersebut akan memanfaatkan metode migrasi serupa, tetapi akan disesuaikan dengan layanan itu sendiri. Harap hubungi pihak yang sesuai untuk menanyakan tentang jalur migrasi bagi jenis layanan ini.
Yang akan Anda pelajari
- Cara menyiapkan layanan berbasis peering VPC
- Cara menyiapkan layanan berbasis PSC
- Menggunakan Internal-Ranges API untuk melakukan migrasi subnet melalui Peering VPC guna mencapai Peering VPC ke migrasi layanan PSC.
- Memahami kapan periode nonaktif perlu terjadi untuk migrasi layanan
- Langkah-langkah pembersihan migrasi
Yang Anda butuhkan
- Project Google Cloud dengan izin Pemilik
2. Topologi Codelab
Untuk mempermudah, codelab ini memusatkan semua resource dalam satu project. Dalam codelab ini, hal tersebut akan disebutkan dalam codelab tentang tindakan apa yang perlu dilakukan di sisi produser dan tindakan apa yang perlu dilakukan di sisi konsumen jika produsen dan konsumen berada dalam project yang berbeda.
Codelab ini akan memiliki 4 status.
Status 1 adalah status Peering VPC. Akan ada dua VPC, yaitu vpc konsumen dan produsen-vpc yang akan di-peering bersama-sama. Producer-vpc akan memiliki layanan Apache sederhana yang diekspos melalui Load Balancer Passthrough Jaringan internal. VM konsumen akan memiliki satu VM konsumen untuk tujuan pengujian.
Status 2 adalah status pengujian PSC. Kami akan membuat aturan penerusan baru dan menggunakan aturan ini untuk dikaitkan dengan Lampiran Layanan. Kemudian, kita akan membuat endpoint PSC pengujian di vpc konsumen untuk menguji apakah layanan PSC berfungsi seperti yang diharapkan.
Status 3 adalah status migrasi. Kita akan mencadangkan rentang subnet di produs-vpc tempat layanan berbasis Peering VPC di-deploy untuk digunakan di VPC konsumen. Kemudian, kita akan membuat endpoint PSC baru dengan alamat IP yang sama dengan aturan penerusan yang sudah ada di prod-vpc.
Status 4 adalah status PSC akhir. Kita akan membersihkan endpoint PSC pengujian dan menghapus peering VPC antara vpc konsumen dan produsen-vpc.
3. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.
- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
- Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai
PROJECT_ID
). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project. - Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:
Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:
Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.
4. Sebelum memulai
Mengaktifkan API
Di dalam Cloud Shell, pastikan project Anda sudah disiapkan dan dikonfigurasi variabel.
gcloud auth login gcloud config list project gcloud config set project [YOUR-PROJECT-ID] export projectid=[YOUR-PROJECT-ID] export region=us-central1 export zone=$region-a echo $projectid echo $region echo $zone
Aktifkan semua layanan yang diperlukan
gcloud services enable compute.googleapis.com gcloud services enable networkconnectivity.googleapis.com gcloud services enable dns.googleapis.com
5. Membuat Jaringan VPC Produsen (Aktivitas Produsen)
Jaringan VPC
Dari Cloud Shell
gcloud compute networks create producer-vpc \ --subnet-mode=custom
Membuat Subnet
Dari Cloud Shell
gcloud compute networks subnets create producer-service-subnet \ --network=producer-vpc \ --range=10.0.0.0/28 \ --region=$region gcloud compute networks subnets create producer-fr-subnet \ --network=producer-vpc \ --range=192.168.0.0/28 \ --region=$region
Membuat Producer Cloud Router dan Cloud NAT
Dari Cloud Shell
gcloud compute routers create $region-cr \ --network=producer-vpc \ --region=$region gcloud compute routers nats create $region-nat \ --router=$region-cr \ --region=$region \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips
Membuat Kebijakan Firewall Jaringan Produsen dan Aturan Firewall
Dari Cloud Shell
gcloud compute network-firewall-policies create producer-vpc-policy --global gcloud compute network-firewall-policies associations create \ --firewall-policy producer-vpc-policy \ --network producer-vpc \ --name network-producer-vpc \ --global-firewall-policy
Agar IAP dapat terhubung ke instance VM Anda, buat aturan firewall yang:
- Berlaku untuk semua instance VM yang Anda inginkan agar dapat diakses dengan menggunakan IAP.
- Mengizinkan traffic masuk dari rentang IP 35.235.240.0/20. Rentang ini berisi semua alamat IP yang digunakan IAP untuk penerusan TCP.
Dari Cloud Shell
gcloud compute network-firewall-policies rules create 1000 \ --action ALLOW \ --firewall-policy producer-vpc-policy \ --description "SSH with IAP" \ --direction INGRESS \ --src-ip-ranges 35.235.240.0/20 \ --layer4-configs tcp:22 \ --global-firewall-policy
Kami juga akan membuat dua aturan lagi yang mengizinkan health check Load Balancer ke layanan, serta mengizinkan traffic jaringan dari VM yang akan terhubung dari vpc konsumen.
Dari Cloud Shell
gcloud compute network-firewall-policies rules create 2000 \ --action ALLOW \ --firewall-policy producer-vpc-policy \ --description "LB healthchecks" \ --direction INGRESS \ --src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \ --layer4-configs tcp:80 \ --global-firewall-policy gcloud compute network-firewall-policies rules create 3000 \ --action ALLOW \ --firewall-policy producer-vpc-policy \ --description "allow access from consumer-vpc" \ --direction INGRESS \ --src-ip-ranges 10.0.1.0/28 \ --layer4-configs tcp:80 \ --global-firewall-policy
6. Penyiapan Layanan Produsen (Aktivitas Produsen)
Kita akan membuat layanan produser dengan satu VM yang menjalankan server web Apache yang akan ditambahkan ke Grup Instance yang Tidak Dikelola yang ditangani dengan Load Balancer Passthrough Jaringan Internal Regional.
Membuat VM dan Grup Instance yang Tidak Dikelola
Dari Cloud Shell
gcloud compute instances create producer-service-vm \ --network producer-vpc \ --subnet producer-service-subnet \ --zone $zone \ --no-address \ --metadata startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y a2enmod ssl sudo a2ensite default-ssl echo "I am a Producer Service." | \ tee /var/www/html/index.html systemctl restart apache2'
Dari Cloud Shell
gcloud compute instance-groups unmanaged create prod-uig \ --zone=$zone gcloud compute instance-groups unmanaged add-instances prod-uig \ --zone=$zone \ --instances=producer-service-vm
Membuat Load Balancer Passthrough Jaringan Internal Regional
Dari Cloud Shell
gcloud compute health-checks create http producer-hc \ --region=$region gcloud compute backend-services create producer-bes \ --load-balancing-scheme=internal \ --protocol=tcp \ --region=$region \ --health-checks=producer-hc \ --health-checks-region=$region gcloud compute backend-services add-backend producer-bes \ --region=$region \ --instance-group=prod-uig \ --instance-group-zone=$zone gcloud compute addresses create producer-fr-ip\ --region $region \ --subnet producer-fr-subnet \ --addresses 192.168.0.2 gcloud compute forwarding-rules create producer-fr \ --region=$region \ --load-balancing-scheme=internal \ --network=producer-vpc \ --subnet=producer-fr-subnet \ --address=producer-fr-ip \ --ip-protocol=TCP \ --ports=80 \ --backend-service=producer-bes \ --backend-service-region=$region
7. Membuat Jaringan VPC Konsumen (Aktivitas Konsumen)
Jaringan VPC
Dari Cloud Shell
gcloud compute networks create consumer-vpc \ --subnet-mode=custom
Buat Subnet
Dari Cloud Shell
gcloud compute networks subnets create consumer-vm-subnet \ --network=consumer-vpc \ --range=10.0.1.0/28 \ --region=$region
Membuat Kebijakan Firewall Jaringan Konsumen dan Aturan Firewall
Kita akan membuat Kebijakan Firewall Jaringan lain untuk vpc konsumen.
Dari Cloud Shell
gcloud compute network-firewall-policies create consumer-vpc-policy --global gcloud compute network-firewall-policies associations create \ --firewall-policy consumer-vpc-policy \ --network consumer-vpc \ --name network-consumer-vpc \ --global-firewall-policy gcloud compute network-firewall-policies rules create 1000 \ --action ALLOW \ --firewall-policy consumer-vpc-policy \ --description "SSH with IAP" \ --direction INGRESS \ --src-ip-ranges 35.235.240.0/20 \ --layer4-configs tcp:22 \ --global-firewall-policy
8. Membuat Peer VPC
Aktivitas Produsen
Dari Cloud Shell
gcloud compute networks peerings create producer-vpc-peering \ --network=producer-vpc \ --peer-project=$projectid \ --peer-network=consumer-vpc
Aktivitas Konsumen
Dari Cloud Shell
gcloud compute networks peerings create consumer-vpc-peering \ --network=consumer-vpc \ --peer-project=$projectid \ --peer-network=producer-vpc
Pastikan peering dibuat dengan memeriksa daftar rute di konsumen-vpc. Anda akan melihat rute untuk vpc konsumen dan produsen-vpc.
Aktivitas Konsumen
Dari Cloud Shell
gcloud compute routes list --filter="network=consumer-vpc"
Output yang Diinginkan
NAME: default-route-49dda7094977e231 NETWORK: consumer-vpc DEST_RANGE: 0.0.0.0/0 NEXT_HOP: default-internet-gateway PRIORITY: 1000 NAME: default-route-r-10d65e16cc6278b2 NETWORK: consumer-vpc DEST_RANGE: 10.0.1.0/28 NEXT_HOP: consumer-vpc PRIORITY: 0 NAME: peering-route-496d0732b4f11cea NETWORK: consumer-vpc DEST_RANGE: 192.168.0.0/28 NEXT_HOP: consumer-vpc-peering PRIORITY: 0 NAME: peering-route-b4f9d3acc4c08d55 NETWORK: consumer-vpc DEST_RANGE: 10.0.0.0/28 NEXT_HOP: consumer-vpc-peering PRIORITY: 0
9. Membuat Zona DNS (Aktivitas Konsumen)
Kita akan membuat Cloud DNS Private Zone untuk memanggil layanan produser melalui DNS, bukan melalui alamat IP pribadi untuk menampilkan contoh yang lebih realistis.
Kita akan menambahkan data A ke domain example.com yang mengarahkan service.example.com ke alamat IP Aturan Penerusan Load Balancer Jaringan yang kita buat sebelumnya. Alamat IP Aturan Penerusan itu adalah 192.168.0.2.
Dari Cloud Shell
gcloud dns managed-zones create "producer-service" \ --dns-name=example.com \ --description="producer service dns" \ --visibility=private \ --networks=consumer-vpc gcloud dns record-sets transaction start \ --zone="producer-service" gcloud dns record-sets transaction add 192.168.0.2 \ --name=service.example.com \ --ttl=300 \ --type=A \ --zone="producer-service" gcloud dns record-sets transaction execute \ --zone="producer-service"
10. Menguji Layanan Produsen Melalui Peer VPC (Aktivitas Konsumen)
Pada tahap ini, arsitektur Status 1 telah dibuat.
Membuat VM klien-konsumen
Dari Cloud Shell
gcloud compute instances create consumer-client \ --zone=$zone \ --subnet=consumer-vm-subnet \ --no-address
Menguji Konektivitas
Dari Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Dari VM klien-konsumen
curl service.example.com
Output yang Diinginkan
I am a Producer Service.
Dari VM klien-konsumen
exit
11. Menyiapkan Layanan untuk Private Service Connect (Aktivitas Produsen)
Setelah menyelesaikan semua langkah penyiapan awal, sekarang kita akan mulai menyiapkan layanan VPC-Peered untuk migrasi ke Private Service Connect. Di bagian ini, kita akan membuat perubahan pada produs-vpc dengan mengonfigurasi layanan yang akan diekspos melalui Lampiran Layanan. Kita harus membuat subnet baru dan aturan penerusan baru dalam subnet tersebut agar dapat memigrasikan subnet yang ada ke vpc konsumen agar alamat IP layanan yang ada tetap utuh.
Buat subnet tempat IP aturan penerusan load balancer baru akan dihosting.
Dari Cloud Shell
gcloud compute networks subnets create producer-psc-fr-subnet \ --network=producer-vpc \ --range=10.0.2.64/28 \ --region=$region
Buat alamat IP internal aturan penerusan load balancer.
Dari Cloud Shell
gcloud compute addresses create producer-psc-ip \ --region $region \ --subnet producer-psc-fr-subnet \ --addresses 10.0.2.66
Membuat aturan penerusan load balancer baru. Aturan ini dikonfigurasi untuk menggunakan layanan backend dan health check yang sama dengan yang dikonfigurasi sebelumnya.
Dari Cloud Shell
gcloud compute forwarding-rules create psc-service-fr \ --region=$region \ --load-balancing-scheme=internal \ --network=producer-vpc \ --subnet=producer-psc-fr-subnet \ --address=producer-psc-ip \ --ip-protocol=TCP \ --ports=80 \ --backend-service=producer-bes \ --backend-service-region=$region
psc-nat-subnet akan dikaitkan dengan Lampiran Layanan PSC untuk tujuan Penafsiran Alamat Jaringan. Untuk kasus penggunaan produksi, subnet ini harus memiliki ukuran yang tepat untuk mendukung jumlah endpoint yang terpasang. Lihat dokumentasi pengukuran subnet NAT PSC untuk informasi selengkapnya.
Dari Cloud Shell
gcloud compute networks subnets create psc-nat-subnet \ --network=producer-vpc \ --range=10.100.100.0/28 \ --region=$region \ --purpose=PRIVATE_SERVICE_CONNECT
Kita harus menambahkan aturan firewall tambahan ke Kebijakan Firewall Jaringan untuk mengizinkan traffic dari psc-nat-subnet. Saat mengakses layanan melalui PSC, psc-nat-subnet adalah tempat traffic akan bersumber.
Dari Cloud Shell
gcloud compute network-firewall-policies rules create 2001 \ --action ALLOW \ --firewall-policy producer-vpc-policy \ --description "allow PSC NAT subnet" \ --direction INGRESS \ --src-ip-ranges 10.100.100.0/28 \ --layer4-configs tcp:80 \ --global-firewall-policy
Buat lampiran layanan dan catat URI lampiran layanan untuk mengonfigurasi endpoint PSC di bagian berikutnya.
Dari Cloud Shell
gcloud compute service-attachments create producer-sa \ --region=$region \ --producer-forwarding-rule=psc-service-fr \ --connection-preference=ACCEPT_MANUAL \ --consumer-accept-list=$projectid=5 \ --nat-subnets=psc-nat-subnet
Dari Cloud Shell
gcloud compute service-attachments describe producer-sa --region=$region
Contoh Output
connectionPreference: ACCEPT_MANUAL consumerAcceptLists: - connectionLimit: 5 projectIdOrNum: $projectid creationTimestamp: '2025-04-24T11:23:09.886-07:00' description: '' enableProxyProtocol: false fingerprint: xxx id: 'xxx' kind: compute#serviceAttachment name: producer-sa natSubnets: - https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/subnetworks/psc-nat-subnet pscServiceAttachmentId: high: 'xxx' low: 'xxx' reconcileConnections: false region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/serviceAttachments/producer-sa targetService: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/forwardingRules/psc-service-fr
12. Menghubungkan Endpoint PSC Konsumen "test" ke Layanan Produsen dan Pengujian (Aktivitas Konsumen)
Arsitekturnya sekarang berada di Status 2.
Pada tahap ini, layanan produsen yang ada yang diekspos melalui Peering VPC masih aktif dan berfungsi dengan baik dalam skenario Produksi. Kami akan membuat endpoint PSC "uji" untuk memastikan bahwa Lampiran Layanan yang terekspos berfungsi dengan baik sebelum memulai periode pemadaman layanan untuk memigrasikan subnet Peering VPC saat ini ke VPC konsumen. Konektivitas status akhir kita akan menjadi endpoint PSC dengan alamat IP yang sama dengan aturan penerusan saat ini untuk layanan berbasis Peering VPC.
Buat Endpoint PSC
Dari Cloud Shell
gcloud compute addresses create test-psc-endpoint-ip \ --region=$region \ --subnet=consumer-vm-subnet \ --addresses 10.0.1.3
Layanan target di bawah adalah URI Lampiran Layanan yang Anda catat di langkah terakhir.
Dari Cloud Shell
gcloud compute forwarding-rules create test-psc-endpoint \ --region=$region \ --network=consumer-vpc \ --address=test-psc-endpoint-ip \ --target-service-attachment=projects/$projectid/regions/$region/serviceAttachments/producer-sa
Menguji Endpoint PSC "uji"
Dari Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Dari konsumen-klien
curl 10.0.1.3
Output yang Diinginkan
I am a Producer Service.
Dari konsumen-klien
exit
13. Memigrasikan Subnet Aturan Penerusan Produsen yang Ada
Jika langkah-langkah ini dilakukan, penonaktifan layanan Producer berbasis Peering VPC live akan dimulai. Sekarang kita akan memigrasikan subnet aturan penerusan dari prod-vpc ke vpc konsumen menggunakan Internal Ranges API. Ini akan mengunci subnet agar tidak digunakan pada periode sementara saat kami menghapus subnet di produs-vpc dan menetapkannya hanya untuk tujuan migrasi untuk pembuatan di vpc konsumen.
Internal range API mengharuskan Anda mencadangkan subnet aturan penerusan peering VPC yang ada (produsen-fr-subnet, 192.168.0.0/28) dan menetapkan nama subnet target di consumer-vpc (consumer-psc-subnet). Kita membuat subnet baru di konsumen-vpc dengan nama ini dalam beberapa langkah.
Mencadangkan produser-fr-subnet untuk migrasi
Aktivitas Produsen
Dari Cloud Shell
gcloud network-connectivity internal-ranges create producer-peering-internal-range \ --ip-cidr-range=192.168.0.0/28 \ --network=producer-vpc \ --usage=FOR_MIGRATION \ --migration-source=projects/$projectid/regions/$region/subnetworks/producer-fr-subnet \ --migration-target=projects/$projectid/regions/$region/subnetworks/consumer-psc-subnet
Jalankan deskripsi di rentang internal yang kita buat untuk melihat status subnet.
Aktivitas Produsen
Dari Cloud Shell
gcloud network-connectivity internal-ranges describe producer-peering-internal-range
Contoh Output
createTime: '2025-04-24T19:26:10.589343291Z' ipCidrRange: 192.168.0.0/28 migration: source: projects/$projectid/regions/$region/subnetworks/producer-fr-subnet target: projects/$projectid/regions/$region/subnetworks/consumer-psc-subnet name: projects/$projectid/locations/global/internalRanges/producer-peering-internal-range network: https://www.googleapis.com/compute/v1/projects/$project/global/networks/producer-vpc peering: FOR_SELF updateTime: '2025-04-24T19:26:11.521960016Z' usage: FOR_MIGRATION
Menghapus Aturan Penerusan dan Subnet berbasis Peering VPC
Aktivitas Produsen
Dari Cloud Shell
gcloud compute forwarding-rules delete producer-fr --region=$region gcloud compute addresses delete producer-fr-ip --region=$region gcloud compute networks subnets delete producer-fr-subnet --region=$region
Memigrasikan Subnet
Migrasikan subnet ke vpc konsumen dengan membuat subnet baru menggunakan rentang internal yang kita buat sebelumnya. Nama subnet ini harus sama dengan nama yang kita targetkan sebelumnya (consumer-psc-subnet). Tujuan khusus PEER_MIGRATION mencatat bahwa subnet dicadangkan untuk migrasi subnet di antara VPC yang di-peering. Dengan flag tujuan ini, subnet ini hanya dapat berisi alamat IP statis dan endpoint PSC yang dicadangkan.
Aktivitas Konsumen
Dari Cloud Shell
gcloud compute networks subnets create consumer-psc-subnet \ --purpose=PEER_MIGRATION \ --network=consumer-vpc \ --range=192.168.0.0/28 \ --region=$region
14. Membuat Endpoint PSC Status Akhir (Aktivitas Konsumen)
Pada tahap ini, layanan Producer masih nonaktif. Subnet yang baru saja kita buat masih terkunci dan hanya dapat digunakan untuk tujuan migrasi tertentu. Anda dapat mengujinya dengan mencoba membuat VM di subnet ini. Pembuatan VM akan gagal.
Dari Cloud Shell
gcloud compute instances create test-consumer-vm \ --zone=$zone \ --subnet=consumer-psc-subnet \ --no-address
Output yang Diinginkan
ERROR: (gcloud.compute.instances.create) Could not fetch resource: - Subnetwork must have purpose=PRIVATE.
Kita hanya dapat menggunakan subnet ini untuk membuat endpoint PSC. Perhatikan bahwa alamat IP yang kita buat menggunakan IP yang sama dengan aturan penerusan yang digunakan oleh layanan produsen melalui Peer VPC.
Dari Cloud Shell
gcloud compute addresses create psc-endpoint-ip \ --region=$region \ --subnet=consumer-psc-subnet \ --addresses 192.168.0.2
Sekali lagi, Anda harus menggunakan URI Lampiran Layanan yang sama dengan yang Anda catat sebelumnya dan yang juga digunakan untuk membuat Endpoint PSC "pengujian".
Dari Cloud Shell
gcloud compute forwarding-rules create psc-endpoint \ --region=$region \ --network=consumer-vpc \ --address=psc-endpoint-ip \ --target-service-attachment=projects/$projectid/regions/$region/serviceAttachments/producer-sa
15. Menguji Endpoint PSC Status Akhir (Aktivitas Konsumen)
Pada tahap ini, Anda berada di arsitektur Status 3.
Dari Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Dari VM klien-konsumen
curl service.example.com
Output yang Diinginkan
I am a Producer Service.
Dari VM klien-konsumen
exit
Pada tahap ini, pemadaman layanan telah berakhir dan layanan telah diaktifkan kembali. Perhatikan bahwa kita tidak perlu membuat perubahan apa pun pada DNS yang ada. Tidak ada perubahan klien sisi konsumen yang perlu dilakukan. Aplikasi dapat melanjutkan operasi ke layanan yang dimigrasikan.
16. Pembersihan Migrasi
Untuk menyelesaikan migrasi, ada beberapa langkah pembersihan yang perlu kami lakukan. Kita harus menghapus dan membuka akses ke resource.
Membuka subnet Rentang Internal
Tindakan ini akan membuka kunci subnet yang dimigrasikan sehingga tujuannya dapat diubah dari "PEER_MIGRATION" menjadi "PRIVATE".
Aktivitas Produsen
Dari Cloud Shell
gcloud network-connectivity internal-ranges delete producer-peering-internal-range
Aktivitas Konsumen
Dari Cloud Shell
gcloud compute networks subnets update consumer-psc-subnet \ --region=$region \ --purpose=PRIVATE gcloud compute networks subnets describe consumer-psc-subnet --region=$region
Contoh Output
creationTimestamp: '2025-04-24T12:29:33.883-07:00' fingerprint: xxx gatewayAddress: 192.168.0.1 id: 'xxx' ipCidrRange: 192.168.0.0/28 kind: compute#subnetwork name: consumer-psc-subnet network: https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/consumer-vpc privateIpGoogleAccess: false privateIpv6GoogleAccess: DISABLE_GOOGLE_ACCESS purpose: PRIVATE region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/subnetworks/consumer-psc-subnet
Menghapus Peer VPC
Aktivitas Produsen
Dari Cloud Shell
gcloud compute networks peerings delete producer-vpc-peering \ --network=producer-vpc
Aktivitas Konsumen
Dari Cloud Shell
gcloud compute networks peerings delete consumer-vpc-peering \ --network=consumer-vpc
Menghapus Endpoint PSC "test"
Aktivitas-Konsumen
Dari Cloud Shell
gcloud compute forwarding-rules delete test-psc-endpoint --region=$region gcloud compute addresses delete test-psc-endpoint-ip --region=$region
17. Pengujian Terakhir Setelah Pembersihan Migrasi (Aktivitas Konsumen)
Pada tahap ini, arsitektur Status 4 (status akhir) telah tercapai.
Uji lagi konektivitas PSC Endpoint untuk memastikan tidak ada efek merugikan yang teramati dari pembersihan migrasi.
Dari Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Dari VM klien-konsumen
curl service.example.com
Output yang Diinginkan
I am a Producer Service.
Dari VM klien-konsumen
exit
BERHASIL!
18. Langkah-langkah pembersihan
Dari Cloud Shell
gcloud compute forwarding-rules delete psc-endpoint --region=$region -q gcloud compute addresses delete psc-endpoint-ip --region=$region -q gcloud compute instances delete consumer-client --zone=$zone --project=$projectid -q gcloud dns record-sets delete service.example.com --zone="producer-service" --type=A -q gcloud dns managed-zones delete "producer-service" -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy consumer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy --name=network-consumer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q gcloud compute networks subnets delete consumer-psc-subnet --region=$region -q gcloud compute networks subnets delete consumer-vm-subnet --region=$region -q gcloud compute networks delete consumer-vpc -q gcloud compute service-attachments delete producer-sa --region=$region -q gcloud compute forwarding-rules delete psc-service-fr --region=$region -q gcloud compute addresses delete producer-psc-ip --region=$region -q gcloud compute backend-services delete producer-bes --region=$region -q gcloud compute health-checks delete producer-hc --region=$region -q gcloud compute instance-groups unmanaged delete prod-uig --zone=$zone -q gcloud compute instances delete producer-service-vm --zone=$zone --project=$projectid -q gcloud compute network-firewall-policies rules delete 3000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 2001 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy --name=network-producer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete producer-vpc-policy --global -q gcloud compute routers nats delete $region-nat --router=$region-cr --region=$region -q gcloud compute routers delete $region-cr --region=$region -q gcloud compute networks subnets delete psc-nat-subnet --region=$region -q gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q gcloud compute networks subnets delete producer-service-subnet --region=$region -q gcloud compute networks delete producer-vpc -q
19. Selamat!
Selamat, Anda telah menyelesaikan codelab.
Yang telah kita bahas
- Cara menyiapkan layanan berbasis peering VPC
- Cara menyiapkan layanan berbasis PSC
- Menggunakan Internal-Ranges API untuk melakukan migrasi subnet melalui Peering VPC guna mencapai Peering VPC ke migrasi layanan PSC.
- Memahami kapan periode nonaktif perlu terjadi untuk migrasi layanan
- Langkah-langkah pembersihan migrasi