1. Pengantar
Private Service Connect (PSC) menyederhanakan cara layanan digunakan secara aman dan pribadi. Model ini membuat arsitektur jaringan menjadi jauh lebih mudah dengan memungkinkan konsumen layanan terhubung secara pribadi ke produsen layanan di seluruh organisasi dan menghilangkan kebutuhan peering virtual private cloud. Gambar 1 menggambarkan atribut peering VPC dan PSC.
Gambar 1. 
Sebagai konsumen layanan, Anda dapat memilih cara mengalokasikan IP pribadi ke layanan dengan fleksibel, sekaligus menghilangkan beban pengelolaan rentang subnet untuk VPC produsen. Sekarang Anda dapat menetapkan IP virtual yang dipilih dari VPC Anda ke layanan tersebut hanya dengan menggunakan koneksi layanan.
Dalam codelab ini, Anda akan membangun arsitektur Private Service Connect yang komprehensif yang menggambarkan penggunaan akses global PSC dengan MongoDB Atlas.
Akses global memungkinkan klien terhubung ke Private Service Connect (PSC) di seluruh batas regional. Hal ini berguna untuk menciptakan ketersediaan tinggi di seluruh layanan terkelola yang dihosting di beberapa region atau untuk mengizinkan klien mengakses layanan yang tidak berada di region yang sama dengan klien.
2. Mengaktifkan Akses Global
Akses global adalah fitur opsional yang dikonfigurasi pada aturan penerusan sisi konsumen. Perintah berikut menunjukkan cara mengonfigurasinya:
gcloud beta compute forwarding-rules create psc-west \
--region=us-west1 \
--network=consumer-vpc \
--address=psc-west-address \
--target-service-attachment=projects/.../serviceAttachments/sa-west \
--allow-psc-global-access
- Flag
--allow-psc-global-accessmengaktifkan akses global pada endpoint Private Service Connect - Akses global memungkinkan klien berada di region yang berbeda dengan aturan penerusan Private Service Connect, tetapi aturan penerusan harus tetap berada di region yang sama dengan lampiran layanan yang terhubung dengannya.
- Tidak ada konfigurasi yang diperlukan pada lampiran layanan produsen untuk mengaktifkan akses global. Opsi ini murni merupakan opsi sisi konsumen.
Akses global juga dapat diaktifkan atau dinonaktifkan kapan saja untuk endpoint yang ada. Tidak ada gangguan traffic untuk koneksi aktif saat mengaktifkan akses global di endpoint yang ada. Akses Global diaktifkan pada aturan penerusan yang ada dengan perintah berikut:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Menonaktifkan Akses Global
Akses global juga dapat dinonaktifkan pada aturan penerusan yang ada dengan tanda --no-allow-psc-global-access. Perhatikan bahwa semua traffic antar-regional yang aktif akan dihentikan setelah perintah ini dijalankan.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Yang akan Anda build
- Cluster MongoDB Atlas multi-region (topologi yang dijelaskan dalam Gambar 2) akan dibuat dengan satu node di region us-west1 dan dua node di region us-west2.
- VPC konsumen dan VM terkait untuk mengakses cluster MongoDB di us-west1 dan us-west2.
- Satu VPC dan dua subnet di region us-west1 dan us-west2 masing-masing dengan minimal 64 alamat IP kosong di setiap subnet (Buat subnet dengan /26 dan di bawahnya).
Klien MongoDB akan diinstal di vm1 di VPC konsumen. Jika node utama gagal di us-west1, klien akan dapat membaca/menulis melalui node utama baru di us-west2.
Gambar 2. 
Yang akan Anda pelajari
- Cara membuat VPC dan subnet yang di-deploy di dua region
- Cara men-deploy cluster MongoDB Atlas multi-region
- Cara membuat endpoint pribadi
- Cara terhubung ke MongoDB
- Cara melakukan dan memvalidasi failover MongoDB multiregion
Yang Anda butuhkan
- Project Google Cloud
- Menyediakan subnet /26 per region
- Akses pemilik Project atau pemilik Organisasi ke MongoDB Atlas untuk membuat cluster MongoDB dengan tingkat cluster M10 atau yang lebih tinggi. (Gunakan GETATLAS untuk mendapatkan kredit gratis dalam menjalankan PoV)
4. Sebelum memulai
Perbarui project untuk mendukung codelab
Codelab ini menggunakan $variables untuk membantu penerapan konfigurasi gcloud di Cloud Shell.
Di dalam Cloud Shell, lakukan hal berikut:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Penyiapan Konsumen
Buat VPC konsumen
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Buat subnet konsumen
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
Di dalam Cloud Shell, buat endpoint konsumen untuk us-west1:
gcloud compute networks subnets create psc-endpoint-us-west1 --project=$projectname --range=192.168.10.0/26 --network=consumer-vpc --region=us-west1
Di dalam Cloud Shell, buat endpoint konsumen untuk us-west2:
gcloud compute networks subnets create psc-endpoint-us-west2 --project=$projectname --range=172.16.10.0/26 --network=consumer-vpc --region=us-west2
Konfigurasi Cloud Router dan NAT
Cloud NAT digunakan dalam codelab untuk penginstalan paket software karena instance VM tidak memiliki alamat IP eksternal.
Di dalam Cloud Shell, buat router cloud.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
Di dalam Cloud Shell, buat gateway NAT.
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
Konfigurasi instance vm1
Di bagian berikut, Anda akan membuat instance Compute Engine, vm1.
Di dalam Cloud Shell, buat instance vm1.
gcloud compute instances create vm1 \
--project=$projectname \
--zone=us-west1-a \
--machine-type=e2-micro \
--network-interface=subnet=vm-subnet,no-address \
--maintenance-policy=MIGRATE \
--provisioning-model=STANDARD \
--create-disk=auto-delete=yes,boot=yes,device-name=vm1,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20230213,mode=rw,size=10,type=projects/$projectname/zones/us-west1-a/diskTypes/pd-balanced
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump -y
sudo apt-get install dnsutils -y"
Untuk mengizinkan IAP terhubung ke instance VM Anda, buat aturan firewall yang:
- Berlaku untuk semua instance VM yang ingin Anda akses 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.
Di dalam Cloud Shell, buat aturan firewall IAP.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Membuat cluster MongoDB Atlas multiregional
- Kita perlu menyiapkan cluster Atlas sebelum memulai penyiapan PSC. Anda dapat berlangganan MongoDB Atlas dengan salah satu dari dua cara di bawah:
- Melalui Google Cloud Marketplace jika Anda memiliki akun Google Cloud. Lihat dokumentasi untuk menyiapkan langganan Anda.
- Dengan halaman pendaftaran Atlas.
- Setelah berlangganan Atlas, klik tombol Build a Database seperti yang ditunjukkan di bawah.

- Buat cluster baru → Khusus

- Penyedia & region cloud → Google Cloud
- Multi-cloud, multi-region & isolasi workload → Dipilih (centang biru)

- Node yang dapat dipilih → us-west1 (1 node), us-west2 (2 node)

- Tingkatan cluster → M10, Biarkan semua setelan lainnya tetap pada nilai default

- Nama cluster → psc-mongodb-uswest1-uswest2

- Pilih → Buat Cluster

- Pembuatan database memerlukan waktu 7-10 menit

Tampilan cluster setelah di-deploy

7. Pembuatan endpoint pribadi untuk us-west1
- Login ke akun Atlas Anda dan buka project Anda.
Membuat pengguna baru untuk mengizinkan akses baca/tulis ke database mana pun
Keamanan → Akses Database, pilih tambahkan pengguna database baru. Berikut adalah contoh, nama pengguna dan sandi yang dikonfigurasi sebagai codelab. Pastikan untuk memilih peran bawaan Baca dan tulis ke database mana pun.

- Di bagian Security → Network Access, IP Access List tidak memerlukan entri
Menyiapkan Endpoint Pribadi di MongoDB Atlas
- Pilih, Akses jaringan → Endpoint Pribadi → Cluster khusus → Tambahkan endpoint pribadi

Penyedia cloud
- Pilih Google Cloud, lalu pilih berikutnya

Lampiran layanan
- Pilih region, us-west1, lalu berikutnya

Endpoints
- Untuk membuat endpoint Private Service Connect, berikan informasi berikut:
- ID project cloud Google: Pilih 'tampilkan petunjuk' untuk mengetahui detailnya
- Nama VPC: consumer-vpc
- Nama subnet: psc-endpoint-us-west1
- Awalan endpoint Private Service Connect: psc-endpoint-us-west1

Menyiapkan endpoint
Di bagian berikut, skrip shell dibuat yang harus disimpan secara lokal dengan nama setup_psc.sh. Setelah disimpan, edit skrip shell untuk mengizinkan akses global psc. Anda dapat melakukan tindakan ini dalam Cloud Shell project Google Cloud.
- Contoh skrip shell, output Anda akan memiliki nilai yang berbeda

- Salin skrip shell dari konsol MongoDB dan simpan konten di terminal Google Cloud Cloud Shell, pastikan untuk menyimpan skrip sebagai setup_psc.sh
Contoh pembaruan before:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
Perbarui skrip shell untuk mendukung akses global
Gunakan editor nano atau vi untuk mengidentifikasi dan memperbarui skrip shell dengan sintaksis di bawah:
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
Contoh setelah pembaruan:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
Jalankan skrip shell
Buka dan jalankan skrip setup_psc.sh. Setelah selesai, file bernama atlasEndpoints-psc-endpoint-us-west1.json akan dibuat. File json berisi daftar alamat IP dan Nama Endpoint Private Service Connect yang diperlukan untuk langkah deployment berikutnya.
Di dalam Cloud Shell, lakukan hal berikut:
sh setup_psc.sh
Setelah skrip selesai, gunakan editor Cloud Shell untuk mendownload atlasEndpoints-psc-endpoint-us-west1.json secara lokal.

Upload file JSON
Upload file json yang disimpan sebelumnya atlasEndpoints-psc-endpoint-us-west1.json


Pilih Buat
Memvalidasi endpoint Private Service Connect
Di UI MongoDB, buka project Anda, lalu pilih Security → Network access → Private endpoint. Memilih tab, cluster khusus, transisi endpoint ke tersedia akan memerlukan waktu 10 menit.
Status yang tersedia

Di konsol Google Cloud, buka Network services → Private Services Connect, pilih tab Connected endpoint yang menampilkan endpoint konsumen yang bertransisi dari Pending → Accepted, contoh di bawah:

8. Pembuatan endpoint pribadi untuk us-west2
- Login ke akun Atlas Anda dan buka project Anda.
Menyiapkan Endpoint Pribadi di MongoDB Atlas
- Pilih, Akses jaringan → Endpoint Pribadi → Cluster khusus → Tambahkan endpoint pribadi

Penyedia cloud
- Pilih Google Cloud, lalu pilih berikutnya

Lampiran layanan
- Pilih region, us-west2, lalu berikutnya

Endpoints
- Untuk membuat endpoint Private Service Connect, berikan informasi berikut:
- ID project cloud Google: Pilih 'tampilkan petunjuk' untuk mengetahui detailnya
- Nama VPC: consumer-vpc
- Nama subnet: psc-endpoint-us-west2
- Awalan endpoint Private Service Connect: psc-endpoint-us-west2

Menyiapkan endpoint
Di bagian berikut, skrip shell dibuat yang harus disimpan secara lokal dengan nama setup_psc.sh. Setelah disimpan, edit skrip shell untuk mengizinkan akses global psc. Anda dapat melakukan tindakan ini dalam Cloud Shell project Google Cloud.
- Contoh skrip shell, output Anda akan memiliki nilai yang berbeda

- Salin skrip shell dari konsol MongoDB dan simpan konten di terminal Google Cloud Cloud Shell, pastikan untuk menyimpan skrip sebagai setup_psc.sh
Contoh sebelum update:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
Perbarui skrip shell untuk mendukung akses global
Gunakan editor nano atau vi untuk mengidentifikasi dan memperbarui skrip shell dengan sintaksis di bawah:
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
Contoh setelah pembaruan:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
Jalankan skrip shell
Buka dan jalankan skrip setup_psc.sh. Setelah selesai, file bernama atlasEndpoints-psc-endpoint-us-west2.json akan dibuat. File json berisi daftar alamat IP dan Nama Endpoint Private Service Connect yang diperlukan untuk langkah deployment berikutnya.
Di dalam Cloud Shell, lakukan hal berikut:
sh setup_psc.sh
Setelah skrip selesai, gunakan editor Cloud Shell untuk mendownload atlasEndpoints-psc-endpoint-us-west2.json secara lokal.

Upload file JSON
Upload file json yang disimpan sebelumnya atlasEndpoints-psc-endpoint-us-west2.json


Pilih Buat
Memvalidasi endpoint Private Service Connect
Di UI MongoDB, buka project Anda, lalu pilih Security → Network access → Private endpoint. Setelah memilih tab, cluster khusus, endpoint akan bertransisi ke tersedia setelah 10 menit.
Status yang tersedia:

Di konsol Google Cloud, buka Network services → Private Services Connect, pilih tab Connected endpoint yang menampilkan endpoint konsumen yang bertransisi dari Pending → Accepted, contoh di bawah. Sebanyak 100 endpoint di-deploy di endpoint konsumen & harus bertransisi ke diterima sebelum melanjutkan ke langkah berikutnya.

9. Menghubungkan ke MongoDB Atlas dari endpoint pribadi
Setelah Koneksi Layanan Pribadi Diterima, waktu tambahan (10-15 menit) diperlukan untuk memperbarui cluster MongoDB. Di UI MongoDB, garis abu-abu mewakili update cluster sehingga koneksi ke endpoint pribadi tidak tersedia.

Identifikasi deployment dan pilih Hubungkan (perhatikan bahwa kotak abu-abu tidak lagi ada)

Pilih jenis koneksi → Endpoint pribadi, pilih Pilih metode koneksi

Pilih Connect with the MongoDB Shell

Pilih, Saya belum menginstal MongoDB Shell, Ubuntu 20.4, dan pastikan untuk menyalin konten dari langkah 1 dan langkah 3 ke notepad.

10. Instal aplikasi mongosh
Sebelum penginstalan, Anda harus membuat string perintah berdasarkan nilai yang disalin sebelumnya yang diperoleh pada langkah 1 dan 3. Setelah itu, Anda akan melakukan SSH ke vm1 menggunakan Cloud Shell, diikuti dengan penginstalan dan validasi aplikasi mongosh ke database utama (us-west1). Image Ubuntu 20.4 diinstal saat membuat vm1 di consumer-vpc.
Pilih metode koneksi: Langkah 1, Salin URL download

Contoh string perintah, ganti dengan nilai kustom Anda:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Pilih metode koneksi, langkah 3.

Contoh string perintah, ganti dengan nilai kustom Anda:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Login ke vm1
Di dalam Cloud Shell, lakukan hal berikut:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Login ke vm1 menggunakan IAP di Cloud Shell, coba lagi jika terjadi waktu tunggu.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Melakukan penginstalan dari OS
Lakukan penginstalan dari login OS Cloud Shell, detail tambahan tersedia, perbarui sintaksis di bawah dengan string kustom Anda
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
Operasi akan merespons dengan
OK
.
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update -y
wget https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
sudo dpkg -i mongodb-mongosh_1.7.1_amd64.deb
Hubungkan ke deployment MongoDB
Di dalam login OS Cloud Shell, lakukan hal berikut. Nama pengguna dan sandi yang dikonfigurasi adalah codelab.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Contohnya:

Menjalankan perintah terhadap database
Di dalam login OS Cloud Shell, lakukan hal berikut.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Failover region MongoDB aktif, us-west1
Sebelum melakukan failover, mari kita validasi bahwa us-west1 adalah primer dan us-west2 memiliki dua node sekunder.
Buka Database → psc-mongodb-uswest1-uswest2 → Overview

Di bagian berikut, login ke vm1 yang berada di us-west1, lakukan failover pada region cluster MongoDB utama us-west1, dan pastikan database masih dapat dijangkau dari cluster MongoDB di us-west2.
Anda dapat menguji failover primer dan regional dari UI Atlas.
- Login ke UI Atlas.
- Klik [...] di samping nama cluster Anda, psc-mongodb-uswest1-uswest2 → Test Outage.

- Pilih Pemadaman Regional → Pilih wilayah.

- Pilih region utama, us-west1→ Simulate Regional Outage.

Setelah dipilih, cluster akan menampilkan simulasi gangguan setelah 3-4 menit
Tutup jendela


Pastikan bahwa us-west1 tidak berfungsi dan us-west2 kini diambil alih sebagai instance utama
Buka Database → psc-mongodb-uswest1-uswest2 → Overview

Memvalidasi konektivitas ke cluster dengan primer baru, us-west2
Login ke vm1 yang berada di us-west1 dan akses mongodb di us-west2 untuk memvalidasi akses global Private Service Connect.
Jika sesi Cloud Shell Anda dihentikan, lakukan hal berikut:
Di dalam Cloud Shell, lakukan hal berikut:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Login ke vm1 menggunakan IAP di Cloud Shell, coba lagi jika terjadi waktu tunggu.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Hubungkan ke deployment MongoDB
Di dalam login OS Cloud Shell, lakukan hal berikut.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Contohnya:

Menjalankan perintah terhadap database
Di dalam login OS Cloud Shell, lakukan hal berikut.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit

Berhasil: Anda telah memvalidasi bahwa akses global PSC memungkinkan konektivitas endpoint konsumen yang lancar di seluruh region untuk membantu ketersediaan tinggi atau karena gangguan regional. Dalam codelab ini, failover regional MongoDB terjadi di node utama yang berlokasi di us-west1, sehingga region sekunder us-west2 mengambil alih sebagai region utama. Meskipun cluster menyebabkan gangguan regional, vm1 konsumen yang berada di us-west1 berhasil menjangkau cluster utama baru di us-west2.
12. Pembersihan
Hapus endpoint konsumen dari Konsol Cloud
Buka Network services → Private Service Connect → CONNECTED ENDPOINTS
Gunakan filter psc-endpoint untuk menghilangkan potensi penghapusan endpoint konsumen non-lab. Pilih semua endpoint → HAPUS

Hapus alamat IP internal statis yang terkait dengan endpoint konsumen
Buka VPC network → consumer-vpc→ STATIC INTERNAL IP ADDRESSES
Gunakan filter psc-endpoint untuk mencegah potensi penghapusan endpoint konsumen non-lab dan tingkatkan baris per halaman menjadi 100. Pilih semua endpoint → RILIS

Dari Cloud Shell, hapus komponen codelab.
gcloud compute instances delete vm1 --zone=us-west1-a --quiet
gcloud compute networks subnets delete psc-endpoint-us-west1 vm-subnet --region=us-west1 --quiet
gcloud compute networks subnets delete psc-endpoint-us-west2 --region=us-west2 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --quiet
gcloud compute routers delete consumer-cr --region=us-west1 --quiet
gcloud compute networks delete consumer-vpc --quiet
Dari UI Atlas, identifikasi cluster psc-mongodb-uswest1-uswest2 → akhiri simulasi

Pilih Akhiri simulasi gangguan —> Keluar

Cluster kini mengembalikan us-west1 sebagai primer, proses ini akan memakan waktu 3-4 menit. Setelah selesai, hentikan cluster, perhatikan garis abu-abu yang menunjukkan perubahan status.


Masukkan nama cluster → Berhenti

Hapus endpoint pribadi yang terkait dengan us-west1 dan us-west2
Dari UI Atlas, buka Security → Network Access → Private Endpoint → Select Terminate

13. Selamat
Selamat, Anda telah berhasil mengonfigurasi dan memvalidasi endpoint Private Service Connect dengan akses global ke MongoDB di seluruh region. Anda berhasil membuat VPC konsumen, MongoDB multi-region, dan endpoint konsumen. VM yang berada di us-west1 berhasil terhubung ke MongoDB di us-west1 dan us-west2 setelah failover regional.
Cosmopup menganggap codelab itu luar biasa!!

Apa selanjutnya?
Lihat beberapa codelab ini...
- Menggunakan Private Service Connect untuk memublikasikan dan menggunakan layanan dengan GKE
- Menggunakan Private Service Connect untuk memublikasikan dan menggunakan layanan
- Menghubungkan ke layanan lokal melalui Jaringan Hybrid menggunakan Private Service Connect dan load balancer Proxy TCP internal
- Menggunakan Private Service Connect dengan konfigurasi DNS otomatis
Bacaan lebih lanjut & Video
- Ringkasan Private Service Connect
- Apa itu Private Service Connect?
- Jenis Load Balancer yang Didukung