【问题标题】:AWS Lambda default VPC - unable to connect with mongodb running on EC2AWS Lambda 默认 VPC - 无法连接在 EC2 上运行的 mongodb
【发布时间】:2021-10-06 06:04:04
【问题描述】:

谁能帮我弄清楚从 Lambda 到 MognoDB 的数据库连接问题(在 EC2、ubuntu 机器上运行)

我有以下场景 -

  1. 在 EC2 上安装并运行 MongoDB(在默认 VPC 中)
  2. 为 API EC2 的私有 IP 启用端口 27017
  3. 为 SECURITY_GROUP 启用端口 27017,如下所示 -
  4. 在默认 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


【解决方案1】:

鉴于 Lambda 函数和 MongoDB 实例具有相同的安全组,您应该:

  • 确保安全组允许来自自身的流量入站
  • 您的数据库客户端连接到数据库服务器的私有 IP(或使用 VPC DNS 解析器解析其 DNS 名称,这将产生私有 IP)而不是其公共 IP

【讨论】:

    猜你喜欢
    • 2023-01-08
    • 2020-01-09
    • 2019-11-02
    • 2014-10-29
    • 2019-11-10
    • 1970-01-01
    • 2019-02-20
    • 2016-05-14
    • 2017-03-14
    相关资源
    最近更新 更多