1. Einführung
Private Service Connect (PSC) vereinfacht die sichere und private Nutzung von Diensten. Dieses Modell vereinfacht die Netzwerkarchitektur erheblich, da Dienstnutzer organisationsübergreifend eine private Verbindung zu Diensterstellern herstellen können. Außerdem ist kein VPC-Peering mehr erforderlich. Abbildung 1 zeigt VPC-Peering und PSC-Attribute.
Abbildung 1. 
Als Dienstnutzer haben Sie die Flexibilität, die Zuweisung Ihrer privaten IP-Adressen an Dienste selbst zu bestimmen. Gleichzeitig entfällt die Verwaltung von Subnetzbereichen für Ersteller-VPCs. Sie können einem solchen Dienst jetzt einfach eine ausgewählte virtuelle IP aus Ihrer VPC über eine Dienstverbindung zuweisen.
In diesem Codelab erstellen Sie eine umfassende Private Service Connect-Architektur, die die Verwendung von globalem PSC-Zugriff mit MongoDB Atlas veranschaulicht.
Mit dem globalen Zugriff können Clients regionsübergreifend 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 ein optionales Feature, das für die Weiterleitungsregel auf Verbraucherseite konfiguriert wird. Der folgende Befehl zeigt, wie er konfiguriert wird:
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-accessaktiviert den globalen Zugriff auf einen Private Service Connect-Endpunkt. - Durch den globalen Zugriff kann sich der Client in einer anderen Region als die Private Service Connect-Weiterleitungsregel befinden. Die Weiterleitungsregel muss sich jedoch weiterhin in derselben Region wie der Dienstanhang befinden, mit dem sie verbunden ist.
- Es ist keine Konfiguration der Dienstanhänge des Producers erforderlich, um den globalen Zugriff zu ermöglichen. Es handelt sich ausschließlich um eine Option für Nutzer.
Der globale Zugriff kann auch für vorhandene Endpunkte jederzeit aktiviert oder deaktiviert werden. Das Aktivieren des globalen Zugriffs für einen vorhandenen Endpunkt führt nicht zu einer Unterbrechung des Traffics für aktive Verbindungen. 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 aktiver regionsübergreifender Traffic nach Ausführung dieses Befehls beendet wird.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Aufgaben
- Ein multiregionaler MongoDB Atlas-Cluster (Topologie siehe Abbildung 2) wird mit einem Knoten in der Region „us-west1“ und zwei Knoten in der Region „us-west2“ erstellt.
- Eine Consumer-VPC und eine zugehörige VM für den Zugriff auf MongoDB-Cluster in „us-west1“ und „us-west2“.
- Eine VPC und zwei Subnetze in den Regionen „us-west1“ und „us-west2“ mit mindestens 64 kostenlosen IP-Adressen in jedem Subnetz (Subnetze mit „/26“ und darunter erstellen).
Der MongoDB-Client wird auf „vm1“ in der 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 und schreiben.
Abbildung 2. 
Lerninhalte
- VPC und Subnetze erstellen, die in zwei Regionen bereitgestellt werden
- Multiregionalen MongoDB Atlas-Cluster bereitstellen
- Privaten Endpunkt erstellen
- Verbindung zu MongoDB herstellen
- Multiregionen-Failover für MongoDB ausführen und validieren
Voraussetzungen
- Google Cloud-Projekt
- Geben Sie ein /26-Subnetz pro Region an.
- Der Projektinhaber oder Organisationsinhaber muss Zugriff auf MongoDB Atlas haben, um einen MongoDB-Cluster mit der Clusterstufe M10 oder höher zu erstellen. (Verwenden Sie GETATLAS, um kostenloses Guthaben für die Ausführung des PoV zu erhalten.)
4. Hinweis
Projekt für das Codelab aktualisieren
In diesem Codelab werden $Variablen verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu erleichtern.
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Einrichtung durch Nutzer
Consumer-VPC erstellen
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Nutzer-Subnetze erstellen
Führen Sie in Cloud Shell folgende 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
Konfiguration der Instanz vm1
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, erstellen Sie eine Firewallregel, die:
- Gilt für alle VM-Instanzen, die über 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
- Bevor wir mit der Einrichtung von PSC beginnen, müssen wir einen Atlas-Cluster einrichten. Sie können MongoDB Atlas auf eine der beiden folgenden Arten abonnieren:
- Über den Google Cloud Marketplace, wenn Sie ein Google Cloud-Konto haben. Weitere Informationen
- Atlas-Registrierungsseite
- Klicken Sie nach dem Abonnieren von Atlas auf die Schaltfläche „Datenbank erstellen“ (siehe unten).

- Neuen Cluster erstellen → Dediziert

- Cloud-Anbieter und ‑Region → Google Cloud
- Multi-Cloud, Multi-Region und Arbeitslastisolierung → Ausgewählt (blaues Häkchen)

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

- Cluster-Tier → M10, alle anderen Einstellungen als Standard beibehalten

- Clustername → psc-mongodb-uswest1-uswest2

- Wählen Sie „→ Cluster erstellen“ aus.

- Die Erstellung der Datenbank dauert 7 bis 10 Minuten.

Ansicht des Clusters nach der Bereitstellung

7. Privaten Endpunkt für us-west1 erstellen
- Melden Sie sich in Ihrem Atlas-Konto an und rufen Sie Ihr Projekt auf.
Neuen Nutzer erstellen, um Lese-/Schreibzugriff auf eine beliebige Datenbank zu ermöglichen
Wählen Sie „Sicherheit“ → „Datenbankzugriff“ aus und klicken Sie auf „Neuen Datenbanknutzer hinzufügen“. Im Folgenden finden Sie ein Beispiel, in dem Nutzername und Passwort als Codelab konfiguriert sind. Achten Sie darauf, dass Sie die integrierte Rolle „Lesen und Schreiben in beliebige Datenbanken“ auswählen.

- Unter „Sicherheit“ → „Netzwerkzugriff“ ist für die IP-Zugriffsliste kein Eintrag erforderlich.
Private Endpunkte in MongoDB Atlas vorbereiten
- Wählen Sie „Netzwerkzugriff“ → „Private Endpunkte“ → „Dedizierter Cluster“ → „Privaten Endpunkt hinzufügen“
aus.
Cloudanbieter
- Wählen Sie Google Cloud und dann „Weiter“ aus.

Dienstanhang
- Wählen Sie die Region „us-west1“ aus und klicken Sie auf „Weiter“.

Endpoints
- Geben Sie Folgendes an, um einen Private Service Connect-Endpunkt zu erstellen:
- Google Cloud-Projekt-ID: Wählen Sie „Anleitung anzeigen“ aus, um weitere Informationen zu erhalten.
- VPC-Name: consumer-vpc
- Subnetzname: psc-endpoint-us-west1
- Präfix des Private Service Connect-Endpunkts: psc-endpoint-us-west1

Endpunkte einrichten
Im folgenden Abschnitt wird ein Shell-Skript generiert, das lokal unter dem Namen „setup_psc.sh“ gespeichert werden sollte. Bearbeiten Sie das Shell-Skript nach dem Speichern, um globalen Zugriff auf psc zu ermöglichen. Sie können diese Aktion in Cloud Shell im Google Cloud-Projekt ausführen.
- Beispiel für ein Shell-Script (Ihre Ausgabe wird andere Werte enthalten)

- Kopieren Sie das Shell-Skript aus der MongoDB-Konsole und speichern Sie den Inhalt im Google Cloud Cloud Shell-Terminal. Achten Sie darauf, das Skript als „setup_psc.sh“ zu speichern.
Beispiel vor dem 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
Shell-Skript für globalen Zugriff aktualisieren
Verwenden Sie den Nano- oder Vi-Editor, um das Shell-Script 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-Script ausführen
Rufen Sie das Skript „setup_psc.sh“ auf und führen Sie es aus. Nach Abschluss wird die Datei atlasEndpoints-psc-endpoint-us-west1.json erstellt. Die JSON-Datei enthält eine Liste von IP-Adressen und Private Service Connect-Endpunktnamen, die für den nächsten Schritt der Bereitstellung erforderlich sind.
Führen Sie in Cloud Shell folgende Schritte aus:
sh setup_psc.sh
Wenn das Skript abgeschlossen ist, laden Sie atlasEndpoints-psc-endpoint-us-west1.json mit dem Cloud Shell-Editor lokal herunter.

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


„Erstellen“ auswählen
Private Service Connect-Endpunkte validieren
Rufen Sie in der MongoDB-Benutzeroberfläche Ihr Projekt auf und wählen Sie „Security“ → „Network access“ → „Private endpoint“ aus. Wenn Sie den Tab „Dedicated Cluster“ auswählen, dauert es 10 Minuten, bis der Endpunkt verfügbar ist.
Verfügbarer Status

Rufen Sie in der Google Cloud Console „Netzwerkdienste“ → „Private Service Connect“ auf und wählen Sie den Tab „Verbundener Endpunkt“ aus. Dort werden die Nutzerendpunkte angezeigt, die von „Ausstehend“ zu „Akzeptiert“ wechseln. Beispiel:

8. Erstellung privater Endpunkte für „us-west2“
- Melden Sie sich in Ihrem Atlas-Konto an und rufen Sie Ihr Projekt auf.
Private Endpunkte in MongoDB Atlas vorbereiten
- Wählen Sie „Netzwerkzugriff“ → „Private Endpunkte“ → „Dedizierter Cluster“ → „Privaten Endpunkt hinzufügen“
aus.
Cloudanbieter
- Wählen Sie Google Cloud und dann „Weiter“ aus.

Dienstanhang
- Wählen Sie die Region „us-west2“ aus und klicken Sie auf „Weiter“.

Endpoints
- Geben Sie Folgendes an, um einen Private Service Connect-Endpunkt zu erstellen:
- Google Cloud-Projekt-ID: Wählen Sie „Anleitung anzeigen“ aus, um weitere Informationen zu erhalten.
- VPC-Name: consumer-vpc
- Subnetzname: psc-endpoint-us-west2
- Präfix des Private Service Connect-Endpunkts: psc-endpoint-us-west2

Endpunkte einrichten
Im folgenden Abschnitt wird ein Shell-Skript generiert, das lokal unter dem Namen „setup_psc.sh“ gespeichert werden sollte. Bearbeiten Sie das Shell-Skript nach dem Speichern, um globalen Zugriff auf psc zu ermöglichen. Sie können diese Aktion in Cloud Shell im Google Cloud-Projekt ausführen.
- Beispiel für ein Shell-Script (Ihre Ausgabe wird andere Werte enthalten)

- Kopieren Sie das Shell-Skript aus der MongoDB-Konsole und speichern Sie den Inhalt im Google Cloud Cloud Shell-Terminal. Achten Sie darauf, das Skript als „setup_psc.sh“ zu speichern.
Beispiel vor dem 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
Shell-Skript für globalen Zugriff aktualisieren
Verwenden Sie den Nano- oder Vi-Editor, um das Shell-Script 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-Script ausführen
Rufen Sie das Skript setup_psc.sh auf und führen Sie es aus. Nach Abschluss wird die Datei atlasEndpoints-psc-endpoint-us-west2.json erstellt. Die JSON-Datei enthält eine Liste von IP-Adressen und Private Service Connect-Endpunktnamen, die für den nächsten Schritt der Bereitstellung erforderlich sind.
Führen Sie in Cloud Shell folgende Schritte aus:
sh setup_psc.sh
Wenn das Skript abgeschlossen ist, laden Sie die Datei „atlasEndpoints-psc-endpoint-us-west2.json“ mit dem Cloud Shell-Editor lokal herunter.

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


„Erstellen“ auswählen
Private Service Connect-Endpunkte validieren
Rufen Sie in der MongoDB-Benutzeroberfläche Ihr Projekt auf und wählen Sie „Security“ → „Network access“ → „Private endpoint“ aus. Wenn Sie den Tab „Dedicated Cluster“ auswählen, ist der Endpunkt nach 10 Minuten verfügbar.
Verfügbarer Status:

Rufen Sie in der Google Cloud Console „Netzwerkdienste“ → „Private Service Connect“ auf und wählen Sie den Tab „Verbundener Endpunkt“ aus, auf dem die Nutzerendpunkte mit dem Status „Ausstehend“ → „Akzeptiert“ angezeigt werden (siehe Beispiel unten). Insgesamt 100 Endpunkte werden im Nutzerendpunkt bereitgestellt und müssen in den Status „Akzeptiert“ übergehen, bevor Sie mit dem nächsten Schritt fortfahren können.

9. Verbindung zu MongoDB Atlas über private Endpunkte herstellen
Nachdem die Private Service Connect-Verbindungen akzeptiert wurden, dauert es weitere 10 bis 15 Minuten, bis der MongoDB-Cluster aktualisiert wird. In der MongoDB-Benutzeroberfläche stellt die graue Umrisslinie die Clusteraktualisierung dar. Daher ist keine Verbindung zum privaten Endpunkt möglich.

Suchen Sie die Bereitstellung und wählen Sie „Connect“ (Verbinden) aus. Das graue Feld ist nicht mehr vorhanden.

Wählen Sie „Verbindungstyp“ → „Privater Endpunkt“ aus und klicken Sie auf „Verbindungsmethode auswählen“.

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

Wählen Sie „I do not have the MongoDB Shell installed, Ubuntu 20.4“ (Ich habe die MongoDB-Shell nicht installiert, Ubuntu 20.4) aus und kopieren Sie den Inhalt von Schritt 1 und Schritt 3 in einen Editor.

10. mongosh-Anwendung installieren
Vor der Installation müssen Sie einen Befehlsstring erstellen, der auf den zuvor kopierten Werten aus Schritt 1 und 3 basiert. Danach stellen Sie mit Cloud Shell eine SSH-Verbindung zu vm1 her, installieren die mongosh-Anwendung und validieren sie für die primäre Datenbank (us-west1). Beim Erstellen von „vm1“ in der Consumer-VPC wurde das Ubuntu 20.4-Image installiert.
Verbindungsmethode auswählen: Schritt 1: Download-URL kopieren

Beispiel für einen Befehlsstring. Ersetzen Sie die Werte durch Ihre benutzerdefinierten Werte:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Wählen Sie eine Verbindungsmethode aus (Schritt 3).

Beispiel für einen Befehlsstring. Ersetzen Sie die Werte durch Ihre benutzerdefinierten Werte:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Anmelden auf „vm1“
Führen Sie in Cloud Shell folgende 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. Wiederholen Sie den Vorgang, wenn es zu einem Zeitüberschreitungsfehler kommt.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Installation über das Betriebssystem durchführen
Führen Sie die Installation über die Cloud Shell-Betriebssystemanmeldung durch. Weitere Informationen. 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 nach der Betriebssystemanmeldung in Cloud Shell die folgenden Schritte aus. Der konfigurierte Nutzername und das konfigurierte Passwort lauten „codelab“.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Beispiel:

Befehle für die Datenbank ausführen
Führen Sie nach der Betriebssystemanmeldung in Cloud Shell die folgenden Schritte aus.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Failover der aktiven MongoDB-Region „us-west1“
Bevor wir das Failover durchführen, prüfen wir, ob „us-west1“ primär ist und „us-west2“ zwei sekundäre Knoten hat.
Gehen Sie zu „Database“ → „psc-mongodb-uswest1-uswest2“ → „Overview“.

Im folgenden Abschnitt melden Sie sich bei vm1 in us-west1 an, führen ein Failover der primären MongoDB-Clusterregion us-west1 durch und prüfen, ob die Datenbank weiterhin vom MongoDB-Cluster in us-west2 aus erreichbar ist.
Sie können sowohl das primäre als auch das regionale Failover über die Atlas-Benutzeroberfläche testen.
- Melden Sie sich in der Atlas-Benutzeroberfläche an.
- Klicken Sie neben dem Clusternamen auf das Dreipunkt-Menü [...], z. B. psc-mongodb-uswest1-uswest2 → „Test Outage“ (Testausfall).

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

- Wählen Sie die primäre Region aus: „us-west1“ → „Simulate Regional Outage“ (Regionalen Ausfall simulieren).

Nach der Auswahl des Clusters wird nach 3–4 Minuten eine Ausfallsimulation angezeigt.
Fenster schließen


Prüfen Sie, ob „us-west1“ ausgefallen ist und „us-west2“ jetzt als primäre Zone übernommen wurde.
Gehen Sie zu „Database“ → „psc-mongodb-uswest1-uswest2“ → „Overview“.

Konnektivität zum Cluster über den neuen primären Knoten (us-west2) prüfen
Melden Sie sich bei vm1 in us-west1 an und greifen Sie auf MongoDB in us-west2 zu, um den globalen Zugriff von Private Service Connect zu validieren.
Wenn Ihre Cloud Shell-Sitzung beendet wurde, gehen Sie so vor:
Führen Sie in Cloud Shell folgende 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. Wiederholen Sie den Vorgang, wenn es zu einem Zeitüberschreitungsfehler kommt.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Verbindung zur MongoDB-Bereitstellung herstellen
Führen Sie nach der Betriebssystemanmeldung in Cloud Shell 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:

Befehle für die Datenbank ausführen
Führen Sie nach der Betriebssystemanmeldung in Cloud Shell die folgenden Schritte aus.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit

Erfolg: Sie haben bestätigt, dass der globale PSC-Zugriff eine nahtlose Verbindung zum Consumer-Endpunkt über Regionen hinweg ermöglicht, um die Hochverfügbarkeit zu unterstützen oder aufgrund von regionalen Ausfällen. Im Codelab ist ein regionales MongoDB-Failover auf dem primären Knoten in us-west1 aufgetreten. Daher hat die sekundäre Region us-west2 die primäre Rolle übernommen. Obwohl der Cluster zu einem regionalen Ausfall führte, konnte die Consumer-VM1 in „us-west1“ den neuen primären Cluster in „us-west2“ erreichen.
12. Bereinigen
Löschen Sie die Consumer-Endpunkte in der Cloud Console.
Rufen Sie „Netzwerkdienste“ → „Private Service Connect“ → „VERBUNDENE ENDPUNKTE“ auf.
Verwenden Sie den Filter psc-endpoint, um das potenzielle Löschen von Consumer-Endpunkten zu verhindern, die nicht für das Labor bestimmt sind. Alle Endpunkte auswählen → LÖSCHEN

Löschen Sie die statischen internen IP-Adressen, die mit den Nutzerendpunkten verknüpft sind.
Rufen Sie „VPC-Netzwerk“ → „consumer-vpc“ → „STATISCHE INTERNE IP-ADRESSEN“ auf.
Verwenden Sie den Filter psc-endpoint, um das potenzielle Löschen von Consumer-Endpunkten zu vermeiden, die nicht zum Labor gehören, und erhöhen Sie die Anzahl der Zeilen pro Seite auf 100. Alle Endpunkte auswählen → VERÖFFENTLICHEN

Löschen Sie die Codelab-Komponenten über 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
Cluster psc-mongodb-uswest1-uswest2 über die Atlas-Benutzeroberfläche identifizieren → Simulation beenden

Wählen Sie „Ausfallsimulation beenden“ –> „Beenden“ aus.

Der Cluster wird jetzt auf „us-west1“ als primären Cluster zurückgesetzt. Dieser Vorgang dauert 3–4 Minuten. Beenden Sie den Cluster, sobald Sie fertig sind. Die graue Umrandung weist auf eine Statusänderung hin.


Clusternamen eingeben → Beenden

Löschen Sie den privaten Endpunkt, der mit „us-west1“ und „us-west2“ verknüpft ist.
Klicken Sie in der Atlas-Benutzeroberfläche auf „Security“ → „Network Access“ → „Private Endpoint“ → „Select Terminate“.

13. Glückwunsch
Sie haben einen Private Service Connect-Endpunkt mit globalem Zugriff auf MongoDB erfolgreich konfiguriert und validiert. Sie haben erfolgreich eine Nutzer-VPC, eine Multi-Region-MongoDB und Nutzerendpunkte erstellt. Eine VM in us-west1 hat nach dem regionalen Failover erfolgreich eine Verbindung zu MongoDB in us-west1 und us-west2 hergestellt.
Cosmopup findet Codelabs toll!!

Nächste Schritte
Hier finden Sie einige Codelabs:
- Private Service Connect zum Veröffentlichen und Nutzen von Diensten mit GKE verwenden
- Private Service Connect zum Veröffentlichen und Nutzen von Diensten verwenden
- Über Hybrid Networking mit Private Service Connect und einem internen TCP-Proxy-Load-Balancer mit lokalen Diensten verbinden
- Private Service Connect mit automatischer DNS-Konfiguration verwenden
Weitere Informationen und Videos
- Private Service Connect – Übersicht
- Was ist Private Service Connect?
- Unterstützte Load-Balancer-Typen