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 untuk peering virtual private cloud. Gambar 1 mengilustrasikan 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 ke layanan tersebut dengan menggunakan service connect.
Dalam codelab ini, Anda akan membuat 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-access
mengaktifkan akses global di 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.
- Tidak diperlukan konfigurasi pada lampiran layanan produsen untuk mengaktifkan akses global. Ini adalah opsi sisi konsumen murni.
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 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.
- VPC dan dua subnet di region us-west1 dan us-west2 masing-masing dengan minimal 64 alamat IP gratis di setiap subnet (Buat subnet dengan /26 dan yang lebih rendah).
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 multi-region
Yang Anda butuhkan
- Project Google Cloud
- Berikan 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 guna menjalankan PoV)
4. Sebelum memulai
Memperbarui 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
Membuat VPC konsumen
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Membuat 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 multi-region
- Kita perlu menyiapkan cluster Atlas sebelum memulai penyiapan PSC. Anda dapat berlangganan MongoDB Atlas dengan salah satu dari dua cara berikut:
- 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 cloud & region → Google Cloud
- Isolasi multi-cloud, multi-region & workload → Dipilih (tanda centang biru)
- Node yang dapat dipilih → us-west1 (1 node), us-west2 (2 node)
- Tingkat cluster → M10, Biarkan semua setelan lainnya sebagai 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 apa 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 Keamanan → Akses Jaringan, Daftar Akses IP 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 berikutnya
Lampiran layanan
- Pilih region, us-west1, lalu berikutnya
Endpoint
- Untuk membuat endpoint private service connect, berikan hal berikut:
- Project ID Google Cloud: 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 akan dibuat yang harus disimpan secara lokal bernama 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 MongoBD 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-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
Memperbarui 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 update:
#!/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
Menjalankan 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.
Mengupload 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 Keamanan → Akses jaringan → Endpoint pribadi. Memilih tab, cluster khusus, transisi endpoint ke tersedia akan memerlukan waktu 10 menit.
Status tersedia
Di konsol Google Cloud, buka Layanan jaringan → Private Services Connect, pilih tab Endpoint terhubung yang menampilkan endpoint konsumen yang bertransisi dari Tertunda → Diterima, 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 berikutnya
Lampiran layanan
- Pilih region, us-west2, lalu berikutnya
Endpoint
- Untuk membuat endpoint private service connect, berikan hal berikut:
- Project ID Google Cloud: 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 akan dibuat yang harus disimpan secara lokal bernama 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 MongoBD 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
Memperbarui 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 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 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
Menjalankan 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.
Mengupload 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 Keamanan → Akses jaringan → Endpoint pribadi. Memilih tab, cluster khusus, transisi endpoint menjadi tersedia setelah 10 menit.
Status tersedia:
Di konsol Google Cloud, buka Layanan jaringan → Private Services Connect, pilih tab Endpoint terhubung yang menampilkan endpoint konsumen yang bertransisi dari Tertunda → Diterima, contoh di bawah. Sebanyak 100 endpoint di-deploy di endpoint konsumen & perlu ditransisikan ke disetujui 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 mengupdate cluster MongoDB. Di UI MongoDB, garis batas abu-abu mewakili update cluster sehingga koneksi ke endpoint pribadi tidak tersedia.
Identifikasi deployment, lalu pilih Connect (perhatikan bahwa kotak abu-abu tidak ada lagi)
Pilih jenis koneksi → Endpoint pribadi, pilih Pilih metode koneksi
Pilih Connect with the MongoDB Shell
Pilih, I do not have the MongoDB Shell installed, Ubuntu 20.4 dan pastikan untuk menyalin konten dari langkah 1 dan langkah 3 ke notepad.
10. Menginstal aplikasi mongosh
Sebelum penginstalan, Anda harus membuat string perintah berdasarkan nilai yang disalin sebelumnya yang diperoleh pada langkah 1&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 ada waktu tunggu habis.
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
Menghubungkan 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 node utama dan us-west2 memiliki dua node sekunder.
Buka Database → psc-mongodb-uswest1-uswest2 → Ringkasan
Di bagian berikut, login ke vm1 yang terletak di us-west1, failover 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 pemadaman setelah 3-4 menit
Tutup jendela
Verifikasi bahwa us-west1 tidak aktif dan us-west2 kini diambil alih sebagai utama
Buka Database → psc-mongodb-uswest1-uswest2 → Ringkasan
Memvalidasi konektivitas ke cluster dengan primer baru, us-west2
Login ke vm1 yang terletak di us-west1 dan akses mongodb di us-west2 yang memvalidasi akses global private service connect.
Jika sesi Cloud Shell Anda dihentikan, lakukan tindakan 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 ada waktu tunggu habis.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Menghubungkan 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 pemadaman regional. Dalam codelab, failover regional MongoDB terjadi di node utama yang terletak di us-west1 sehingga region sekunder us-west2 mengambil alih node utama. Meskipun cluster menyebabkan pemadaman regional, vm1 konsumen yang berada di us-west1 berhasil menjangkau cluster utama baru di us-west2.
12. Pembersihan
Dari Cloud Console, hapus endpoint konsumen
Buka Layanan jaringan → Private Service Connect → ENDPOINT YANG TERKAIT
Gunakan filter psc-endpoint untuk menghilangkan potensi penghapusan endpoint konsumen non-lab. Pilih semua endpoint → HAPUS
Menghapus alamat IP internal statis yang terkait dengan endpoint konsumen
Buka Jaringan VPC → consumer-vpc→ STATIC INTERNAL IP ADDRESSES
Gunakan filter psc-endpoint untuk menghilangkan potensi penghapusan endpoint konsumen non-lab dan meningkatkan baris per halaman menjadi 100. Pilih semua endpoint → RELEASE
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 pemadaman —> Keluar
Cluster kini mengembalikan us-west1 sebagai utama, proses ini akan memerlukan waktu 3-4 menit. Setelah selesai, hentikan cluster, perhatikan garis batas abu-abu yang menunjukkan perubahan status.
Masukkan nama cluster → Berhenti
Menghapus endpoint pribadi yang terkait dengan us-west1 dan us-west2
Dari UI Atlas, buka Keamanan → Akses Jaringan → Endpoint Pribadi → Pilih Akhiri
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 terletak di us-west1 berhasil terhubung ke MongoDB di us-west1 dan us-west2 setelah terjadi 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
- Terhubung 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