Mengakses MongoDB Atlas multi-regional dengan Private Service Connect

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

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

  1. 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.
  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 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. ab6c2791514c4481.png

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.

796f5bda844bf400.png

  • Buat cluster baru → Khusus

56c340661d86962c.png

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

6c10293ffd9814ae.png

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

  • Pilih → Buat Cluster

ec5e3e6983c02e27.png

  • Pembuatan database memerlukan waktu 7-10 menit

d75778d5abf484aa.png

Tampilan cluster setelah di-deploy

1f0ec6a401578650.png

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.

f622ab14ddc96fc7.png

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

Penyedia cloud

  • Pilih Google Cloud, lalu berikutnya

5503248bf4019a35.png

Lampiran layanan

  • Pilih region, us-west1, lalu berikutnya

cb31aea7cad182f9.png

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

21d76af5367832f4.png

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

5c80cf7315a05c25.png

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

2856802dd6497f51.png b0059dc8e1558891.png

Mengupload file JSON

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

3a74e8d9952d793a.png

4938fd8256eb81b4.png

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

972aff09d180d9de.png

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:

5472dd938604b3.png

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

Penyedia cloud

  • Pilih Google Cloud, lalu berikutnya

5503248bf4019a35.png

Lampiran layanan

  • Pilih region, us-west2, lalu berikutnya

fc0b7a8e4274be3b.png

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

17b5a056587ede8a.png

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

b021821e7d59f450.png

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

2856802dd6497f51.png 6e3d944944718f13.png

Mengupload file JSON

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

3a74e8d9952d793a.png

4938fd8256eb81b4.png

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:

8801df4f6b39d20a.png

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.

6131abcdef5c1f49.png

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.

c1524d2c0c5765d1.png

Identifikasi deployment, lalu pilih Connect (perhatikan bahwa kotak abu-abu tidak ada lagi)

3eea96af20bfad20.png

Pilih jenis koneksi → Endpoint pribadi, pilih Pilih metode koneksi

16a9090e495640c7.png

Pilih Connect with the MongoDB Shell

35e422af16cb5ce0.png

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.

51be47403c00bab4.png

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

5da980ff86265dd8.png

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

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:

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

64ca0395807bb3ac.png

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.

3a50da4381817975.png

  • Pilih Pemadaman Regional → Pilih wilayah.

b8dfff376477bcbb.png

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

76494a750a040bc5.png

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

Tutup jendela

3a9f0359bd4e288f.png

bac1b2db0d754bbf.png

Verifikasi bahwa us-west1 tidak aktif dan us-west2 kini diambil alih sebagai utama

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

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

192548e374b444a1.png

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

4cebf164c4fecd83.png

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

f82e28ac984d9e20.png

Pilih Akhiri simulasi pemadaman —> Keluar

38feaf055abdceea.png

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.

f249a61bcc966d41.png

9427a9349daa1fea.png

Masukkan nama cluster → Berhenti

9ef6d3a6387c5b4b.png

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

Dari UI Atlas, buka Keamanan → Akses Jaringan → Endpoint Pribadi → Pilih Akhiri

56415ea954b2fec9.png

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.

8c2a10eb841f7b01.jpeg

Apa selanjutnya?

Lihat beberapa codelab ini...

Bacaan lebih lanjut & Video

Dokumen referensi