Come ci si connette a MongoDB Atlas da Google Cloud Run quando si utilizza VPC e reti peer?

Aug 19 2020

Sto cercando di connettermi da Google Cloud Run a MongoDB utilizzando VPC e reti peer ma non riesco a stabilire una connessione. L'obiettivo è essere in grado di connettersi da Cloud Run ad Atlas consentendo solo un determinato intervallo IP.

La mia configurazione è:

  • MongoDB Atlas in esecuzione su Google Cloud.
  • Un container di Google Cloud Run che esegue un server NodeJS sulla stessa regione dell'atlante MongoDB (anche se non dovrebbe avere importanza per quanto ne so).

Ho eseguito i seguenti passaggi:

  1. Crea un VPC sul lato Google Cloud seguendo le istruzioni da https://cloud.google.com/vpc/docs/using-vpc.

  2. Configura un peering di rete tra il mio VPC e MongoDB Atlas VPC: https://docs.atlas.mongodb.com/security-vpc-peering/

  3. Configura l'accesso VPC senza server utilizzando un connettore: https://cloud.google.com/vpc/docs/configure-serverless-vpc-access

  4. Contenitore di esecuzione cloud ridistribuito utilizzando il connettore sopra: https://cloud.google.com/run/docs/configuring/connecting-vpc

  5. Aggiunto l'intervallo CIDR dal passaggio 3 alla whitelist nell'atlante MongoDB e rimosso l'intervallo aperto precedente 0.0.0.0/0.

Tutti i passaggi riescono (punti verdi ecc.) Ma quando provo a connettermi dopo il passaggio 5 la connessione non riesce. Cosa mi manca?

Risposte

2 Stefan Aug 19 2020 at 17:39

Ho risolto questo così rispondendo alla mia stessa domanda. Risulta che l'approccio delineato nella domanda funziona. Mi mancavano due cose:

  1. È necessario modificare la stringa di connessione MongoDB nella stringa di connessione privata. Puoi recuperarlo facendo clic su "Connetti" sotto "Cluster" nella dashboard di MongoDB. Questo è per quanto ho potuto vedere non documentato da nessuna parte nella guida al networking peer di MongoDB.

  2. Inserisci nella whitelist l'intervallo CIDR dal VPC stesso (passaggio 1) e l'intervallo CIDR dal connettore serverless (passaggio 3) nelle impostazioni di rete MongoDB Atlas.