有没有办法在没有 NAT 的情况下从 VPC 外部的 Lambda 查询 VPC 中的 RDS 数据库



我一直在寻找一些好的设计理念,但还没有找到最好的选择。基本上,我正在为现有数据库(VPC中的RDS MySQL,私有安全组(开发无服务器API。因此,我想从多个 Lambda 函数查询数据库。我知道以下方法如何实现这一目标:

  1. 将所有 Lambda 放在同一个 VPC 中。但是这种情况并不好,因为 Lambda 的冷启动缓慢(我需要让它们保持温暖(和并发限制。另外,我将需要调用其他服务(S3,SES,第三方服务(=>配置将更加困难。因此,理想情况下将它们保留在 VPC 之外。
  2. 将单个 Lambda(仅查询数据库(放在同一个 VPC 内,并使用私有 API 网关从 VPC 外部的其他 Lambda 调用它。VPC 中的 Lambda 将始终是温暖的,但由于对该 Lambda 的大量并发请求,这似乎是一个瓶颈。我知道可以创建多个安全组并请求更多IP,但是有必要不断监控情况,这是不可接受的。
  3. 开放 RDS 以便从互联网访问不是解决方案。
  4. Aurora 无服务器也需要 VPC...

有什么想法或建议吗?

谢谢!

在回答标题中的问题时,不,这是不可能的。

根据您的描述,您希望调用可以访问 VPC 内部和外部资源的 lambda。您的前两个选项几乎描述了您在这里的唯一选择。

关于您的选择 1.您可以将 lambda 放在 VPC 中,并有一个 NAT 以返回到互联网。我认为这就是您所说的"配置将更加困难"的意思。但至少您的 VPC 外部的任何内容都无法启动与 VPC 内部的连接。我不认为添加 NAT 网关(见 https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html("要困难得多",但我想这是主观的。

关于您的选项 2.您可以使用非 VPC Lambda,直接在 VPC 中调用 Lambda(反之则行不通(。因此,实际上不需要 API 网关(私有或其他(形式的附加组件。VPC 中的 Lambda 将自动扩展,但受您指定的子网中可用 IP 数量的限制。因此,需要进行一些容量规划。

注意- 每个选项都需要 VPC 中至少有一个 lambda。这些 lambda 的冷启动将导致 ENI(弹性网络接口(的设置略有延迟。

相关内容

  • 没有找到相关文章

最新更新