我有一个在ECS中运行的应用程序,该应用程序连接到同一VPC中的自托管mongoDB EC2实例。连接url是EC2实例的内网IP。以下是连接代码
# # mongodb connection string from systen env
MONGODB_URL = os.environ.get('MONGODB_URL', 'localhost')
MONGODB_PORT= int(os.environ.get('MONGODB_PORT', '27017'))
client = MongoClient(MONGODB_URL, MONGODB_PORT)我将数据库移到了Atlas,建立了VPC对等连接,将AWS VPC网络列入了白名单,并为应用程序创建了一个新的数据库用户。
然后,我将ECS任务中的连接字符串更改为
MONGODB_URL: mongodb+srv://<username>:<password>@mongodb-prod.zzl18.mongodb.net/nameofDB?retryWrites=true&w=majority
现在,当我运行这个程序时,我得到:
pymongo.errors.ServerSelectionTimeoutError: mongodb-prod-shard-00-00.zzl18.mongodb.net:27017: timed out,mongodb-prod-shard-00-02.zzl18.mongodb.net:27017: timed out,mongodb-prod-shard-00-01.zzl18.mongodb.net:27017: timed out为了查看是否存在网络问题,我打开了到0.0.0.0/0的DB网络访问
我仍然收到相同的错误。
也许问题出在连接字符串上,但我不确定。如果您能提供任何帮助,我们将不胜感激。
发布于 2021-11-03 14:53:49
需要将ECS App子网添加到VPC路由表中。
https://stackoverflow.com/questions/69813569
复制相似问题