Mit Private Service Connect auf die multiregionale MongoDB Atlas zugreifen

1. Einführung

Private Service Connect (PSC) vereinfacht die sichere und private Nutzung von Diensten. Dieses Modell macht die Netzwerkarchitektur erheblich einfacher, da Dienstnutzer organisationsübergreifend privat mit Diensterstellern verbunden werden können. Virtual Private Cloud-Peering ist nicht erforderlich. Abbildung 1 zeigt VPC-Peering und PSC-Attribute.

Abbildung 1. 4f9551fc32ed83f5.png

Als Dienstnutzer können Sie flexibel entscheiden, wie Ihre privaten IP-Adressen Diensten zugewiesen werden, und gleichzeitig die Verwaltung von Subnetzbereichen für Producer-VPCs entfällt. Sie können diesem Dienst jetzt einfach eine ausgewählte virtuelle IP-Adresse aus Ihrer VPC mithilfe einer Dienstverbindung zuweisen.

In diesem Codelab erstellen Sie eine umfassende Private Service Connect-Architektur, die die Verwendung des globalen PSC-Zugriffs mit MongoDB-Atlas veranschaulicht.

Mit dem globalen Zugriff können Clients über regionale Grenzen hinweg eine Verbindung zu Private Service Connect (PSC) herstellen. Dies ist nützlich, um Hochverfügbarkeit für verwaltete Dienste zu schaffen, die in mehreren Regionen gehostet werden, oder um Clients den Zugriff auf einen Dienst zu ermöglichen, der sich nicht in derselben Region wie der Client befindet.

2. Globalen Zugriff aktivieren

Der globale Zugriff ist eine optionale Funktion, die in der Weiterleitungsregel auf Nutzerseite konfiguriert wird. Der folgende Befehl zeigt, wie er konfiguriert ist:

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
  • Das Flag --allow-psc-global-access aktiviert den globalen Zugriff auf einen Private Service Connect-Endpunkt
  • Durch den globalen Zugriff kann sich der Client in einer anderen Region als die von Private Service Connect-Weiterleitungsregel befinden. Die Weiterleitungsregel muss sich jedoch in derselben Region befinden wie der Dienstanhang, mit dem er verbunden ist.
  • Für den globalen Zugriff ist keine Konfiguration für den Dienstanhang des Erstellers erforderlich. Sie ist eine reine Verbraucheroption.

Der globale Zugriff kann auch für vorhandene Endpunkte jederzeit aktiviert oder deaktiviert werden. Wenn der globale Zugriff auf einem vorhandenen Endpunkt aktiviert wird, kommt es bei aktiven Verbindungen zu keiner Unterbrechung. Der globale Zugriff wird für eine vorhandene Weiterleitungsregel mit dem folgenden Befehl aktiviert:

gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access

Globalen Zugriff deaktivieren

Der globale Zugriff kann auch für vorhandene Weiterleitungsregeln mit dem Flag --no-allow-psc-global-access deaktiviert werden. Beachten Sie, dass jeglicher aktiver interregionaler Traffic nach der Ausführung dieses Befehls beendet wird.

gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access

3. Aufgaben

  1. Ein multiregionaler MongoDB Atlas-Cluster (Topologie wie in Abbildung 2 beschrieben) wird mit einem Knoten in der Region us-west1 und zwei Knoten in der Region us-west2 erstellt.
  2. Eine Nutzer-VPC und eine zugehörige VM für den Zugriff auf MongoDB-Cluster in us-west1 und us-west2.
  3. Eine VPC und zwei Subnetze in den Regionen „us-west1“ und „us-west2“ mit mindestens 64 kostenlosen IP-Adressen in jedem Subnetz. Erstellen Sie Subnetze mit „/26“ und niedriger.

Der MongoDB-Client wird auf VM1 im Nutzer-VPC installiert. Wenn der primäre Knoten in us-west1 ausfällt, kann der Client über den neuen primären Knoten in us-west2 lesen/schreiben.

Abbildung 2: ab6c2791514c4481.png

Lerninhalte

  • In zwei Regionen bereitgestellte VPC und Subnetze erstellen
  • Multiregionalen MongoDB-Atlas-Cluster bereitstellen
  • Privaten Endpunkt erstellen
  • Mit MongoDB verbinden
  • Multiregionales MongoDB-Failover ausführen und validieren

Voraussetzungen

  • Google Cloud-Projekt
  • Geben Sie ein /26-Subnetz pro Region an
  • Zugriff als Projektinhaber oder Organisationsinhaber auf MongoDB Atlas, um einen MongoDB-Cluster mit Clusterstufe M10 oder höher zu erstellen. (Verwenden Sie GETATLAS, um kostenloses Guthaben für den PoV zu erhalten.)

4. Hinweis

Projekt zur Unterstützung des Codelab aktualisieren

In diesem Codelab wird $variables verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu unterstützen.

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

5. Nutzereinrichtung

Nutzer-VPC erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom

Nutzersubnetze erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1

Erstellen Sie in Cloud Shell den Nutzerendpunkt für 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

Erstellen Sie in Cloud Shell den Nutzerendpunkt für 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

Cloud Router und NAT-Konfiguration

Cloud NAT wird im Codelab für die Installation von Softwarepaketen verwendet, da die VM-Instanzen keine externe IP-Adresse haben.

Erstellen Sie den Cloud Router in Cloud Shell.

gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1

Erstellen Sie das NAT-Gateway in Cloud Shell.

gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1

VM1-Instanzkonfiguration

Im folgenden Abschnitt erstellen Sie die Compute Engine-Instanz vm1.

Erstellen Sie in Cloud Shell die Instanz 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"

Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, müssen Sie eine Firewallregel erstellen, die:

  • Gilt für alle VM-Instanzen, die mit IAP zugänglich sein sollen.
  • Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.

Erstellen Sie in Cloud Shell die IAP-Firewallregel.

gcloud compute firewall-rules create ssh-iap-consumer-vpc \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

6. Multiregionalen MongoDB Atlas-Cluster erstellen

  • Wir müssen einen Atlas-Cluster einrichten, bevor wir mit der PSC-Einrichtung beginnen. Sie können MongoDB Atlas auf eine der folgenden zwei Arten abonnieren:
  • Über den Google Cloud Marketplace, wenn Sie ein Google Cloud-Konto haben. Informationen zum Einrichten des Abos finden Sie in der Dokumentation.
  • Auf der Atlas-Registrierungsseite.
  • Sobald Sie Atlas abonniert haben, klicken Sie auf die Schaltfläche „Datenbank erstellen“ (siehe unten).

796f5bda844bf400.png

  • Neuen Cluster erstellen → Dediziert

56c340661d86962c.png

  • Cloud-Anbieter und Region → Google Cloud
  • Multi-Cloud, multiregional und Arbeitslastisolierung → ausgewählt (blaues Häkchen)

6c10293ffd9814ae.png

  • Auswählbare Knoten → us-west1 (1 Knoten), us-west2 (2 Knoten)

e652bd944d785871.png

  • Clusterstufe → M10, behalten Sie alle anderen Einstellungen bei

ffa0195b96c2c5ff.png

  • Cluster name → psc-mongodb-uswest1-uswest2

3720fb8c15ba5cc2.png

  • Auswählen → Cluster erstellen

ec5e3e6983c02e27.png

  • Die Datenbankerstellung dauert 7–10 Minuten

d75778d5abf484aa.png

Ansicht des Clusters nach der Bereitstellung

1f0ec6a401578650.png

7. Privaten Endpunkt für us-west1 erstellen

  • Melden Sie sich bei Ihrem Atlas-Konto an und navigieren Sie zu Ihrem Projekt.

Neuen Nutzer erstellen, um Lese-/Schreibzugriff auf eine beliebige Datenbank zu gewähren

Sicherheit → Datenbankzugriff wählen Sie „Neuen Datenbanknutzer hinzufügen“ aus. Das folgende Beispiel zeigt einen Nutzernamen und ein Passwort, die als Codelab konfiguriert wurden. Achten Sie darauf, die integrierte Rolle zum Lesen und Schreiben in eine beliebige Datenbank auszuwählen.

f622ab14ddc96fc7.png

  • Unter „Sicherheit“ → „Netzwerkzugriff“ ist für die IP-Zugriffsliste kein Eintrag erforderlich.

Private Endpunkte in MongoDB Atlas vorbereiten

  • Auswählen, Netzwerkzugriff → Private Endpunkte → Dedizierter Cluster → Privaten Endpunkt 88f5c1d9ae7e46d9.png hinzufügen

Cloud-Anbieter

  • Wählen Sie „Google Cloud“ und dann „Weiter“ aus.

5503248bf4019a35.png

Dienstanhang

  • Wählen Sie die Region „us-west1“ und dann „Weiter“ aus.

cb31aea7cad182f9.png

Endpoints

  • Stellen Sie Folgendes bereit, um einen Private Service Connect-Endpunkt zu erstellen:
  • Google Cloud-Projekt-ID: Wählen Sie „Anleitung anzeigen“ aus. für weitere Informationen
  • VPC-Name: consumer-vpc
  • Subnetzname: psc-endpoint-us-west1
  • Präfix für Private Service Connect-Endpunkt: psc-endpoint-us-west1

21d76af5367832f4.png

Endpunkte einrichten

Im folgenden Abschnitt wird ein Shell-Skript generiert, das lokal unter dem Namen „setup_psc.sh“ gespeichert werden sollte. Bearbeiten Sie nach dem Speichern das Shell-Skript, um globalen PSC-Zugriff zu gewähren. Sie können diese Aktion im Cloud Shell-Projekt des Google Cloud-Projekts ausführen.

  • Beispiel für ein Shell-Skript, die Ausgabe hat andere Werte

5c80cf7315a05c25.png

  • Kopieren Sie das Shell-Skript aus der MongoBD-Konsole und speichern Sie die Inhalte im Google Cloud Shell-Terminal. Das Skript muss als „setup_psc.sh“ gespeichert werden.

Beispiel vor der Aktualisierung:

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

Shell-Script für globalen Zugriff aktualisieren

Verwenden Sie den nano- oder vi-Editor, um das Shell-Skript mit der folgenden Syntax zu identifizieren und zu aktualisieren:

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

Beispiel nach der Aktualisierung:

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

Shell-Skript ausführen

Rufen Sie das Skript „setup_psc.sh“ auf und führen Sie es aus. Sobald Sie fertig sind, wird eine Datei mit dem Namen atlasEndpoints-psc-endpoint-us-west1.json erstellt. Die JSON-Datei enthält eine Liste der für den nächsten Schritt der Bereitstellung erforderlichen IP-Adressen und Private Service Connect-Endpunktnamen.

Führen Sie in Cloud Shell die folgenden Schritte aus:

sh setup_psc.sh

Sobald das Skript abgeschlossen ist, laden Sie atlasEndpoints-psc-endpoint-us-west1.json mit dem Cloud Shell-Editor lokal herunter.

2856802dd6497f51.png b0059dc8e1558891.png

JSON-Datei hochladen

Laden Sie die zuvor gespeicherte JSON-Datei atlasEndpoints-psc-endpoint-us-west1.json hoch.

8d9952d793a.png

4938fd8256eb81b4.png

Wählen Sie „Erstellen“ aus.

Private Service Connect-Endpunkte validieren

Gehen Sie in der MongoDB-Benutzeroberfläche zu Ihrem Projekt und wählen Sie dann „Sicherheit“ → „Netzwerkzugriff“ → „Privater Endpunkt“ aus. Wenn Sie den Tab, den dedizierten Cluster auswählen, dauert der Endpunktwechsel zu „Verfügbar“ 10 Minuten.

Verfügbarer Status

972aff09d180d9de.png

Gehen Sie in der Google Cloud Console zu „Netzwerkdienste“ → „Private Services Connect“ und wählen Sie den Tab „Verbundener Endpunkt“ aus, auf dem die Umstellung der Nutzerendpunkte „Ausstehend“ → „Akzeptiert“ angezeigt wird. Beispiel unten:

5472dd938604b3.png

8. Privaten Endpunkt für us-west2 erstellen

  • Melden Sie sich bei Ihrem Atlas-Konto an und navigieren Sie zu Ihrem Projekt.

Private Endpunkte in MongoDB Atlas vorbereiten

  • Auswählen, Netzwerkzugriff → Private Endpunkte → Dedizierter Cluster → Privaten Endpunkt 88f5c1d9ae7e46d9.png hinzufügen

Cloud-Anbieter

  • Wählen Sie „Google Cloud“ und dann „Weiter“ aus.

5503248bf4019a35.png

Dienstanhang

  • Wählen Sie die Region „us-west2“ und dann „Weiter“ aus.

fc0b7a8e4274be3b.png

Endpoints

  • Stellen Sie Folgendes bereit, um einen Private Service Connect-Endpunkt zu erstellen:
  • Google Cloud-Projekt-ID: Wählen Sie „Anleitung anzeigen“ aus. für weitere Informationen
  • VPC-Name: consumer-vpc
  • Subnetzname: psc-endpoint-us-west2
  • Präfix für Private Service Connect-Endpunkt: psc-endpoint-us-west2

17b5a056587ede8a.png

Endpunkte einrichten

Im folgenden Abschnitt wird ein Shell-Skript generiert, das lokal unter dem Namen „setup_psc.sh“ gespeichert werden sollte. Bearbeiten Sie nach dem Speichern das Shell-Skript, um globalen PSC-Zugriff zu gewähren. Sie können diese Aktion im Cloud Shell-Projekt des Google Cloud-Projekts ausführen.

  • Beispiel für ein Shell-Skript, die Ausgabe hat andere Werte

b021821e7d59f450.png

  • Kopieren Sie das Shell-Skript aus der MongoBD-Konsole und speichern Sie die Inhalte im Google Cloud Shell-Terminal. Das Skript muss als „setup_psc.sh“ gespeichert werden.

Beispiel vor der Aktualisierung:

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

Shell-Script für globalen Zugriff aktualisieren

Verwenden Sie den nano- oder vi-Editor, um das Shell-Skript mit der folgenden Syntax zu identifizieren und zu aktualisieren:

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

Beispiel nach der Aktualisierung:

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

Shell-Skript ausführen

Rufen Sie das Skript „setup_psc.sh“ auf und führen Sie es aus. Sobald Sie fertig sind, wird eine Datei mit dem Namen atlasEndpoints-psc-endpoint-us-west2.json erstellt. Die JSON-Datei enthält eine Liste der für den nächsten Schritt der Bereitstellung erforderlichen IP-Adressen und Private Service Connect-Endpunktnamen.

Führen Sie in Cloud Shell die folgenden Schritte aus:

sh setup_psc.sh

Laden Sie nach Abschluss des Skripts mit dem Cloud Shell-Editor die Datei atlasEndpunkte-psc-endpoint-us-west2.json lokal herunter.

2856802dd6497f51.png 6e3d944944718f13.png

JSON-Datei hochladen

Laden Sie die zuvor gespeicherte JSON-Datei atlasEndpoints-psc-endpoint-us-west2.json hoch.

8d9952d793a.png

4938fd8256eb81b4.png

Wählen Sie „Erstellen“ aus.

Private Service Connect-Endpunkte validieren

Gehen Sie in der MongoDB-Benutzeroberfläche zu Ihrem Projekt und wählen Sie dann „Sicherheit“ → „Netzwerkzugriff“ → „Privater Endpunkt“ aus. Auswahl des Tabs, dedizierter Cluster, der Endpunktwechsel wechselt nach 10 Minuten zu „Verfügbar“.

Verfügbarer Status:

8801df4f6b39d20a.png

Gehen Sie in der Google Cloud Console zu „Netzwerkdienste“ → „Private Services Connect“ und wählen Sie den Tab „Verbundener Endpunkt“ aus, auf dem die Umstellung der Nutzerendpunkte „Ausstehend“ → „Akzeptiert“ angezeigt wird, wie unten im Beispiel unten. Insgesamt werden 100 Endpunkte auf dem Nutzerendpunkt bereitgestellt und müssen vor dem nächsten Schritt zu „Angenommen“ wechseln.

6131abcdef5c1f49.png

9. Von privaten Endpunkten aus mit MongoDB-Atlas verbinden

Nachdem die privaten Dienstverbindungen angenommen wurden, ist eine weitere Zeit (10–15 Minuten) erforderlich, um den MongoDB-Cluster zu aktualisieren. In der MongoDB-Benutzeroberfläche wird das Clusterupdate durch die graue Umrandung dargestellt. Daher ist keine Verbindung zum privaten Endpunkt möglich.

c1524d2c0c5765d1.png

Identifizieren Sie die Bereitstellung und wählen Sie „Verbinden“ aus. (Beachten Sie, dass das graue Feld nicht mehr angezeigt wird.)

3eea96af20bfad20.png

Wählen Sie den Verbindungstyp → „Privater Endpunkt“ und dann „Verbindungsmethode auswählen“ aus.

16a9090e495640c7.png

Wählen Sie „Mit der MongoDB Shell verbinden“ aus.

35e422af16cb5ce0.png

Wählen Sie „Ich habe MongoDB Shell nicht installiert und Ubuntu 20.4 nicht installiert“ aus. Kopieren Sie den Inhalt von Schritt 1 und Schritt 3 in einen Notepad.

51be47403c00bab4.png

10. Mongosh App installieren

Vor der Installation müssen Sie eine Befehlszeichenfolge auf der Grundlage der zuvor kopierten Werte erstellen, die Sie in den Schritten 1 und 3 erhalten haben. Anschließend stellen Sie über Cloud Shell eine SSH-Verbindung zu vm1 her, gefolgt von der Installation und Validierung der mongoschischen Anwendung in der primären Datenbank (us-west1). Das Ubuntu 20.4-Image wurde beim Erstellen von vm1 in der Consumer-Version von VPC installiert.

Wählen Sie eine Verbindungsmethode aus: Schritt 1, Download-URL kopieren

5da980ff86265dd8.png

Beispiel für einen Befehlsstring, den Sie durch Ihre benutzerdefinierten Werte ersetzen können:

https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb

Verbindungsmethode auswählen (Schritt 3):

698286bdf3dee3c7.png

Beispiel für einen Befehlsstring, den Sie durch Ihre benutzerdefinierten Werte ersetzen können:

mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab

Bei VM1 anmelden

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

Melden Sie sich mit IAP in Cloud Shell bei vm1 an. Versuchen Sie es bei einer Zeitüberschreitung noch einmal.

gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap

Installation über das Betriebssystem ausführen

Installieren Sie über das Cloud Shell-Betriebssystem-Login. Zusätzliche Informationen sind verfügbar. Aktualisieren Sie die Syntax unten mit Ihrem benutzerdefinierten String.

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -

Der Vorgang sollte mit einem

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

Verbindung zur MongoDB-Bereitstellung herstellen

Führen Sie in der Cloud Shell-Betriebssystemanmeldung die folgenden Schritte aus. Der konfigurierte Nutzername und das Passwort sind Codelab.

mongosh

mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab

Beispiel:

d5d0324a273b4d5e.png

Befehle für die Datenbank ausführen

Führen Sie in der Cloud Shell-Betriebssystemanmeldung die folgenden Schritte aus.

show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})

11. Failover für aktive MongoDB-Region, us-west1

Bevor wir den Failover durchführen, überprüfen wir, ob us-west1 primär ist und us-west2 über zwei sekundäre Knoten verfügt.

Gehen Sie zu Datenbank → psc-mongodb-uswest1-uswest2 → Übersicht

64ca0395807bb3ac.png

Melden Sie sich im folgenden Abschnitt bei vm1 in us-west1 an, führen Sie einen Failover der primären MongoDB-Clusterregion us-west1 durch und prüfen Sie, ob die Datenbank noch über den MongoDB-Cluster in us-west2 erreichbar ist.

Sie können sowohl den primären als auch den regionalen Failover über die Atlas-Benutzeroberfläche testen.

  • Melde dich bei der Atlas-Benutzeroberfläche an.
  • Klicken Sie neben dem Clusternamen auf [...]: „psc-mongodb-uswest1-uswest2“ → „Testausfall“.

5a50da4381817975.png

  • Wählen Sie „Regionaler Ausfall“ → „Regionen auswählen“ aus.

b8dfff376477bcbb.png

  • Wählen Sie die primäre Region „us-west1“ → „Regionalen Ausfall simulieren“ aus.

76494a750a040bc5.png

Nach der Auswahl wird im Cluster nach 3–4 Minuten eine Ausfallsimulation angezeigt

Fenster schließen

7a1f0359bd4e288f.png

bac1b2db0d754bbf.png

Vergewissern Sie sich, dass us-west1 nicht verfügbar ist und us-west2 jetzt als primär übernommen wurde.

Gehen Sie zu Datenbank → psc-mongodb-uswest1-uswest2 → Übersicht

86fd7d5230715645.png

Konnektivität zum Cluster mit der neuen primären Instanz us-west2 validieren

Melden Sie sich bei vm1 in us-west1 an und greifen Sie auf mongodb in us-west2 zu, um den globalen Zugriff auf Private Service Connect zu validieren.

Führen Sie Folgendes aus, wenn Ihre Cloud Shell-Sitzung beendet wurde:

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

Melden Sie sich mit IAP in Cloud Shell bei vm1 an. Versuchen Sie es noch einmal, wenn es zu einer Zeitüberschreitung kommt.

gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap

Verbindung zur MongoDB-Bereitstellung herstellen

Führen Sie in der Cloud Shell-Betriebssystemanmeldung die folgenden Schritte aus.

mongosh

mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab

Beispiel:

d262800a557b41a3.png

Befehle für die Datenbank ausführen

Führen Sie in der Cloud Shell-Betriebssystemanmeldung die folgenden Schritte aus.

show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()

exit

20c2571d84c0661d.png

Erfolg: Sie haben geprüft, dass der globale PSC-Zugriff eine nahtlose Verbindung von Verbraucherendpunkten über Regionen hinweg ermöglicht, um eine hohe Verfügbarkeit oder aufgrund regionaler Ausfälle zu ermöglichen. Im Codelab trat der regionale MongoDB-Failover im primären Knoten in us-west1 auf. Daher wurde die sekundäre Region us-west2 von der sekundären Region us-west2 übernommen. Obwohl der Cluster zu einem regionalen Ausfall führte, hat die Nutzer-VM1 in us-west1 erfolgreich den neuen primären Cluster in us-west2 erreicht.

12. Bereinigen

Nutzerendpunkte aus der Cloud Console löschen

Gehen Sie zu Netzwerkdienste → Private Service Connect → VERBUNDENE ENDPUNKTE

Verwenden Sie den Filter psc-endpoint, um das potenzielle Löschen von Nicht-Lab-Nutzerendpunkten zu vermeiden. Alle Endpunkte auswählen → LÖSCHEN

192548e374b444a1.png

Löschen Sie die statischen internen IP-Adressen, die mit den Nutzerendpunkten verknüpft sind.

VPC-Netzwerk aufrufen → „consumer-vpc“ → STATISCHE INTERNE IP-ADRESSEN

Verwenden Sie den Filter psc-endpoint, um das potenzielle Löschen von Nicht-Lab-Nutzerendpunkten zu vermeiden und die Zeilen pro Seite auf 100 zu erhöhen. Alle Endpunkte auswählen → FREIGEBEN

4cebf164c4fecd83.png

Löschen Sie in Cloud Shell Codelab-Komponenten.

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

Identifizieren Sie in der Atlas-Benutzeroberfläche den Cluster psc-mongodb-uswest1-uswest2 → Simulation beenden

f82e28ac984d9e20.png

Wählen Sie „Ausfallsimulation beenden“ aus —> Beenden

28feaf055abdceea.png

Der Cluster setzt jetzt us-west1 als primären Cluster zurück. Dieser Vorgang dauert 3–4 Minuten. Wenn der Vorgang abgeschlossen ist, beenden Sie den Cluster. Achten Sie dabei auf die graue Umrandung, die auf eine Statusänderung hinweist.

f249a61bcc966d41.png

9427a9349daa1fea.png

Geben Sie den Clusternamen ein → Beenden

9ef6d3a6387c5b4b.png

Privaten Endpunkt löschen, der mit us-west1 und us-west2 verknüpft ist

Gehe in der Atlas-Benutzeroberfläche zu „Sicherheit“ → „Netzwerkzugriff“ → „Privater Endpunkt“ → „Beenden“ auswählen

56415ea954b2fec9.png

13. Glückwunsch

Sie haben nun einen Private Service Connect-Endpunkt mit globalem, regionsübergreifendem Zugriff auf MongoDB erfolgreich konfiguriert und validiert. Sie haben erfolgreich eine Nutzer-VPC, eine multiregionale MongoDB und Nutzerendpunkte erstellt. Eine VM in us-west1 konnte beim regionalen Failover sowohl in us-west1 als auch in us-west2 erfolgreich mit MongoDB verbunden werden.

Cosmopup findet Codelabs super!!

8c2a10eb841f7b01.jpeg

Was liegt als Nächstes an?

Sehen Sie sich einige dieser Codelabs an...

Weitere Informationen und Videos

Referenzdokumente