1. Einführung
Mit Private Service Connect (PSC) wird die sichere und private Nutzung von Diensten vereinfacht. Dieses Modell vereinfacht die Netzwerkarchitektur erheblich, da Dienstnutzer über Organisationen hinweg eine private Verbindung zu Dienstanbietern herstellen können und kein Virtual Private Cloud-Peering mehr erforderlich ist. Abbildung 1 zeigt VPC-Peering- und PSC-Attribute.
Abbildung 1.
Als Dienstnutzer können Sie flexibel festlegen, wie Ihre privaten IP-Adressen Diensten zugewiesen werden. Außerdem müssen Sie keine Subnetzbereiche mehr für VPCs von Dienstleistern verwalten. Sie können diesem Dienst jetzt einfach eine ausgewählte virtuelle IP-Adresse aus Ihrer VPC zuweisen, indem Sie eine Dienstverbindung verwenden.
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 verbraucherseitigen Weiterleitungsregel konfiguriert wird. Der folgende Befehl zeigt, wie die Konfiguration erfolgt:
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. - Beim globalen Zugriff kann sich der Client in einer anderen Region als die Private Service Connect-Weiterleitungsregel befinden. Die Weiterleitungsregel muss sich jedoch in derselben Region wie der Dienstanhang befinden, mit dem sie verbunden ist.
- Für den globalen Zugriff ist keine Konfiguration des Dienst-Anhangs des Produzenten erforderlich. Sie ist nur für Nutzer verfügbar.
Der globale Zugriff kann auch für vorhandene Endpunkte jederzeit aktiviert oder deaktiviert werden. Wenn Sie den globalen Zugriff für einen vorhandenen Endpunkt aktivieren, kommt es nicht zu einer Unterbrechung des Traffics für aktive Verbindungen. Der globale Zugriff wird mit dem folgenden Befehl für eine vorhandene Weiterleitungsregel 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. Hinweis: Alle aktiven interregionalen Zugriffe werden nach Ausführung dieses Befehls beendet.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Aufgaben
- Es wird ein mehrregionaler MongoDB Atlas-Cluster (Topologie in Abbildung 2) 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 jeweils mindestens 64 kostenlosen IP-Adressen in jedem Subnetz (Subnetze mit /26 und darunter erstellen).
Der MongoDB-Client wird auf vm1 in der Kunden-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 in zwei Regionen erstellen
- Multiregionalen MongoDB Atlas-Cluster bereitstellen
- Privaten Endpunkt erstellen
- Verbindung mit MongoDB herstellen
- Mehrere Regionen für MongoDB-Failover verwenden
Voraussetzungen
- Google Cloud-Projekt
- Geben Sie ein /26-Subnetz pro Region an.
- Zugriff für Projektinhaber oder Organisationsinhaber auf MongoDB Atlas, um einen MongoDB-Cluster mit Clusterebene M10 oder höher zu erstellen. (Verwenden Sie GETATLAS, um kostenlose Guthaben für die Ausführung des PoV zu erhalten.)
4. Hinweis
Projekt für das Codelab aktualisieren
In diesem Codelab werden $variables verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu unterstützen.
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 für Verbraucher
VPC des Verbrauchers erstellen
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Nutzersubnetze 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 in diesem Codelab für die Installation von Softwarepaketen verwendet, da die VM-Instanzen keine externe IP-Adresse haben.
Erstellen Sie in Cloud Shell den Cloud Router.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
Erstellen Sie in Cloud Shell das NAT-Gateway.
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
- Wir müssen einen Atlas-Cluster einrichten, bevor wir mit der Einrichtung des PSC beginnen. Sie können MongoDB Atlas auf zwei Arten abonnieren:
- Über den Google Cloud Marketplace, wenn Sie ein Google Cloud-Konto haben. Weitere Informationen zur Einrichtung eines Abos finden Sie in der Dokumentation.
- Über die Atlas-Registrierungsseite
- Klicken Sie nach dem Atlas-Abo auf die Schaltfläche „Datenbank erstellen“ (siehe Abbildung 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)
- Clusterebene → M10, alle anderen Einstellungen bei Standard belassen
- Clustername → psc-mongodb-uswest1-uswest2
- Wählen Sie „Cluster erstellen“ aus.
- Die Erstellung der Datenbank dauert 7 bis 10 Minuten.
Cluster nach der Bereitstellung
7. Erstellung eines privaten Endpunkts für us-west1
- 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 gewähren
Wählen Sie unter „Sicherheit“ → „Datenbankzugriff“ die Option „Neuen Datenbanknutzer hinzufügen“ aus. Im Folgenden finden Sie ein Beispiel für einen Nutzernamen und ein Passwort, die als „codelab“ konfiguriert sind. Wählen Sie die integrierte Rolle „Lesen und Schreiben in jeder Datenbank“ aus.
- 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.
Cloud-Anbieter
- Wählen Sie „Google Cloud“ und dann „Weiter“ aus.
Dienstanhang
- Wählen Sie die Region „us-west1“ und dann „Weiter“ aus.
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-Script generiert, das lokal unter dem Namen setup_psc.sh gespeichert werden sollte. Bearbeiten Sie das Shell-Script nach dem Speichern, um psc globalen Zugriff zu gewähren. Sie können diese Aktion in der Cloud Shell des Google Cloud-Projekts ausführen.
- Beispiel für ein Shell-Script (Ihre Ausgabe enthält andere Werte)
- Kopieren Sie das Shell-Script aus der MongoBD-Konsole und speichern Sie den Inhalt im Google Cloud Cloud Shell-Terminal. Speichern Sie das Script als setup_psc.sh.
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 den globalen Zugriff aktualisieren
Verwenden Sie den Editor „nano“ oder „vi“, um das Shell-Script mit der folgenden Syntax zu finden 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 Script „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
Laden Sie nach Abschluss des Scripts atlasEndpoints-psc-endpoint-us-west1.json lokal mit dem Cloud Shell-Editor 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 prüfen
Rufen Sie in der MongoDB-Benutzeroberfläche Ihr Projekt auf und klicken Sie auf „Sicherheit“ → „Netzwerkzugriff“ → „Privater Endpunkt“. Wenn Sie den Tab „Spezialcluster“ auswählen, dauert es 10 Minuten, bis der Endpunkt verfügbar ist.
Verfügbarkeitsstatus
Gehen Sie in der Google Cloud Console zu „Netzwerkdienste“ → „Private Service Connect“ und wählen Sie den Tab „Verbundener Endpunkt“ aus. Hier sehen Sie Nutzerendpunkte, die von „Ausstehend“ zu „Akzeptiert“ wechseln. Beispiel unten:
8. Erstellung eines privaten Endpunkts 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.
Cloud-Anbieter
- Wählen Sie „Google Cloud“ und dann „Weiter“ aus.
Dienstanhang
- Wählen Sie die Region „us-west2“ und dann „Weiter“ aus.
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-Script generiert, das lokal unter dem Namen setup_psc.sh gespeichert werden sollte. Bearbeiten Sie das Shell-Script nach dem Speichern, um psc globalen Zugriff zu gewähren. Sie können diese Aktion in der Cloud Shell des Google Cloud-Projekts ausführen.
- Beispiel für ein Shell-Script (Ihre Ausgabe enthält andere Werte)
- Kopieren Sie das Shell-Script aus der MongoBD-Konsole und speichern Sie den Inhalt im Google Cloud Cloud Shell-Terminal. Speichern Sie das Script als setup_psc.sh.
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 den globalen Zugriff aktualisieren
Verwenden Sie den Editor „nano“ oder „vi“, um das Shell-Script mit der folgenden Syntax zu finden 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 Script „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 Script abgeschlossen ist, lade 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.
Wählen Sie „Erstellen“ aus.
Private Service Connect-Endpunkte prüfen
Rufen Sie in der MongoDB-Benutzeroberfläche Ihr Projekt auf und gehen Sie dann zu „Sicherheit“ → „Netzwerkzugriff“ → „Privater Endpunkt“. Wenn Sie den Tab „Dedizierter Cluster“ auswählen, wird der Endpunkt nach 10 Minuten als verfügbar angezeigt.
Verfügbarkeitsstatus:
Gehen Sie in der Google Cloud Console zu „Netzwerkdienste“ → „Private Service Connect“ und wählen Sie den Tab „Verbundener Endpunkt“ aus. Hier sehen Sie Nutzerendpunkte, die den Status „Ausstehend“ in „Akzeptiert“ ändern (siehe Beispiel unten). Insgesamt 100 Endpunkte sind im Nutzerendpunkt bereitgestellt und müssen in den Status „Akzeptiert“ geändert werden, bevor Sie mit dem nächsten Schritt fortfahren können.
9. Über private Endpunkte eine Verbindung zu MongoDB Atlas herstellen
Nachdem die privaten Dienstverbindungen akzeptiert wurden, dauert es noch 10 bis 15 Minuten, bis der MongoDB-Cluster aktualisiert ist. In der MongoDB-Benutzeroberfläche steht der graue Umriss für die Clusteraktualisierung. Eine Verbindung zum privaten Endpunkt ist daher nicht möglich.
Wählen Sie die Bereitstellung aus und klicken Sie auf „Verbinden“. Das graue Feld ist nicht mehr zu sehen.
Verbindungstyp auswählen → Privater Endpunkt → Verbindungsmethode auswählen
Wählen Sie „Über die MongoDB-Shell verbinden“ aus.
Wählen Sie „Ich habe die MongoDB Shell nicht installiert“ und „Ubuntu 20.4“ aus und kopieren Sie den Inhalt aus Schritt 1 und Schritt 3 in einen Notizblock.
10. mongosh-Anwendung installieren
Vor der Installation müssen Sie einen Befehlsstring basierend auf den zuvor in den Schritten 1 und 3 kopierten Werten erstellen. Danach stellen Sie über Cloud Shell eine SSH-Verbindung zu vm1 her, installieren die MongoDB-Anwendung und validieren sie in der primären Datenbank (us-west1). Das Ubuntu 20.4-Image wurde beim Erstellen von vm1 im Verbraucher-VPC installiert.
Verbindungsmethode auswählen: Schritt 1, Download-URL kopieren
Beispiel für einen Befehlsstring, den Sie durch Ihre benutzerdefinierten Werte ersetzen müssen:
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 müssen:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
In vm1 anmelden
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 in Cloud Shell mit IAP bei vm1 an. Wiederholen Sie den Vorgang bei einem Zeitüberschreitungsfehler.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Installation über das Betriebssystem ausführen
Führen Sie die Installation über die Cloud Shell-Anmeldung aus. 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 einer
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 Anmeldung in Cloud Shell die folgenden Schritte aus. Der konfigurierte Nutzername und das konfigurierte 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 unten:
Befehle für die Datenbank ausführen
Führen Sie nach der Anmeldung in Cloud Shell die folgenden Schritte aus.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Aktive MongoDB-Failover-Region, us-west1
Bevor wir den Failover ausführen, prüfen wir, ob us-west1 die primäre Region ist und us-west2 zwei sekundäre Knoten hat.
Gehen Sie zu „Datenbank“ → „psc-mongodb-uswest1-uswest2“ → „Übersicht“.
Melden Sie sich im folgenden Abschnitt in vm1 in der Region „us-west1“ an, führen Sie ein Failover für die primäre MongoDB-Clusterregion „us-west1“ durch und prüfen Sie, ob die Datenbank weiterhin über den MongoDB-Cluster in „us-west2“ 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 „psc-mongodb-uswest1-uswest2“ auf das Dreipunkt-Menü → „Ausfall testen“.
- Wählen Sie „Regionale Störung“ → „Regionen auswählen“ aus.
- Wählen Sie die primäre Region „us-west1“ aus und klicken Sie auf „Regionalen Ausfall simulieren“.
Nach der Auswahl wird nach 3 bis 4 Minuten eine Ausfallsimulation für den Cluster angezeigt.
Fenster schließen
Prüfen Sie, ob „us-west1“ ausgefallen ist und „us-west2“ jetzt als primär übernommen wird.
Gehen Sie zu „Datenbank“ → „psc-mongodb-uswest1-uswest2“ → „Übersicht“.
Konnektivität zum Cluster über den neuen primären Knoten „us-west2“ prüfen
Melden Sie sich in vm1 in us-west1 an und greifen Sie auf MongoDB in us-west2 zu, um den globalen Zugriff über Private Service Connect zu bestätigen.
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 in Cloud Shell mit IAP bei vm1 an. Wiederholen Sie den Vorgang bei einem Zeitüberschreitungsfehler.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Verbindung zur MongoDB-Bereitstellung herstellen
Führen Sie in Cloud Shell nach der Anmeldung 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 unten:
Befehle für die Datenbank ausführen
Führen Sie in Cloud Shell nach der Anmeldung 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 Zugriff auf PSC eine nahtlose Endpunktverbindung für Verbraucher über Regionen hinweg ermöglicht, um die Hochverfügbarkeit zu verbessern oder bei regionalen Ausfällen zu helfen. Im Codelab kam es beim primären Knoten in der Region us-west1 zu einem regionalen MongoDB-Failover. Daher übernahm die sekundäre Region us-west2 die Rolle des primären Knotens. Obwohl der Cluster zu einem regionalen Ausfall geführt hat, konnte die Verbraucher-VM1 in us-west1 den neuen primären Cluster in us-west2 erreichen.
12. Bereinigen
Löschen Sie die Endpunkte für Endnutzer in der Cloud Console.
Gehen Sie zu „Netzwerkdienste“ → „Private Service Connect“ → „VERKNÜPFTE ENDPUNKTE“.
Verwenden Sie den Filter psc-endpoint, um das potenzielle Löschen von Endpunkten von Verbrauchern außerhalb des Labs zu verhindern. Alle Endpunkte auswählen → LÖSCHEN
Löschen Sie die mit den Endpunkten der Kunden verknüpften statischen internen IP-Adressen.
Rufen Sie „VPC-Netzwerk“ → „consumer-vpc“ → „STATISCHE INTERNE IP-ADRESSEN“ auf.
Verwenden Sie den Filter psc-endpoint, um das potenzielle Löschen von Endpunkten von Verbrauchern außerhalb des Labs zu verhindern und die Zeilen pro Seite auf 100 zu erhöhen. Alle Endpunkte auswählen → VERÖFFENTLICHEN
Löschen Sie in Cloud Shell die 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
Cluster „psc-mongodb-uswest1-uswest2“ in der Atlas-Benutzeroberfläche identifizieren → Simulation beenden
Wählen Sie „Ausfallsimulation beenden“ -> „Beenden“ aus.
Der Cluster stellt jetzt us-west1 als primäres Knoten wieder her. Dieser Vorgang dauert 3 bis 4 Minuten. Beenden Sie den Cluster, sobald Sie fertig sind. Der graue Umriss zeigt eine Statusänderung an.
Clusternamen eingeben → Beenden
Löschen Sie den privaten Endpunkt, der mit „us-west1“ und „us-west2“ verknüpft ist.
Gehen Sie in der Atlas-Benutzeroberfläche zu „Sicherheit“ → „Netzwerkzugriff“ → „Privater Endpunkt“ → „Beenden“ auswählen.
13. Glückwunsch
Sie haben einen Private Service Connect-Endpunkt mit globalem Zugriff auf MongoDB in allen Regionen konfiguriert und validiert. Sie haben ein Nutzer-VPC, eine Multi-Region-MongoDB und Nutzerendpunkte erstellt. Eine VM in der Region us-west1 konnte nach einem regionalen Failover sowohl in us-west1 als auch in us-west2 eine Verbindung zu MongoDB herstellen.
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
- Über Private Service Connect und einen internen TCP-Proxy-Load Balancer eine Verbindung zu On-Premise-Diensten über Hybridnetzwerke herstellen
- Private Service Connect mit automatischer DNS-Konfiguration verwenden
Weitere Lesematerialien und Videos
- Private Service Connect – Übersicht
- Was ist Private Service Connect?
- Unterstützte Load Balancer-Typen