【发布时间】:2021-10-06 06:04:04
【问题描述】:
谁能帮我弄清楚从 Lambda 到 MognoDB 的数据库连接问题(在 EC2、ubuntu 机器上运行)
我有以下场景 -
- 在 EC2 上安装并运行 MongoDB(在默认 VPC 中)
- 为 API EC2 的私有 IP 启用端口 27017
- 为 SECURITY_GROUP 启用端口 27017,如下所示 -
- 在默认 VPC 和分配给 MongoDB EC2 服务器的同一安全组中部署了 Lambda 函数。
在上述情况下,我的 Lamda 函数无法连接到 MongoDB EC2 服务器,但是如果我全局打开 PORT 27017,则它可以正常工作。
有人可以帮忙吗?
【问题讨论】:
-
#3,你的意思是分配给 MongoDB 实例的安全组允许来自安全组本身的入站端口 27017?
-
@jarmod - 是的,正确
-
当您的 Lambda 函数连接到 MongoDB 实例时,它是通过主机名还是公有 IP 或私有 IP 执行此操作?
-
它正在使用mongoDB实例的公共IP
-
这就是问题所在。您应该解析 DNS 名称(如果使用标准 VPC 提供的 DNS 服务器,它将解析为私有 IP)或直接使用私有 IP。使用公共 IP 意味着您的客户端不再被视为在安全组中,因此您的流量将被丢弃(除非您允许从其公共 IP 或 0.0.0.0/0 入站)。
标签: mongodb amazon-web-services amazon-ec2 aws-lambda amazon-vpc