J'essaie d'établir une connexion à une base de données MongoDB Atlas à partir d'un conteneur AWS Fargate. Le peering VPC est configuré et fonctionne et je peux me connecter avec succès au cluster MongoDB Atlas à partir d'un bastion dans les sous-réseaux privés du VPC AWS. Cependant, lorsque je tente la même connexion à partir d'une tâche Fargate, la connexion échoue.
Par exemple, si j'essaie de me connecter avec la commande mongo cli suivante :
mongo "mongodb+srv://user:password@cluster0.foo0.mongodb.net/database"
J'obtiens l'erreur suivante.
MongoDB shell version v4.0.20
connecting to: mongodb://cluster0-shard-00-01.foo0.mongodb.net.:27017,cluster0-shard-00-02.tzhow.mongodb.net.:27017,cluster0-shard-00-00.foo0.mongodb.net.:27017/cxchat?authSource=admin&gssapiServiceName=mongodb&replicaSet=atlas-mdt101-shard-0&ssl=true
2020-09-09T13:16:46.295+0000 I NETWORK [js] Starting new replica set monitor for atlas-mdt101-shard-0/cluster0-shard-00-01.foo0.mongodb.net.:27017,cluster0-shard-00-02.foo0.mongodb.net.:27017,cluster0-shard-00-00.foo0.mongodb.net.:27017
2020-09-09T13:16:56.351+0000 W NETWORK [ReplicaSetMonitor-TaskExecutor] Unable to reach primary for set atlas-mdt101-shard-0
2020-09-09T13:16:56.351+0000 I NETWORK [ReplicaSetMonitor-TaskExecutor] Cannot reach any nodes for set atlas-mdt101-shard-0. Please check network connectivity and the status of the set. This has happened for 1 checks in a row.
2020-09-09T13:17:11.867+0000 W NETWORK [js] Unable to reach primary for set atlas-mdt101-shard-0
2020-09-09T13:17:11.867+0000 I NETWORK [js] Cannot reach any nodes for set atlas-mdt101-shard-0. Please check network connectivity and the status of the set. This has happened for 2 checks in a row.
*** It looks like this is a MongoDB Atlas cluster. Please ensure that your IP whitelist allows connections from your network.
2020-09-09T13:17:11.868+0000 E QUERY [js] Error: connect failed to replica set atlas-mdt101-shard-0/cluster0-shard-00-01.foo0.mongodb.net.:27017,cluster0-shard-00-02.foo0.mongodb.net.:27017,cluster0-shard-00-00.foo0.mongodb.net.:27017 :
La même commande fonctionne bien à partir d'un EC2 dans le VPC dans un sous-réseau privé (mêmes sous-réseaux que ceux attribués au conteneur ECS).
Je comprends que le réseau Fargate est un peu différent. La tâche est configurée avec AWSVPC comme NetworkMode. L'erreur suggère qu'une entrée de liste blanche pourrait être nécessaire du côté de Mongo Atlas, mais j'ai vérifié cela et l'IP de la tâche est 10.2.0.129, ce qui est confortablement dans la liste blanche assignée sur Atlas de 10.2.0.0/16.
Quelqu'un a-t-il essayé de le faire avec Fargate ou quelque chose de similaire ? J'aurais pensé que la connexion de peering VPC serait également active sur la tâche Fargate étant donné qu'elle est configurée dans le même VPC/sous-réseaux, etc.