1. Introducción
Private Service Connect (PSC) simplifica la forma en que se consumen los servicios de forma segura y privada. Este modelo facilita considerablemente la arquitectura de la red, ya que permite que los consumidores de servicios se conecten de forma privada con los productores de servicios de todas las organizaciones y elimina la necesidad del intercambio de tráfico entre nubes privadas virtuales. En la Figura 1, se ilustran los atributos de intercambio de tráfico entre VPC y de PSC.
Figura 1:
Como consumidor de servicios, te ofrece la flexibilidad de elegir cómo asignar tus IP privadas a los servicios, a la vez que quita la carga de administrar rangos de subred para las VPC de productor. Ahora puedes asignar simplemente una IP virtual elegida de tu VPC a ese servicio con Service Connect.
En este codelab, compilarás una arquitectura integral de Private Service Connect que ilustre el uso del acceso global de PSC con el atlas de MongoDB.
El acceso global permite a los clientes conectarse a Private Service Connect (PSC) a través de límites regionales. Esto es útil para crear alta disponibilidad en los servicios administrados alojados en varias regiones o para permitir que los clientes accedan a un servicio que no está en la misma región que el cliente.
2. Habilita el acceso global
El acceso global es una función opcional que se configura en la regla de reenvío del lado del consumidor. El siguiente comando muestra cómo se configura:
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
- La marca
--allow-psc-global-access
habilita el acceso global en un extremo de Private Service Connect - El acceso global permite que el cliente se encuentre en una región diferente a la de la regla de reenvío de Private Service Connect, pero la regla de reenvío debe estar en la misma región que el adjunto de servicio al que está conectada.
- No se requiere configuración en el adjunto de servicio del productor para habilitar el acceso global. Solo es una opción del consumidor.
El acceso global también se puede activar o desactivar en cualquier momento para los extremos existentes. No hay interrupción en el tráfico de las conexiones activas cuando se habilita el acceso global en un extremo existente. El acceso global está habilitado en una regla de reenvío existente con el siguiente comando:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Inhabilita el acceso global
El acceso global también se puede inhabilitar en las reglas de reenvío existentes con la marca --no-allow-psc-global-access
. Ten en cuenta que cualquier tráfico interregional activo se finalizará después de que se ejecute este comando.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Qué compilarás
- Se creará un clúster de MongoDB Atlas multirregional (topología descrita en la Figura 2) con un nodo en us-west1 y dos nodos en us-west2, respectivamente.
- Una VPC de consumidor y una VM asociada para acceder a los clústeres de MongoDB en us-west1 y us-west2.
- Una VPC y dos subredes en las regiones us-west1 y us-west2, respectivamente, con al menos 64 direcciones IP libres en cada subred (crea subredes con /26 o inferior).
El cliente MongoDB se instalará en vm1, en la VPC del consumidor. Cuando el nodo principal falla en us-west1, el cliente podrá leer y escribir a través del nuevo nodo principal en us-west2.
Figura 2:
Qué aprenderás
- Cómo crear una VPC y subredes implementadas en dos regiones
- Cómo implementar un clúster de atlas de MongoDB multirregional
- Cómo crear un extremo privado
- Cómo conectarse a MongoDB
- Cómo realizar y validar la conmutación por error multirregional de MongoDB
Requisitos
- Proyecto de Google Cloud
- Proporciona una subred /26 por región
- Acceso de propietario del proyecto o de la organización a MongoDB Atlas para crear un clúster de MongoDB con el nivel de clúster M10 o superior. (Use GETATLAS para obtener créditos gratuitos por ejecutar el PoV)
4. Antes de comenzar
Actualiza el proyecto para que sea compatible con el codelab
En este codelab, se usa $variables para facilitar la implementación de la configuración de gcloud en Cloud Shell.
Dentro de Cloud Shell, realiza lo siguiente:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Configuración del consumidor
Crea la VPC del consumidor
Dentro de Cloud Shell, realiza lo siguiente:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Crea las subredes del consumidor
Dentro de Cloud Shell, realiza lo siguiente:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
En Cloud Shell, crea el extremo de consumidor para 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
En Cloud Shell, crea el extremo de consumidor para 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
Configuración de Cloud Router y NAT
Cloud NAT se usa en el codelab para la instalación de paquetes de software, ya que las instancias de VM no tienen una dirección IP externa.
En Cloud Shell, crea el Cloud Router.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
En Cloud Shell, crea la puerta de enlace NAT.
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
Configuración de VM1 de la instancia
En la siguiente sección, crearás la instancia de Compute Engine, vm1.
En Cloud Shell, crea la instancia 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"
Para permitir que IAP se conecte a tus instancias de VM, crea una regla de firewall que haga lo siguiente:
- Se aplica a todas las instancias de VM a las que deseas que se pueda acceder mediante IAP.
- Permite el tráfico de entrada del rango de IP 35.235.240.0/20. Este rango contiene todas las direcciones IP que IAP usa para el reenvío de TCP.
En Cloud Shell, crea la regla de firewall de IAP.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Crea el clúster multirregional de MongoDB Atlas
- Debemos configurar un clúster de Atlas antes de comenzar con la configuración de PSC. Puedes suscribirte a MongoDB Atlas de una de las siguientes maneras:
- A través de Google Cloud Marketplace si tienes una cuenta de Google Cloud Consulta la documentación para configurar tu suscripción.
- Usa la página de registro de Atlas.
- Tras suscribirse a Atlas, haga clic en el botón Build a Database, como se muestra a continuación.
- Crea un clúster nuevo → Dedicado
- Proveedor de servicios en la nube y región → Google Cloud
- Múltiples nubes, multirregionales y aislamiento de la carga de trabajo → Seleccionado (verificación azul)
- Nodos elegibles → us-west1 (1 nodo), us-west2 (2 nodos)
- Nivel del clúster → M10, deja el resto de la configuración con sus valores predeterminados
- Nombre del clúster → psc-mongodb-uswest1-uswest2
- Seleccionar → Crear clúster
- La creación de la base de datos tarda entre 7 y 10 minutos
Vista del clúster una vez implementado
7. Creación de extremos privados para us-west1
- Accede a tu cuenta de Atlas y navega hasta tu proyecto.
Crea un usuario nuevo para permitir el acceso de lectura/escritura a cualquier base de datos
Seguridad → Acceso a la base de datos. Selecciona la opción para agregar un nuevo usuario de base de datos. A continuación, se muestra un ejemplo de un nombre de usuario y una contraseña configurados como codelab. Asegúrate de seleccionar la función integrada de lectura y escritura en cualquier base de datos.
- En Seguridad → Acceso a la red, la Lista de acceso de IP no requiere una entrada
Prepara extremos privados en MongoDB Atlas
- Selecciona Acceso a la red → Extremos privados → Clúster dedicado → Agregar extremo privado
Proveedor de servicios en la nube
- Selecciona Google Cloud y, luego,
Adjunto de servicio
- Selecciona la región us-west1 y, luego, la opción siguiente
Extremos
- Para crear un extremo de Private Service Connect, proporciona lo siguiente:
- ID del proyecto de Google Cloud: Selecciona “mostrar instrucciones”. para obtener más información
- Nombre de la VPC: consumer-vpc
- Nombre de la subred: psc-endpoint-us-west1
- Prefijo del extremo de Private Service Connect: psc-endpoint-us-west1
Configura extremos
En la siguiente sección, se genera una secuencia de comandos de shell que se debe guardar de forma local llamada setup_psc.sh. Una vez guardada, edita la secuencia de comandos de shell para permitir el acceso global a PSC. Puedes realizar esta acción en Cloud Shell del proyecto de Google Cloud.
- Ejemplo de secuencia de comandos de shell; el resultado tendrá valores diferentes
- Copia la secuencia de comandos de shell de la consola de MongoBD y guarda el contenido en la terminal de Cloud Shell de Google Cloud. Asegúrate de guardar la secuencia de comandos como setup_psc.sh.
Ejemplo antes de la actualización:
#!/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
Actualiza la secuencia de comandos de shell para admitir el acceso global
Usa el editor nano o vi para identificar y actualizar la secuencia de comandos de shell con la siguiente sintaxis:
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
Ejemplo posterior a la actualización:
#!/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
Ejecuta la secuencia de comandos de shell
Navega y ejecuta la secuencia de comandos setup_psc.sh. Una vez completada, se crea un archivo llamado atlasEndpoints-psc-endpoint-us-west1.json. El archivo json contiene una lista de direcciones IP y nombres de extremos de Private Service Connect necesarios para el siguiente paso de la implementación.
Dentro de Cloud Shell, haz lo siguiente:
sh setup_psc.sh
Cuando se complete la secuencia de comandos, usa el editor de Cloud Shell para descargar atlasEndpoints-psc-endpoint-us-west1.json de manera local.
Sube el archivo JSON
Sube el archivo json guardado anteriormente atlasEndpoints-psc-endpoint-us-west1.json
Selecciona Crear.
Valida extremos de Private Service Connect
En la IU de MongoDB, navega a tu proyecto y selecciona Seguridad → Acceso a la red → Extremo privado. Cuando seleccionas la pestaña, el clúster dedicado, la transición del extremo a estar disponible tardará 10 minutos.
Estado disponible
En la consola de Google Cloud, navega a Servicios de red → Private Services Connect, selecciona la pestaña Extremo conectado que muestra los extremos del consumidor en transición Pendiente → Aceptado (ejemplo a continuación):
8. Creación de extremos privados para us-west2
- Accede a tu cuenta de Atlas y navega hasta tu proyecto.
Prepara extremos privados en MongoDB Atlas
- Selecciona Acceso a la red → Extremos privados → Clúster dedicado → Agregar extremo privado
Proveedor de servicios en la nube
- Selecciona Google Cloud y, luego,
Adjunto de servicio
- Selecciona la región us-west2 y, luego, la opción siguiente
Extremos
- Para crear un extremo de Private Service Connect, proporciona lo siguiente:
- ID del proyecto de Google Cloud: Selecciona “mostrar instrucciones”. para obtener más información
- Nombre de la VPC: consumer-vpc
- Nombre de la subred: psc-endpoint-us-west2
- Prefijo del extremo de Private Service Connect: psc-endpoint-us-west2
Configura extremos
En la siguiente sección, se genera una secuencia de comandos de shell que se debe guardar de forma local llamada setup_psc.sh. Una vez guardada, edita la secuencia de comandos de shell para permitir el acceso global a PSC. Puedes realizar esta acción en Cloud Shell del proyecto de Google Cloud.
- Ejemplo de secuencia de comandos de shell; el resultado tendrá valores diferentes
- Copia la secuencia de comandos de shell de la consola de MongoBD y guarda el contenido en la terminal de Cloud Shell de Google Cloud. Asegúrate de guardar la secuencia de comandos como setup_psc.sh.
Ejemplo antes de la actualización:
#!/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
Actualiza la secuencia de comandos de shell para admitir el acceso global
Usa el editor nano o vi para identificar y actualizar la secuencia de comandos de shell con la siguiente sintaxis:
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
Ejemplo posterior a la actualización:
#!/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
Ejecuta la secuencia de comandos de shell
Navega y ejecuta la secuencia de comandos setup_psc.sh. Una vez completada, se crea un archivo llamado atlasEndpoints-psc-endpoint-us-west2.json. El archivo json contiene una lista de direcciones IP y nombres de extremos de Private Service Connect necesarios para el siguiente paso de la implementación.
Dentro de Cloud Shell, haz lo siguiente:
sh setup_psc.sh
Cuando se complete la secuencia de comandos, usa el editor de Cloud Shell para descargar atlasEndpoints-psc-endpoint-us-west2.json de manera local.
Sube el archivo JSON
Sube el archivo json guardado anteriormente atlasEndpoints-psc-endpoint-us-west2.json
Selecciona Crear.
Valida los extremos de Private Service Connect
En la IU de MongoDB, navega a tu proyecto y selecciona Seguridad → Acceso a la red → Extremo privado. Selección de la pestaña, clúster dedicado, la transición del extremo estará disponible después de 10 minutos.
Estado disponible:
En la consola de Google Cloud, navega a Servicios de red → Private Services Connect, selecciona la pestaña Extremo conectado que muestra los extremos del consumidor en la transición Pendiente → Aceptado (ejemplo a continuación). Se implementa un total de 100 extremos en el extremo del consumidor y deberán pasar a la versión aceptada antes de pasar al siguiente paso.
9. Conéctate a un atlas de MongoDB desde extremos privados
Una vez aceptadas las conexiones de Private Service Connections, se necesita tiempo adicional (de 10 a 15 minutos) para actualizar el clúster de MongoDB. En la IU de MongoDB, el contorno gris representa la actualización del clúster, por lo que la conexión al extremo privado no está disponible.
Identifica la implementación y selecciona Conectar (ten en cuenta que el cuadro gris ya no está presente).
Elige el tipo de conexión → Extremo privado, elige Elegir un método de conexión
Selecciona Conectar con el shell de MongoDB.
Selecciona que no tengo instalado Ubuntu 20.4 del shell de MongoDB, y asegúrate de copiar el contenido de los pasos 1 y 3 en un bloc de notas.
10. Instalar la aplicación de Mongosh
Antes de la instalación, deberás crear una cadena de comando basada en los valores copiados anteriormente obtenidos en los pasos 1 y 3. Después, accederás mediante SSH a vm1 con Cloud Shell. Luego, instalarás la aplicación de Mongosh y la validarás en la base de datos principal (us-west1). Se instaló la imagen de Ubuntu 20.4 cuando se creó vm1 en consumer-vpc.
Elige un método de conexión: Paso 1, copia la URL de descarga.
Ejemplo de cadena de comando; reemplázalo por tus valores personalizados:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Selecciona un método de conexión (paso 3).
Ejemplo de cadena de comando; reemplázalo por tus valores personalizados:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Acceder a VM1
Dentro de Cloud Shell, realiza lo siguiente:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Accede a vm1 usando IAP en Cloud Shell. Vuelve a intentarlo si se agotó el tiempo de espera.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Realiza la instalación desde el SO
Realiza la instalación desde el acceso al SO de Cloud Shell, detalles disponibles adicionales y actualiza la sintaxis que aparece a continuación con tu cadena personalizada.
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
La operación debería responder con 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
Conéctate a la implementación de MongoDB
Dentro del acceso al SO de Cloud Shell, realiza lo siguiente: El nombre de usuario y la contraseña que se configuraron son un codelab.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
A continuación, se incluye un ejemplo:
Ejecutar comandos en la base de datos
Dentro del acceso al SO de Cloud Shell, realiza lo siguiente:
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Conmutación por error de la región activa de MongoDB, us-west1
Antes de realizar la conmutación por error, validemos que us-west1 sea la principal y que us-west2 tenga dos nodos secundarios.
Navega a Base de datos → psc-mongodb-uswest1-uswest2 → Descripción general
En la siguiente sección, inicia sesión en vm1, ubicado en us-west1, realiza la conmutación por error de la región principal del clúster de MongoDB en us-west1 y verifica que todavía se pueda acceder a la base de datos desde el clúster de MongoDB en us-west2.
Puedes probar la conmutación por error principal y regional desde Atlas UI.
- Accede a la IU de Atlas.
- Haz clic en [...] junto al nombre de tu clúster, psc-mongodb-uswest1-uswest2 → Test Outage.
- Selecciona Interrupción regional → Selecciona regiones.
- Selecciona la región principal, us-west1→ Silenciar interrupción regional.
Una vez seleccionado, el clúster mostrará la simulación de interrupción después de 3 a 4 minutos.
Cerrar la ventana
Verifique que us-west1 esté inactiva y que us-west2 se haya reemplazado como principal
Navega a Base de datos → psc-mongodb-uswest1-uswest2 → Descripción general
Valida la conectividad al clúster mediante la instancia principal nueva us-west2
Inicia sesión en vm1, ubicado en us-west1, y accede a mongodb en us-west2 para validar el acceso global de Private Service Connect.
Si finalizó tu sesión de Cloud Shell, haz lo siguiente:
Dentro de Cloud Shell, realiza lo siguiente:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Accede a vm1 usando IAP en Cloud Shell. Vuelve a intentarlo si se agotó el tiempo de espera.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Conéctate a la implementación de MongoDB
Dentro del acceso al SO de Cloud Shell, realiza lo siguiente:
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
A continuación, se incluye un ejemplo:
Ejecutar comandos en la base de datos
Dentro del acceso al SO de Cloud Shell, realiza lo siguiente:
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit
Éxito: Validaste que el acceso global de PSC permite una conectividad fluida de extremos de consumidores entre regiones para facilitar la alta disponibilidad o debido a interrupciones regionales. En el codelab, la conmutación por error regional de MongoDB ocurrió en el nodo principal ubicado en us-west1, por lo que la región secundaria us-west2 tomó el control de una principal. Aunque el clúster generó una interrupción regional, la vm1 del consumidor ubicada en us-west1 llegó con éxito al nuevo clúster principal en us-west2.
12. Limpieza
En la consola de Cloud, borra los extremos del consumidor.
Navega a Network services → Private Service Connect → CONNECTED ENDPOINTS
Usa el filtro psc-endpoint para eliminar la posible eliminación de extremos de consumidores que no sean del lab. Seleccionar todos los extremos → BORRAR
Borra las direcciones IP internas estáticas asociadas con los extremos del consumidor
Navega a Red de VPC → consumer-vpc→ DIRECCIONES IP INTERNAS ESTÁTICAS
Usa el filtro psc-endpoint para eliminar la posible eliminación de extremos de consumidores que no sean del lab y aumentar a 100 las filas por página. Seleccionar todos los extremos → LANZAMIENTO
En Cloud Shell, borra los componentes del codelab.
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
En la IU de Atlas, identifica el clúster psc-mongodb-uswest1-uswest2 → finalizar la simulación
Selecciona Finalizar simulación de interrupción —> Salir
El clúster ahora está revirtiendo us-west1 como principal. Este proceso tardará entre 3 y 4 minutos. Una vez que se complete el proceso, finaliza el clúster. Ten en cuenta que el contorno gris indica un cambio de estado.
Inserta el nombre del clúster → Finalizar
Borra el extremo privado asociado con us-west1 y us-west2
Desde la IU de Atlas, vaya a Seguridad → Acceso a la red → Extremo privado → Seleccione Terminate
13. Felicitaciones
Felicitaciones, configuraste y validaste correctamente un extremo de Private Service Connect con acceso global a MongoDB en todas las regiones. Creaste correctamente una VPC de consumidor, una MongoDB multirregional y extremos de consumidor. Una VM ubicada en us-west1 se conectó correctamente a MongoDB en us-west1 y us-west2 después de una conmutación por error regional.
Cosmopup cree que los codelabs son increíbles.
¿Qué sigue?
Consulta algunos codelabs sobre los siguientes temas:
- Usa Private Service Connect para publicar y consumir servicios con GKE
- Usa Private Service Connect para publicar y consumir servicios
- Conéctate a servicios locales a través de redes híbridas con Private Service Connect y un balanceador de cargas de proxy TCP interno
- Usa Private Service Connect con la configuración de DNS automática
Lecturas adicionales y Videos
- Descripción general de Private Service Connect
- ¿Qué es Private Service Connect?
- Tipos de balanceadores de cargas admitidos