1. Pengantar
Private Service Connect (PSC) menyederhanakan cara layanan digunakan dengan 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 akan peering cloud pribadi virtual. Gambar 1 mengilustrasikan atribut PSC dan peering VPC.
Gambar1.
Sebagai konsumen layanan, hal ini memungkinkan Anda secara fleksibel memilih cara mengalokasikan IP pribadi ke layanan, sekaligus meniadakan beban pengelolaan rentang subnet untuk VPC produsen. Anda kini cukup menetapkan IP virtual yang dipilih dari VPC Anda ke layanan tersebut menggunakan koneksi layanan.
Dalam codelab ini, Anda akan membangun arsitektur Private Service Connect komprehensif yang mengilustrasikan penggunaan akses global PSC dengan atlas MongoDB.
Akses global memungkinkan klien terhubung ke Private Service Connect (PSC) lintas batas regional. Hal ini berguna untuk membuat ketersediaan tinggi di seluruh layanan terkelola yang dihosting di beberapa region atau untuk memungkinkan 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 konfigurasinya:
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
- Tanda
--allow-psc-global-access
mengaktifkan akses global di endpoint Private Service Connect - Akses global memungkinkan klien berada di region yang berbeda dari 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 sepenuhnya merupakan opsi dari 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 setiap 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 pada Gambar2) akan dibuat dengan satu node di 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 lama).
Klien MongoDB akan diinstal di vm1 di vpc konsumen. Ketika 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 atlas MongoDB 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 untuk menjalankan PoV)
4. Sebelum memulai
Mengupdate project agar mendukung codelab
Codelab ini menggunakan $variables untuk membantu implementasi 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 di 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 vm1 instance
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"
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.
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 Versa 3 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 Versa 3.
- Setelah berlangganan Atlas, klik tombol Build a Database seperti yang ditunjukkan di bawah ini.
- Buat cluster baru → Khusus
- Penyedia cloud & region → Google Cloud
- Multi-cloud, multi-region & isolasi workload → Dipilih (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
- Masuk ke akun Versa 3 dan navigasi ke proyek 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 apa pun.
- Di bagian Keamanan → Network Access, 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 pilih
Lampiran layanan
- Pilih region, us-west1, lalu berikutnya
Endpoint
- Untuk membuat endpoint koneksi layanan pribadi, sediakan hal berikut:
- ID project Google Cloud: Pilih 'tampilkan petunjuk' untuk mengetahui detailnya
- Nama VPC: konsumen-vpc
- Nama subnet: psc-endpoint-us-west1
- Awalan endpoint koneksi layanan pribadi: 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 menjalankan tindakan ini di dalam project Google Cloud, Cloud Shell.
- Contoh skrip shell, output Anda akan memiliki nilai yang berbeda
- Salin skrip shell dari konsol MongoBD dan simpan konten di terminal Google Cloud Shell, pastikan untuk menyimpan skrip sebagai setup_psc.sh
Contoh sebelum 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 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 mengupdate 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 telah disimpan sebelumnya atlasEndpoints-psc-endpoint-us-west1.json
Pilih Buat
Memvalidasi endpoint Private Service Connect
Di UI MongoDB, buka project Anda, diikuti dengan 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 yang terhubung yang menampilkan endpoint konsumen yang bertransisi Tertunda → Disetujui, contohnya di bawah ini:
8. Pembuatan endpoint pribadi untuk us-west2
- Masuk ke akun Versa 3 dan navigasi ke proyek Anda.
Menyiapkan Endpoint Pribadi di MongoDB Atlas
- Pilih, Akses jaringan → Endpoint Pribadi → Cluster khusus → Tambahkan endpoint pribadi
Penyedia cloud
- Pilih Google Cloud, lalu pilih
Lampiran layanan
- Pilih region, us-west2, lalu berikutnya
Endpoint
- Untuk membuat endpoint koneksi layanan pribadi, sediakan hal berikut:
- ID project Google Cloud: Pilih 'tampilkan petunjuk' untuk mengetahui detailnya
- Nama VPC: konsumen-vpc
- Nama subnet: psc-endpoint-us-west2
- Awalan endpoint koneksi layanan pribadi: 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 menjalankan tindakan ini di dalam project Google Cloud, Cloud Shell.
- Contoh skrip shell, output Anda akan memiliki nilai yang berbeda
- Salin skrip shell dari konsol MongoBD dan simpan konten di terminal Google 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 mengupdate 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 telah disimpan sebelumnya atlasEndpoints-psc-endpoint-us-west2.json
Pilih Buat
Memvalidasi endpoint Private Service Connect
Di UI MongoDB, buka project Anda, diikuti dengan Keamanan → Akses jaringan → Endpoint pribadi. Memilih tab, cluster khusus, transisi endpoint ke tersedia setelah 10 menit.
Status tersedia:
Di Konsol Google Cloud, buka Layanan jaringan → Private Services Connect, pilih tab Endpoint yang terhubung yang menampilkan endpoint konsumen yang bertransisi Tertunda → Disetujui, contohnya di bawah. Sebanyak 100 endpoint di-deploy di endpoint konsumen & harus bertransisi ke status kerja yang disetujui sebelum melanjutkan ke langkah berikutnya.
9. Menghubungkan ke Atlas MongoDB dari endpoint pribadi
Setelah Koneksi Layanan Pribadi diterima, waktu tambahan (10-15 menit) diperlukan untuk memperbarui cluster MongoDB. Di UI MongoDB, garis batas abu-abu merepresentasikan update cluster, sehingga tidak tersedia untuk terhubung ke endpoint pribadi.
Identifikasi deployment dan pilih Hubungkan (perhatikan bahwa kotak abu-abu tidak lagi ada)
Pilih jenis koneksi → Endpoint pribadi, pilih Pilih metode koneksi
Memilih Connect dengan MongoDB Shell
Pilih, saya tidak menginstal MongoDB Shell, Ubuntu 20.4 dan pastikan untuk menyalin isi 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 di langkah 1&3. Setelah itu, Anda akan menjalankan ssh ke vm1 menggunakan Cloud Shell diikuti dengan penginstalan aplikasi mongosh dan validasi ke database utama (us-west1). Gambar Ubuntu 20.4 diinstal saat membuat vm1 di konsumen-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.
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 harus 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. Melakukan failover region MongoDB aktif, us-west1
Sebelum melakukan failover, mari validasi bahwa us-west1 adalah primer 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, lakukan failover region cluster MongoDB utama us-west1 dan pastikan database masih dapat dijangkau dari cluster MongoDB di us-west2.
Anda dapat menguji failover utama dan regional dari UI Versa 3.
- Masuk ke UI Versa 3.
- Klik [...] di samping nama cluster Anda, psc-mongodb-uswest1-uswest2 → Test Outage.
- Pilih Pemadaman Regional → Pilih region.
- Pilih region utama, us-west1→ Simulasikan Pemadaman Regional.
Setelah dipilih, cluster akan menampilkan simulasi pemadaman setelah 3-4 menit
Tutup jendela
Pastikan us-west1 tidak aktif dan us-west2 sekarang diambil alih sebagai us-west2
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 memvalidasi layanan pribadi menghubungkan akses global.
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 ada waktu tunggu.
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 layanan regional. Dalam codelab ini, failover regional MongoDB terjadi di node utama yang terletak us-west1 sehingga region sekunder us-west2 mengambil alih node utama. Meskipun cluster mengakibatkan pemadaman layanan regional, vm1 konsumen yang terletak di us-west1 berhasil mencapai cluster utama baru di us-west2.
12. Pembersihan
Dari Konsol Cloud, hapus endpoint konsumen
Buka Layanan jaringan → Private Service Connect → ENDPOINTS TERHUBUNG
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 jaringan VPC → vpc konsumen→ ALAMAT IP INTERNAL STATIC
Gunakan filter psc-endpoint untuk menghilangkan potensi penghapusan endpoint konsumen non-lab dan menaikkan baris per halaman menjadi 100. Pilih semua endpoint → RILIS
Hapus komponen codelab dari Cloud Shell.
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 Versa 3, identifikasi cluster psc-mongodb-uswest1-uswest2 → akhiri simulasi
Pilih Akhiri simulasi pemadaman —> Keluar
Sekarang cluster mengembalikan us-west1 sebagai cluster utama. Proses ini akan memerlukan waktu 3-4 menit. Setelah selesai, hentikan cluster, perhatikan garis abu-abu yang menunjukkan perubahan status.
Masukkan nama cluster → Hentikan
Hapus endpoint pribadi yang terkait dengan us-west1 dan us-west2
Dari UI Versa 3, buka Keamanan → Akses Jaringan → Endpoint Pribadi → Pilih Hentikan
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 failover regional.
Cosmopup menganggap codelab tersebut 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