¿Cómo se conecta a MongoDB Atlas desde Google Cloud Run cuando usa VPC y redes de pares?

Aug 19 2020

Estoy tratando de conectarme desde Google Cloud Run a MongoDB usando VPC y redes de pares, pero parece que no puedo establecer una conexión. El objetivo es poder conectarse desde Cloud Run a Atlas mientras solo permite un cierto rango de IP.

Mi configuración es:

  • MongoDB Atlas ejecutándose en Google Cloud.
  • Un contenedor de Google Cloud Run que ejecuta un servidor NodeJS en la misma región que el atlas de MongoDB (aunque eso no debería importar hasta donde yo sé).

He realizado los siguientes pasos:

  1. Cree una VPC en el lado de Google Cloud siguiendo las instrucciones de https://cloud.google.com/vpc/docs/using-vpc.

  2. Configure un intercambio de tráfico de red entre mi VPC y MongoDB Atlas VPC: https://docs.atlas.mongodb.com/security-vpc-peering/

  3. Configure el acceso a la VPC sin servidor mediante un conector: https://cloud.google.com/vpc/docs/configure-serverless-vpc-access

  4. Se volvió a implementar el contenedor de ejecución en la nube con el conector anterior: https://cloud.google.com/run/docs/configuring/connecting-vpc

  5. Se agregó el rango CIDR del paso 3 a la lista blanca en el atlas de MongoDB y se eliminó el rango abierto anterior 0.0.0.0/0.

Todos los pasos se realizan correctamente (puntos verdes, etc.) pero cuando intento conectarme después del paso 5, la conexión falla. ¿Qué me estoy perdiendo?

Respuestas

2 Stefan Aug 19 2020 at 17:39

Resolví esto respondiendo a mi propia pregunta. Resulta que el enfoque descrito en la pregunta funciona. Me faltaban dos cosas:

  1. Debe cambiar la cadena de conexión de MongoDB a la cadena de conexión privada. Puede recuperarlo haciendo clic en "Conectar" en "Clústeres" en el panel de MongoDB. Por lo que pude ver, esto no está documentado en ninguna parte de la guía de redes de pares de MongoDB.

  2. Incluya en la lista blanca el rango CIDR de la propia VPC (paso 1) y el rango CIDR del conector sin servidor (paso 3) en la configuración de red de MongoDB Atlas.