Accéder à MongoDB Atlas multirégional avec Private Service Connect

1. Introduction

Private Service Connect (PSC) simplifie la façon dont les services sont utilisés de manière sécurisée et privée. Ce modèle facilite considérablement l'architecture réseau en permettant aux clients de services de se connecter de manière privée aux producteurs de services de toutes les organisations, et élimine la nécessité d'effectuer un appairage de cloud privé virtuel. La figure 1 illustre l'appairage de VPC et les attributs PSC.

Figure1. 4f9551fc32ed83f5.png

En tant que client de services, vous avez la possibilité de choisir comment attribuer vos adresses IP privées aux services, tout en vous déchargeant de la gestion des plages de sous-réseaux pour les VPC de producteurs. Désormais, il vous suffit d'attribuer une adresse IP virtuelle de votre choix à ce service à l'aide de 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 mondial PSC avec MongoDB Atlas.

L'accès mondial permet aux clients de se connecter à Private Service Connect (PSC) au-delà des limites régionales. Cela s'avère utile pour créer une haute disponibilité sur des services gérés hébergés dans plusieurs régions ou pour permettre aux clients d'accéder à un service qui ne se trouve pas dans la même région que le client.

2. Activer l'accès mondial

L'accès mondial est une fonctionnalité facultative qui est configurée au niveau de la règle de transfert côté consommateur. La commande suivante montre comment le configurer:

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'option --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 celle-ci doit toujours se trouver dans la même région que le rattachement de service auquel elle est connectée.
  • Aucune configuration n'est requise sur le rattachement de service du producteur pour activer l'accès mondial. Il s'agit purement d'une option côté consommateur.

L'accès mondial peut également être activé ou désactivé à tout moment pour les points de terminaison existants. Lorsque vous activez l'accès mondial sur un point de terminaison existant, le trafic des connexions actives n'est pas interrompu. 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

L'accès mondial peut également être désactivé pour les règles de transfert existantes à l'aide de l'option --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

  1. 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.
  2. Un VPC consommateur et la VM associée permettant d'accéder aux clusters MongoDB dans les régions us-west1 et us-west2.
  3. 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 un niveau inférieur).

Le client MongoDB sera installé sur "vm1" dans le VPC du client. En cas de défaillance du nœud principal dans la région us-west1, le client est en mesure d'effectuer des opérations de lecture/écriture sur le nouveau nœud principal dans la région us-west2.

Figure 2. ab6c2791514c4481.png

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
  • Réaliser et valider un basculement MongoDB multirégional

Prérequis

  • Projet Google Cloud
  • Fournissez un sous-réseau de taille /26 par région
  • Accès propriétaire de projet ou propriétaire de l'organisation à MongoDB Atlas pour créer un cluster MongoDB avec le niveau de cluster M10 ou supérieur. (Veuillez utiliser GETATLAS afin d'obtenir des crédits sans frais pour l'exécution du point de vue.)

4. Avant de commencer

Mettre à jour le projet pour qu'il soit compatible avec l'atelier de programmation

Cet atelier de programmation utilise $variables pour faciliter l'implémentation de la configuration gcloud dans Cloud Shell.

Dans Cloud Shell, effectuez les opérations suivantes:

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

5. Configuration client

Créer le VPC consommateur

Dans Cloud Shell, effectuez les opérations suivantes:

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

Créer les sous-réseaux du client

Dans Cloud Shell, effectuez les opérations suivantes:

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 du 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 du 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 Cloud Router et NAT

Dans cet atelier de programmation, Cloud NAT est utilisé pour installer des packages logiciels, 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 auxquelles 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 utilisées par IAP 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 multirégional MongoDB Atlas

  • Nous devons configurer un cluster Atlas avant de commencer à configurer PSC. Vous pouvez vous abonner à MongoDB Atlas de l'une des deux manières suivantes:
  • Via Google Cloud Marketplace si vous possédez un compte Google Cloud Consultez la documentation pour configurer votre abonnement.
  • Avec la page d'inscription d'Versa 3.
  • Une fois abonné à Atlas, cliquez sur le bouton "Build a Database" (Créer une base de données) comme illustré ci-dessous.

796f5bda844bf400.png

  • Créer un cluster → Dédié

56c340661d86962c.png

  • Fournisseur de services cloud région → Google Cloud
  • Multicloud, multirégional et isolation de la charge de travail → Sélectionné (coche bleue)

6c10293ffd9814ae.png

  • Nœuds sélectionnables → us-west1 (1 nœud), us-west2 (2 nœuds)

e652bd944d785871.png

  • Niveau du cluster → M10. Conservez les valeurs par défaut de tous les autres paramètres.

ffa0195b96c2c5ff.png

  • Nom du cluster → psc-mongodb-uswest1-uswest2

3720fb8c15ba5cc2.png

  • Sélectionner → Créer un cluster

ec5e3e6983c02e27.png

  • La création de la base de données prend 7 à 10 minutes

d75778d5abf484aa.png

Vue du cluster une fois déployé

1f0ec6a401578650.png

7. Création d'un point de terminaison privé pour us-west1

  • Connectez-vous à votre compte Atlas et accédez à votre projet.

Créer un utilisateur pour autoriser l'accès en lecture/écriture à toutes les bases de données

Sécurité → Accès à la base de données : sélectionnez "Ajouter un nouvel utilisateur de base de données". Voici un exemple de nom d'utilisateur et de mot de passe configurés en tant qu'atelier de programmation. Veillez à sélectionner le rôle intégré en lecture et en écriture dans n'importe quelle base de données.

f622ab14ddc96fc7.png

  • Sous Sécurité → Accès réseau, la liste d'accès IP ne nécessite pas d'entrée

Préparer des points de terminaison privés dans MongoDB Atlas

  • Sélectionner, Accès réseau → Points de terminaison privés → Cluster dédié → Ajouter un point de terminaison privé 88f5c1d9ae7e46d9.png

Fournisseur de services cloud

  • Sélectionnez "Google Cloud", puis "Suivant".

5503248bf4019a35.png

Rattachement de service

  • Sélectionnez la région "us-west1", puis "Suivant".

cb31aea7cad182f9.png

Points de terminaison

  • Pour créer un point de terminaison Private Service Connect, fournissez les éléments suivants:
  • ID du 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

21d76af5367832f4.png

Configurer des points de terminaison

Dans la section suivante, un script shell est généré. Il doit être enregistré localement sous le nom setup_psc.sh. Une fois les modifications enregistrées, modifiez le script shell pour autoriser l'accès global à psc. Vous pouvez effectuer cette action dans le projet Google Cloud Cloud Shell.

  • Exemple de script shell : votre sortie aura des valeurs différentes

5c80cf7315a05c25.png

  • Copiez le script shell à partir de la console MongoBD et enregistrez son contenu dans le terminal Google Cloud Shell. 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 accepter l'accès mondial

Utilisez l'éditeur nano ou vi pour identifier et mettre à jour le script shell avec 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 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

Parcourez et exécutez le script setup_psc.sh. Une fois l'opération terminée, un fichier nommé atlasEndpoints-psc-endpoint-us-west1.json est créé. Le fichier JSON contient la liste des adresses IP et des noms de points de terminaison Private Service Connect requis pour l'étape suivante du déploiement.

Dans Cloud Shell, effectuez les opérations suivantes:

sh setup_psc.sh

Une fois l'exécution du script terminée, utilisez l'éditeur Cloud Shell pour télécharger le fichier atlasEndpoints-psc-endpoint-us-west1.json en local.

2856802dd6497f51.png b0059dc8e1558891.png

Importer le fichier JSON

Importez le fichier JSON atlasEndpoints-psc-endpoint-us-west1.json précédemment enregistré.

3a74e8d9952d793a.png

4938fd8256eb81b4.png

Sélectionnez "Créer".

Valider les points de terminaison Private Service Connect

Dans l'interface utilisateur de MongoDB, accédez à votre projet, puis sélectionnez Sécurité → Accès au réseau → Point de terminaison privé. Si vous sélectionnez l'onglet "Cluster dédié", la transition du point de terminaison vers "Disponible" prendra 10 minutes.

État disponible

972aff09d180d9de.png

Dans la console Google Cloud, accédez à Services réseau → Private Services Connect, sélectionnez l'onglet "Point de terminaison connecté" affichant les points de terminaison client en cours de transition En attente → Acceptés. Exemple:

5472dd938604b3.png

8. Création d'un point de terminaison privé pour us-west2

  • Connectez-vous à votre compte Atlas et accédez à votre projet.

Préparer des points de terminaison privés dans MongoDB Atlas

  • Sélectionner, Accès réseau → Points de terminaison privés → Cluster dédié → Ajouter un point de terminaison privé 88f5c1d9ae7e46d9.png

Fournisseur de services cloud

  • Sélectionnez "Google Cloud", puis "Suivant".

5503248bf4019a35.png

Rattachement de service

  • Sélectionnez la région "us-west2", puis "Suivant".

fc0b7a8e4274be3b.png

Points de terminaison

  • Pour créer un point de terminaison Private Service Connect, fournissez les éléments suivants:
  • ID du 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

17b5a056587ede8a.png

Configurer des points de terminaison

Dans la section suivante, un script shell est généré. Il doit être enregistré localement sous le nom setup_psc.sh. Une fois les modifications enregistrées, modifiez le script shell pour autoriser l'accès global à psc. Vous pouvez effectuer cette action dans le projet Google Cloud Cloud Shell.

  • Exemple de script shell : votre sortie aura des valeurs différentes

b021821e7d59f450.png

  • Copiez le script shell à partir de la console MongoBD et enregistrez son contenu dans le terminal Google Cloud Shell. 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 accepter l'accès mondial

Utilisez l'éditeur nano ou vi pour identifier et mettre à jour le script shell avec 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 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

Parcourez et exécutez le script setup_psc.sh. Une fois l'opération terminée, un fichier nommé atlasEndpoints-psc-endpoint-us-west2.json est créé. Le fichier JSON contient la liste des adresses IP et des noms de points de terminaison Private Service Connect requis pour l'étape suivante du déploiement.

Dans Cloud Shell, effectuez les opérations suivantes:

sh setup_psc.sh

Une fois l'exécution du script terminée, utilisez l'éditeur Cloud Shell pour télécharger le fichier atlasEndpoints-psc-endpoint-us-west2.json en local.

2856802dd6497f51.png 6e3d944944718f13.png

Importer le fichier JSON

Importez le fichier JSON atlasEndpoints-psc-endpoint-us-west2.json précédemment enregistré.

3a74e8d9952d793a.png

4938fd8256eb81b4.png

Sélectionnez "Créer".

Valider les points de terminaison Private Service Connect

Dans l'interface utilisateur de MongoDB, accédez à votre projet, puis sélectionnez Sécurité → Accès au réseau → Point de terminaison privé. Sélection de l'onglet "Cluster dédié", et passage du point de terminaison à "Disponible" après 10 minutes.

État disponible:

8801df4f6b39d20a.png

Dans la console Google Cloud, accédez à Services réseau → Private Services Connect, sélectionnez l'onglet "Point de terminaison connecté" affichant les points de terminaison client en cours de transition En attente → Acceptés, comme dans l'exemple ci-dessous. Un total de 100 points de terminaison sont déployés sur le point de terminaison du client doivent passer à la phase "Acceptée" avant de passer à l'étape suivante.

6131abcdef5c1f49.png

9. Se connecter à l'atlas MongoDB depuis des points de terminaison privés

Une fois les connexions de service privées acceptées, un délai supplémentaire (10 à 15 minutes) est nécessaire pour mettre à jour le cluster MongoDB. Dans l'interface utilisateur de 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.

c1524d2c0c5765d1.png

Identifiez le déploiement et sélectionnez "Se connecter" (notez que la zone grise n'est plus présente).

3eea96af20bfad20.png

Sélectionnez le type de connexion → Point de terminaison privé, puis choisissez une méthode de connexion

16a9090e495640c7.png

Sélectionnez "Se connecter avec le shell MongoDB".

35e422af16cb5ce0.png

Sélectionnez "I have the MongoDB Shell" (Ubuntu 20.4) n'est pas installé et assurez-vous de copier le contenu des étapes 1 et 3 dans un bloc-notes.

51be47403c00bab4.png

10. Installer l'application mongole

Avant l'installation, vous devez créer une chaîne de commande basée sur les valeurs précédemment copiées et obtenues aux étapes 1 et 3. Vous allez ensuite vous connecter en SSH à vm1 à l'aide de Cloud Shell, puis installer l'application mongosh et la valider sur 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-vpc".

Choisissez une méthode de connexion: Étape 1, Copier l'URL de téléchargement

5da980ff86265dd8.png

Exemple de chaîne de commande à remplacer 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.

698286bdf3dee3c7.png

Exemple de chaîne de commande à remplacer 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, effectuez les opérations suivantes:

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

Connectez-vous à la VM1 à l'aide d'IAP dans Cloud Shell, puis réessayez en cas d'expiration du délai.

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, informations supplémentaires 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 renvoyer une réponse

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 fenêtre de connexion au système d'exploitation Cloud Shell, procédez comme suit. Le nom d'utilisateur et le mot de passe configurés sont des ateliers de programmation.

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 :

d5d0324a273b4d5e.png

Exécuter des commandes sur la base de données

Dans la fenêtre de connexion au système d'exploitation 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 un nœud principal et que us-west2 possède deux nœuds secondaires.

Accédez à Base de données → psc-mongodb-uswest1-uswest2 → Présentation

64ca0395807bb3ac.png

Dans la section suivante, connectez-vous à la VM1 située dans la région us-west1, basculez la région principale du cluster MongoDB us-west1 et vérifiez que la base de données est toujours accessible depuis le cluster MongoDB dans la région us-west2.

Vous pouvez tester le basculement principal et le basculement régional à partir de l'UI Atlas.

  • Connectez-vous à l'interface utilisateur d'Atlas.
  • À côté du nom de votre cluster, cliquez sur [...] : psc-mongodb-uswest1-uswest2 → Tester l'interruption.

3a50da4381817975.png

  • Sélectionnez Interruption régionale → Sélectionner les régions.

b8dfff376477bcbb.png

  • Sélectionnez la région principale : us-west1 → Simuler l'indisponibilité régionale.

76494a750a040bc5.png

Une fois sélectionné, le cluster affichera une simulation de panne au bout de trois à quatre minutes

Fermer la fenêtre

3a9f0359bd4e288f.png

bac1b2db0d754bbf.png

Vérifiez que us-west1 est hors service et que us-west2 est désormais pris en charge en tant que service principal

Accédez à Base de données → psc-mongodb-uswest1-uswest2 → Présentation

86fd7d5230715645.png

Valider la connectivité au cluster avec la nouvelle instance principale, 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 mondial à Private Service Connect.

Si votre session Cloud Shell s'est arrêtée, procédez comme suit:

Dans Cloud Shell, effectuez les opérations suivantes:

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

Connectez-vous à la VM1 à l'aide d'IAP dans Cloud Shell, puis réessayez en cas d'expiration du délai.

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

Se connecter au déploiement MongoDB

Dans la fenêtre de connexion au système d'exploitation 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 :

d262800a557b41a3.png

Exécuter des commandes sur la base de données

Dans la fenêtre de connexion au système d'exploitation Cloud Shell, procédez comme suit.

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

exit

20c2571d84c0661d.png

Réussite: Vous avez confirmé que l'accès mondial PSC permet une connectivité fluide des points de terminaison des clients entre les régions, ce qui contribue à améliorer la haute disponibilité ou en cas d'indisponibilité régionale. Dans l'atelier de programmation, le basculement régional MongoDB s'est produit dans le nœud principal situé us-west1. Par conséquent, la région secondaire us-west2 a pris le relais d'un nœud principal. Bien que le cluster ait entraîné une panne régionale, la VM1 du consommateur située dans la région us-west1 a réussi à atteindre le nouveau cluster principal dans la région us-west2.

12. Nettoyage

Dans la console Cloud, supprimez les points de terminaison des clients.

Accédez à Services réseau → Private Service Connect → POINTS DE TERMINAISON CONNECTÉS

Utilisez le filtre psc-endpoint pour éliminer la suppression potentielle de points de terminaison client hors laboratoire. Sélectionner tous les points de terminaison → SUPPRIMER

192548e374b444a1.png

Supprimer les adresses IP internes statiques associées aux points de terminaison des clients

Accédez au réseau VPC → consumer-vpc → STATIC INTERNAL IP ADDRESSES

Utilisez le filtre psc-endpoint pour éliminer la suppression potentielle de points de terminaison client hors laboratoire et augmenter le nombre de lignes par page jusqu'à 100. Sélectionner tous les points de terminaison → VERSION

4cebf164c4fecd83.png

Dans Cloud Shell, supprimez les composants de l'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

Depuis l'interface utilisateur d'Atlas, identifiez le cluster psc-mongodb-uswest1-uswest2 → Fin de la simulation

f82e28ac984d9e20.png

Sélectionnez "Arrêter la simulation d'indisponibilité" —> Quitter

38feaf055abdceea.png

Le cluster rétablit la région us-west1 en tant qu'instance principale. Ce processus prend trois à quatre minutes. Une fois l'opération terminée, arrêtez le cluster. Notez que le contour gris indique un changement d'état.

f249a61bcc966d41.png

9427a9349daa1fea.png

Insérer le nom du cluster → Arrêter

9ef6d3a6387c5b4b.png

Supprimer le point de terminaison privé associé à us-west1 et us-west2

Depuis l'interface utilisateur d'Atlas, accédez à Sécurité → Accès au réseau → Point de terminaison privé → sélectionnez "Arrêter".

56415ea954b2fec9.png

13. Félicitations

Félicitations ! Vous avez configuré et validé un point de terminaison Private Service Connect avec un accès mondial à MongoDB dans plusieurs régions. Vous avez créé un VPC consommateur, un MongoDB multirégional et des points de terminaison client. Une VM située dans la région us-west1 s'est connectée avec succès à MongoDB dans les régions us-west1 et us-west2 lors du basculement régional.

Cosmopup trouve les ateliers de programmation géniaux !

8c2a10eb841f7b01.jpeg

Et ensuite ?

Découvrez quelques-uns des ateliers de programmation...

Complément d'informations et Vidéos

Documents de référence