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.
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
- 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.
- Eine Nutzer-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. 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:
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).
- Neuen Cluster erstellen → Dediziert
- Cloud-Anbieter und Region → Google Cloud
- Multi-Cloud, multiregional und Arbeitslastisolierung → ausgewählt (blaues Häkchen)
- Auswählbare Knoten → us-west1 (1 Knoten), us-west2 (2 Knoten)
- Clusterstufe → M10, behalten Sie alle anderen Einstellungen bei
- Cluster name → psc-mongodb-uswest1-uswest2
- Auswählen → Cluster erstellen
- Die Datenbankerstellung dauert 7–10 Minuten
Ansicht des Clusters nach der Bereitstellung
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.
- 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
hinzufügen
Cloud-Anbieter
- Wählen Sie „Google Cloud“ und dann „Weiter“ aus.
Dienstanhang
- Wählen Sie die Region „us-west1“ und dann „Weiter“ aus.
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
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
- 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.
JSON-Datei hochladen
Laden Sie die zuvor gespeicherte JSON-Datei atlasEndpoints-psc-endpoint-us-west1.json hoch.
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
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:
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
hinzufügen
Cloud-Anbieter
- Wählen Sie „Google Cloud“ und dann „Weiter“ aus.
Dienstanhang
- Wählen Sie die Region „us-west2“ und dann „Weiter“ aus.
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
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
- 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.
JSON-Datei hochladen
Laden Sie die zuvor gespeicherte JSON-Datei atlasEndpoints-psc-endpoint-us-west2.json hoch.
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:
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.
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.
Identifizieren Sie die Bereitstellung und wählen Sie „Verbinden“ aus. (Beachten Sie, dass das graue Feld nicht mehr angezeigt wird.)
Wählen Sie den Verbindungstyp → „Privater Endpunkt“ und dann „Verbindungsmethode auswählen“ aus.
Wählen Sie „Mit der MongoDB Shell verbinden“ aus.
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.
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
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):
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:
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
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“.
- Wählen Sie „Regionaler Ausfall“ → „Regionen auswählen“ aus.
- Wählen Sie die primäre Region „us-west1“ → „Regionalen Ausfall simulieren“ aus.
Nach der Auswahl wird im Cluster nach 3–4 Minuten eine Ausfallsimulation angezeigt
Fenster schließen
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
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:
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
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
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
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
Wählen Sie „Ausfallsimulation beenden“ aus —> Beenden
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.
Geben Sie den Clusternamen ein → Beenden
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
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!!
Was liegt als Nächstes an?
Sehen Sie sich einige dieser Codelabs an...
- Private Service Connect zum Veröffentlichen und Nutzen von Diensten mit GKE verwenden
- Private Service Connect zum Veröffentlichen und Nutzen von Diensten verwenden
- Mit Private Service Connect und einem internen TCP-Proxy-Load-Balancer über ein Hybridnetzwerk eine Verbindung zu lokalen Diensten herstellen
- 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