1. Introduction
Private Service Connect (PSC) simplifie la consommation des services de manière sécurisée et privée. Ce modèle simplifie considérablement l'architecture réseau en permettant aux consommateurs de services de se connecter en privé aux producteurs de services dans différentes organisations. Il élimine ainsi le besoin d'appairage de cloud privé virtuel. La figure 1 illustre l'appairage de VPC et les attributs PSC.
Figure 1 :
En tant que client de services, vous pouvez choisir comment allouer vos adresses IP privées aux services, tout en vous libérant de la gestion des plages de sous-réseaux pour les VPC de producteurs. Vous pouvez désormais attribuer simplement une adresse IP virtuelle de votre VPC à ce service à l'aide d'un service connect.
Dans cet atelier de programmation, vous allez créer une architecture Private Service Connect complète qui illustre l'utilisation de l'accès global PSC avec MongoDB Atlas.
L'accès mondial permet aux clients de se connecter à Private Service Connect (PSC) au-delà des frontières régionales. Cela permet de créer une haute disponibilité pour les services gérés hébergés dans plusieurs régions ou d'autoriser les clients à accéder à un service qui ne se trouve pas dans leur région.
2. Activer l'accès mondial
L'accès global est une fonctionnalité facultative qui est configurée sur la règle de transfert côté client. La commande suivante montre comment il est configuré:
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
- L'indicateur
--allow-psc-global-access
active l'accès mondial sur un point de terminaison Private Service Connect - L'accès mondial permet au client de se trouver dans une région différente de celle de la règle de transfert Private Service Connect, mais la règle de transfert doit toujours se trouver dans la même région que l'attachement de service auquel elle est connectée.
- Aucune configuration n'est requise sur l'attachement de service du producteur pour activer l'accès mondial. Il s'agit d'une option purement côté client.
Vous pouvez également activer ou désactiver l'accès mondial à tout moment pour les points de terminaison existants. L'activation de l'accès mondial sur un point de terminaison existant n'entraîne aucune perturbation du trafic pour les connexions actives. L'accès global est activé sur une règle de transfert existante à l'aide de la commande suivante:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Désactiver l'accès mondial
Vous pouvez également désactiver l'accès global sur des règles de transfert existantes à l'aide de l'indicateur --no-allow-psc-global-access
. Notez que tout trafic interrégional actif sera arrêté après l'exécution de cette commande.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Ce que vous allez faire
- Un cluster MongoDB Atlas multirégional (topologie décrite dans la figure 2) sera créé avec un nœud dans la région us-west1 et deux nœuds dans la région us-west2, respectivement.
- Un VPC client et la VM associée pour accéder aux clusters MongoDB dans les régions us-west1 et us-west2.
- Un VPC et deux sous-réseaux dans les régions us-west1 et us-west2, respectivement, avec au moins 64 adresses IP libres dans chaque sous-réseau (créez des sous-réseaux avec /26 et moins).
Le client MongoDB sera installé sur vm1 dans le VPC du client. En cas de défaillance du nœud principal dans us-west1, le client pourra lire/écrire via le nouveau nœud principal dans us-west2.
Figure 2.
Points abordés
- Créer un VPC et des sous-réseaux déployés dans deux régions
- Déployer un cluster MongoDB Atlas multirégional
- Créer un point de terminaison privé
- Se connecter à MongoDB
- Effectuer et valider le basculement MongoDB multirégional
Prérequis
- Projet Google Cloud
- Fournir un sous-réseau /26 par région
- Accès du propriétaire du projet ou de l'organisation à MongoDB Atlas pour créer un cluster MongoDB avec un niveau de cluster M10 ou supérieur. (Veuillez utiliser GETATLAS pour obtenir des crédits sans frais pour exécuter le PoV)
4. Avant de commencer
Mettre à jour le projet pour qu'il soit compatible avec l'atelier de programmation
Cet atelier de programmation utilise des $variables pour faciliter l'implémentation de la configuration gcloud dans Cloud Shell.
Dans Cloud Shell, procédez comme suit:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Configuration du client
Créer le VPC client
Dans Cloud Shell, procédez comme suit:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Créer les sous-réseaux consommateurs
Dans Cloud Shell, procédez comme suit:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
Dans Cloud Shell, créez le point de terminaison client pour 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
Dans Cloud Shell, créez le point de terminaison client pour 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
Configuration de Cloud Router et de NAT
Cloud NAT est utilisé dans l'atelier de programmation pour l'installation du package logiciel, car les instances de VM n'ont pas d'adresse IP externe.
Dans Cloud Shell, créez le routeur cloud.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
Dans Cloud Shell, créez la passerelle NAT.
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
Configuration de l'instance vm1
Dans la section suivante, vous allez créer l'instance Compute Engine vm1.
Dans Cloud Shell, créez l'instance vm1.
gcloud compute instances create vm1 \
--project=$projectname \
--zone=us-west1-a \
--machine-type=e2-micro \
--network-interface=subnet=vm-subnet,no-address \
--maintenance-policy=MIGRATE \
--provisioning-model=STANDARD \
--create-disk=auto-delete=yes,boot=yes,device-name=vm1,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20230213,mode=rw,size=10,type=projects/$projectname/zones/us-west1-a/diskTypes/pd-balanced
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump -y
sudo apt-get install dnsutils -y"
Pour autoriser IAP à se connecter à vos instances de VM, créez une règle de pare-feu qui:
- S'applique à toutes les instances de VM que vous souhaitez rendre accessibles à l'aide d'IAP.
- Autorise le trafic entrant provenant de la plage d'adresses IP 35.235.240.0/20. Cette plage contient toutes les adresses IP qu'IAP utilise pour le transfert TCP.
Dans Cloud Shell, créez la règle de pare-feu IAP.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Créer le cluster MongoDB Atlas multirégional
- Nous devons configurer un cluster Atlas avant de commencer à configurer le PSC. Vous pouvez vous abonner à MongoDB Atlas de l'une des deux manières ci-dessous:
- Via Google Cloud Marketplace si vous disposez d'un compte Google Cloud. Consultez la documentation pour configurer votre abonnement.
- Sur la page d'inscription à Atlas.
- Une fois abonné à Atlas, cliquez sur le bouton "Créer une base de données", comme illustré ci-dessous.
- Créer un cluster → Dédié
- Fournisseur de services cloud et région → Google Cloud
- Multicloud, multirégion et isolation des charges de travail → Sélectionné (case bleue)
- Nœuds éligibles → us-west1 (1 nœud), us-west2 (2 nœuds)
- Niveau de cluster → M10, laissez tous les autres paramètres par défaut
- Nom du cluster → psc-mongodb-uswest1-uswest2
- Sélectionner → Créer un cluster
- La création de la base de données prend entre 7 et 10 minutes.
Vue du cluster une fois déployé
7. Création d'un point de terminaison privé pour us-west1
- Connectez-vous à votre compte Atlas, puis accédez à votre projet.
Créer un utilisateur pour autoriser l'accès en lecture/écriture à n'importe quelle base de données
Sécurité → Accès aux bases de données → Ajouter un utilisateur de base de données. Voici un exemple de nom d'utilisateur et de mot de passe configurés en tant que "codelab". Veillez à sélectionner le rôle intégré "Lecture et écriture" pour toutes les bases de données.
- Sous "Sécurité > Accès réseau", la liste d'accès aux adresses IP ne nécessite aucune entrée
Préparer des points de terminaison privés dans MongoDB Atlas
- Sélectionnez "Accès réseau" → "Points de terminaison privés" → "Cluster dédié" → "Ajouter un point de terminaison privé" .
Fournisseur cloud
- Sélectionnez Google Cloud, puis cliquez sur "Suivant".
Rattachement de service
- Sélectionnez la région, us-west1, puis cliquez sur "Suivant".
Points de terminaison
- Pour créer un point de terminaison Private Service Connect, fournissez les éléments suivants:
- ID de projet Google Cloud: sélectionnez "Afficher les instructions" pour en savoir plus
- Nom du VPC: consumer-vpc
- Nom du sous-réseau: psc-endpoint-us-west1
- Préfixe du point de terminaison Private Service Connect: psc-endpoint-us-west1
Configurer des points de terminaison
Dans la section suivante, un script shell est généré et doit être enregistré localement sous le nom setup_psc.sh. Une fois enregistré, modifiez le script shell pour autoriser l'accès mondial du psc. Vous pouvez effectuer cette action dans Cloud Shell du projet Google Cloud.
- Exemple de script shell (votre sortie aura des valeurs différentes)
- Copiez le script shell à partir de la console MongoBD et enregistrez le contenu dans le terminal Cloud Shell de Google Cloud. Veillez à enregistrer le script sous le nom setup_psc.sh.
Exemple avant la mise à jour:
#!/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
Mettre à jour le script shell pour prendre en charge l'accès global
Utilisez l'éditeur nano ou vi pour identifier et mettre à jour le script shell à l'aide de la syntaxe ci-dessous:
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
Exemple après la mise à jour:
#!/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
Exécuter le script shell
Accédez au script setup_psc.sh et exécutez-le. Un fichier nommé atlasEndpoints-psc-endpoint-us-west1.json est alors créé. Le fichier JSON contient une liste d'adresses IP et de noms de points de terminaison Private Service Connect requis pour l'étape suivante du déploiement.
Dans Cloud Shell, procédez comme suit:
sh setup_psc.sh
Une fois le script terminé, utilisez l'éditeur Cloud Shell pour télécharger atlasEndpoints-psc-endpoint-us-west1.json localement.
Importer le fichier JSON
Importez le fichier JSON précédemment enregistré atlasEndpoints-psc-endpoint-us-west1.json.
Sélectionnez "Créer".
Valider les points de terminaison Private Service Connect
Dans l'interface utilisateur de MongoDB, accédez à votre projet, puis à Sécurité → Accès réseau → Point de terminaison privé. Si vous sélectionnez l'onglet "Cluster dédié", la transition du point de terminaison vers l'état "Disponible" prendra 10 minutes.
État "Disponible"
Dans la console Google Cloud, accédez à Services réseau → Private Service Connect, puis sélectionnez l'onglet "Point de terminaison connecté" affichant les points de terminaison client en transition de "En attente" à "Accepté" (voir exemple ci-dessous) :
8. Création d'un point de terminaison privé pour us-west2
- Connectez-vous à votre compte Atlas, puis accédez à votre projet.
Préparer des points de terminaison privés dans MongoDB Atlas
- Sélectionnez "Accès réseau" → "Points de terminaison privés" → "Cluster dédié" → "Ajouter un point de terminaison privé" .
Fournisseur cloud
- Sélectionnez Google Cloud, puis cliquez sur "Suivant".
Rattachement de service
- Sélectionnez la région, us-west2, puis cliquez sur "Suivant".
Points de terminaison
- Pour créer un point de terminaison Private Service Connect, fournissez les éléments suivants:
- ID de projet Google Cloud: sélectionnez "Afficher les instructions" pour en savoir plus
- Nom du VPC: consumer-vpc
- Nom du sous-réseau: psc-endpoint-us-west2
- Préfixe du point de terminaison Private Service Connect: psc-endpoint-us-west2
Configurer des points de terminaison
Dans la section suivante, un script shell est généré et doit être enregistré localement sous le nom setup_psc.sh. Une fois enregistré, modifiez le script shell pour autoriser l'accès mondial du psc. Vous pouvez effectuer cette action dans Cloud Shell du projet Google Cloud.
- Exemple de script shell (vos valeurs de sortie seront différentes)
- Copiez le script shell à partir de la console MongoBD et enregistrez le contenu dans le terminal Cloud Shell de Google Cloud. Veillez à enregistrer le script sous le nom setup_psc.sh.
Exemple avant la mise à jour:
#!/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
Mettre à jour le script shell pour prendre en charge l'accès global
Utilisez l'éditeur nano ou vi pour identifier et mettre à jour le script shell à l'aide de la syntaxe ci-dessous:
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
Exemple après la mise à jour:
#!/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
Exécuter le script shell
Accédez au script setup_psc.sh et exécutez-le. Un fichier nommé atlasEndpoints-psc-endpoint-us-west2.json est alors créé. Le fichier JSON contient une liste d'adresses IP et de noms de points de terminaison Private Service Connect requis pour l'étape suivante du déploiement.
Dans Cloud Shell, procédez comme suit:
sh setup_psc.sh
Une fois le script terminé, utilisez l'éditeur Cloud Shell pour télécharger atlasEndpoints-psc-endpoint-us-west2.json localement.
Importer le fichier JSON
Importez le fichier JSON précédemment enregistré atlasEndpoints-psc-endpoint-us-west2.json.
Sélectionnez "Créer".
Valider les points de terminaison Private Service Connect
Dans l'interface utilisateur de MongoDB, accédez à votre projet, puis à Sécurité → Accès réseau → Point de terminaison privé. En sélectionnant l'onglet "Cluster dédié", le point de terminaison passe à l'état "Disponible" au bout de 10 minutes.
État disponible:
Dans la console Google Cloud, accédez à Services réseau → Private Service Connect, puis sélectionnez l'onglet "Point de terminaison connecté" affichant les points de terminaison client en transition de "En attente" à "Accepté" (voir exemple ci-dessous). Un total de 100 points de terminaison sont déployés dans le point de terminaison client et doivent être acceptés avant de passer à l'étape suivante.
9. Se connecter à MongoDB Atlas à partir de points de terminaison privés
Une fois les connexions aux services privés acceptées, un délai supplémentaire (10 à 15 minutes) est nécessaire pour mettre à jour le cluster MongoDB. Dans l'interface utilisateur MongoDB, le contour gris représente la mise à jour du cluster. Par conséquent, la connexion au point de terminaison privé n'est pas disponible.
Identifiez le déploiement, puis sélectionnez "Connect" (Se connecter). Notez que la zone grise n'est plus présente.
Choisir un type de connexion → Point de terminaison privé, sélectionnez "Choisir une méthode de connexion"
Sélectionnez "Se connecter avec le shell MongoDB".
Sélectionnez "Je n'ai pas installé MongoDB Shell, Ubuntu 20.4", puis assurez-vous de copier le contenu des étapes 1 et 3 dans un bloc-notes.
10. Installer l'application mongosh
Avant l'installation, vous devez créer une chaîne de commande basée sur les valeurs précédemment copiées obtenues aux étapes 1 et 3. Vous vous connecterez ensuite à vm1 via SSH à l'aide de Cloud Shell, puis installerez et validerez l'application mongosh dans la base de données principale (us-west1). L'image Ubuntu 20.4 a été installée lors de la création de vm1 dans le vpc consumer.
Choisir une méthode de connexion: Étape 1, copier l'URL de téléchargement
Exemple de chaîne de commande. Remplacez-la par vos valeurs personnalisées:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Choisissez une méthode de connexion (étape 3).
Exemple de chaîne de commande. Remplacez-la par vos valeurs personnalisées:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Se connecter à vm1
Dans Cloud Shell, procédez comme suit:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Connectez-vous à vm1 à l'aide d'IAP dans Cloud Shell. Réessayez en cas de délai avant expiration.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Effectuer l'installation à partir du système d'exploitation
Effectuez l'installation à partir de la connexion au système d'exploitation Cloud Shell. Plus d'informations disponibles. Mettez à jour la syntaxe ci-dessous avec votre chaîne personnalisée.
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
L'opération doit répondre avec un
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
Se connecter au déploiement MongoDB
Dans la session Cloud Shell, procédez comme suit. Le nom d'utilisateur et le mot de passe configurés sont "codelab".
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
En voici un exemple :
Exécuter des commandes sur la base de données
Dans la session Cloud Shell, procédez comme suit.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Région MongoDB active de basculement, us-west1
Avant d'effectuer le basculement, vérifions que us-west1 est le nœud principal et que us-west2 comporte deux nœuds secondaires.
Accédez à Database → psc-mongodb-uswest1-uswest2 → Overview.
Dans la section suivante, connectez-vous à la VM1 située dans la région us-west1, effectuez un basculement de la région de cluster MongoDB principale us-west1 et vérifiez que la base de données est toujours accessible depuis le cluster MongoDB dans us-west2.
Vous pouvez tester le basculement principal et régional depuis l'interface utilisateur d'Atlas.
- Connectez-vous à l'interface utilisateur d'Atlas.
- Cliquez sur [...] à côté du nom de votre cluster, psc-mongodb-uswest1-uswest2 → Test d'indisponibilité.
- Sélectionnez "Panne régionale" → "Sélectionner des régions".
- Sélectionnez la région principale, us-west1→ Simuler une panne régionale.
Une fois le cluster sélectionné, la simulation d'indisponibilité s'affiche au bout de trois à quatre minutes.
Fermer la fenêtre
Vérifiez que us-west1 est indisponible et que us-west2 est désormais défini comme principal.
Accédez à Database → psc-mongodb-uswest1-uswest2 → Overview.
Valider la connectivité au cluster via le nouveau nœud principal, us-west2
Connectez-vous à la VM1 située dans la région us-west1 et accédez à MongoDB dans la région us-west2 pour valider l'accès global de Private Service Connect.
Si votre session Cloud Shell a été arrêtée, procédez comme suit:
Dans Cloud Shell, procédez comme suit:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Connectez-vous à vm1 à l'aide d'IAP dans Cloud Shell. Réessayez en cas de délai avant expiration.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Se connecter au déploiement MongoDB
Dans la session Cloud Shell, procédez comme suit.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
En voici un exemple :
Exécuter des commandes sur la base de données
Dans la session Cloud Shell, procédez comme suit.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit
Vous avez réussi: vous avez validé que l'accès mondial PSC permet une connectivité fluide des points de terminaison client dans les différentes régions pour faciliter la haute disponibilité ou en cas de pannes régionales. Dans l'atelier de programmation, le basculement régional MongoDB s'est produit dans le nœud principal situé dans la région us-west1. Par conséquent, la région secondaire us-west2 a pris le relais en tant que nœud principal. Bien que le cluster ait entraîné une panne régionale, la VM1 du client située dans us-west1 a bien atteint le nouveau cluster principal dans us-west2.
12. Nettoyage
Dans Cloud Console, supprimez les points de terminaison des consommateurs.
Accédez à "Services réseau" → "Private Service Connect" → "POINTS DE TERMINATION CONNECTÉS".
Utilisez le filtre psc-endpoint pour éviter la suppression potentielle des points de terminaison client hors laboratoire. Sélectionner tous les points de terminaison → SUPPRIMER
Supprimer les adresses IP internes statiques associées aux points de terminaison des consommateurs
Accédez à "Réseau VPC" → "consumer-vpc" → "ADRESSES IP INTERNES STATIQUES".
Utilisez le filtre psc-endpoint pour éviter la suppression potentielle des points de terminaison client hors laboratoire et augmenter le nombre de lignes par page à 100. Sélectionner tous les points de terminaison → LIBÉRER
Dans Cloud Shell, supprimez les composants du atelier de programmation.
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
Dans l'interface utilisateur d'Atlas, identifiez le cluster psc-mongodb-uswest1-uswest2 → mettez fin à la simulation
Sélectionnez "Mettre fin à la simulation d'indisponibilité" -> "Quitter".
Le cluster rétablit désormais us-west1 comme nœud principal. Ce processus prendra trois à quatre minutes. Une fois l'opération terminée, arrêtez le cluster. Notez le contour gris qui indique un changement d'état.
Insérer le nom du cluster → Terminer
Supprimer le point de terminaison privé associé à us-west1 et us-west2
Dans l'interface utilisateur d'Atlas, accédez à Sécurité → Accès réseau → Point de terminaison privé → Sélectionnez "Terminer".
13. Félicitations
Félicitations ! Vous avez correctement configuré et validé un point de terminaison Private Service Connect avec accès mondial à MongoDB dans toutes les régions. Vous avez créé un VPC consommateur, un MongoDB multirégional et des points de terminaison consommateurs. Une VM située dans us-west1 s'est connectée à MongoDB dans us-west1 et us-west2 lors du basculement régional.
Cosmopup pense que les ateliers de programmation sont géniaux !
Et ensuite ?
Découvrez quelques-uns des ateliers de programmation...
- Publier et consommer des services avec GKE à l'aide de Private Service Connect
- Publier et consommer des services à l'aide de Private Service Connect
- Se connecter aux services sur site via Hybrid Networking à l'aide de Private Service Connect et d'un équilibreur de charge proxy TCP interne
- Utiliser Private Service Connect avec configuration DNS automatique
Autres ressources et vidéos
- Présentation de Private Service Connect
- Qu'est-ce que Private Service Connect ?
- Types d'équilibreurs de charge compatibles