Come ci si connette a MongoDB Atlas da Google Cloud Run quando si utilizza VPC e reti peer?
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:
Crea un VPC sul lato Google Cloud seguendo le istruzioni da https://cloud.google.com/vpc/docs/using-vpc.
Configura un peering di rete tra il mio VPC e MongoDB Atlas VPC: https://docs.atlas.mongodb.com/security-vpc-peering/
Configura l'accesso VPC senza server utilizzando un connettore: https://cloud.google.com/vpc/docs/configure-serverless-vpc-access
Contenitore di esecuzione cloud ridistribuito utilizzando il connettore sopra: https://cloud.google.com/run/docs/configuring/connecting-vpc
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
Ho risolto questo così rispondendo alla mia stessa domanda. Risulta che l'approccio delineato nella domanda funziona. Mi mancavano due cose:
È 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.
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.