Mengakses MongoDB Atlas multi-regional dengan Private Service Connect

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. 4f9551fc32ed83f5.pngS

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

  1. 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.
  2. VPC konsumen dan VM terkait untuk mengakses cluster MongoDB di us-west1 dan us-west2.
  3. 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. ab6c2791514c4481.png

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.

796f5bda844bf400.pngS

  • Buat cluster baru → Khusus

56c340661d86962c.png

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

6c10293ffd9814ae.pngS

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

e652bd944d785871.png

  • Tingkat cluster → M10, Biarkan semua setelan lainnya sebagai default

ffa0195b96c2c5ff.png

  • Nama cluster → psc-mongodb-uswest1-uswest2

3720fb8c15ba5cc2.pngS

  • Pilih → Buat Cluster

ec5e3e6983c02e27.png

  • Pembuatan database memerlukan waktu 7-10 menit

d75778d5abf484aa.png

Tampilan cluster setelah di-deploy

1f0ec6a401578650.pngS

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.

f622ab14ddc96fc7.png

  • 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 88f5c1d9ae7e46d9.pngS

Penyedia cloud

  • Pilih Google Cloud, lalu pilih

5503248bf4019a35.pngS

Lampiran layanan

  • Pilih region, us-west1, lalu berikutnya

cb31aea7cad182f9.png

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

21d76af5367832f4.pngS

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

5c80cf7315a05c25.png

  • 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.

2856802dd6497f51.pngS b0059dc8e1558891.png

Mengupload file JSON

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

3a74e8d9952d793a.pngS

4938fd8256eb81b4.pngS

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

972aff09d180d9de.pngS

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:

5472dd938604b3.pngS

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 88f5c1d9ae7e46d9.pngS

Penyedia cloud

  • Pilih Google Cloud, lalu pilih

5503248bf4019a35.pngS

Lampiran layanan

  • Pilih region, us-west2, lalu berikutnya

fc0b7a8e4274be3b.png

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

17b5a056587ede8a.pngS

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

b021821e7d59f450.png

  • 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.

2856802dd6497f51.pngS 6e3d944944718f13.pngS

Mengupload file JSON

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

3a74e8d9952d793a.pngS

4938fd8256eb81b4.pngS

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:

8801df4f6b39d20a.pngS

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.

6131abcdef5c1f49.pngS

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.

c1524d2c0c5765d1.png

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

3eea96af20bfad20.pngS

Pilih jenis koneksi → Endpoint pribadi, pilih Pilih metode koneksi

16a9090e495640c7.pngS

Memilih Connect dengan MongoDB Shell

35e422af16cb5ce0.pngS

Pilih, saya tidak menginstal MongoDB Shell, Ubuntu 20.4 dan pastikan untuk menyalin isi dari langkah 1 dan langkah 3 ke notepad.

51be47403c00bab4.pngS

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

5da980ff86265dd8.pngS

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.

698286bdf3dee3c7.pngS

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:

d5d0324a273b4d5e.png

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

64ca0395807bb3ac.pngS

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.

3a50da4381817975.pngS

  • Pilih Pemadaman Regional → Pilih region.

b8dfff376477bcbb.png

  • Pilih region utama, us-west1→ Simulasikan Pemadaman Regional.

76494a750a040bc5.png

Setelah dipilih, cluster akan menampilkan simulasi pemadaman setelah 3-4 menit

Tutup jendela

3a9f0359bd4e288f.pngS

bac1b2db0d754bbf.png

Pastikan us-west1 tidak aktif dan us-west2 sekarang diambil alih sebagai us-west2

Buka Database → psc-mongodb-uswest1-uswest2 → Ringkasan

86fd7d5230715645.png

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:

d262800a557b41a3.png

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

20c2571d84c0661d.png

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

192548e374b444a1.pngS

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

4cebf164c4fecd83.pngS

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

f82e28ac984d9e20.png

Pilih Akhiri simulasi pemadaman —> Keluar

38feaf055abdceea.pngS

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.

f249a61bcc966d41.png

9427a9349daa1fea.pngS

Masukkan nama cluster → Hentikan

9ef6d3a6387c5b4b.pngS

Hapus endpoint pribadi yang terkait dengan us-west1 dan us-west2

Dari UI Versa 3, buka Keamanan → Akses Jaringan → Endpoint Pribadi → Pilih Hentikan

56415ea954b2fec9.pngS

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!!

8c2a10eb841f7b01.jpeg

Apa selanjutnya?

Lihat beberapa codelab ini...

Bacaan lebih lanjut & Video

Dokumen referensi