如何在 VPC 中连接 AWS Lambda 和 RDS
How to connect AWS Lambda and RDS in VPC
如何创建这个场景:
- A private subnet-1
- Lambda in subnet-1
- RDS in subnet-1(same subnet with Lambda)
- Both inside the same VPC.
以上是否可行,是否是一个好的架构?
我已经尝试实施它,唯一的问题是它超时了。但是,当 Lambda 不在 subnet-1 中时,它工作正常。
我的理解是因为 RDS 和 Lambda 都在同一个子网中,所以它们应该很容易通信。
将 Amazon RDS 和 AWS Lambda 函数连接到同一个私有子网是完全可以的。
一些注意事项:
- 如果 Lambda 函数还需要访问 Internet(例如调用 Amazon S3),那么 VPC 也需要 NAT 网关 public 子网。
- Lambda 函数应通过 DNS 名称 引用 RDS 实例。这应该解析为 VPC 本地的私有 IP 地址。
- 应为 Lambda 函数分配一个安全组(例如
Lambda-SG
)
- 与 RDS 实例 (
RDS-SG
) 关联的安全组应允许来自 Lambda-SG
的适当端口(例如 3306
用于 MySQL)的入站访问。
也就是说,RDS-SG
应该允许来自 Lambda-SG
的入站连接。
如何创建这个场景:
- A private subnet-1
- Lambda in subnet-1
- RDS in subnet-1(same subnet with Lambda)
- Both inside the same VPC.
以上是否可行,是否是一个好的架构?
我已经尝试实施它,唯一的问题是它超时了。但是,当 Lambda 不在 subnet-1 中时,它工作正常。
我的理解是因为 RDS 和 Lambda 都在同一个子网中,所以它们应该很容易通信。
将 Amazon RDS 和 AWS Lambda 函数连接到同一个私有子网是完全可以的。
一些注意事项:
- 如果 Lambda 函数还需要访问 Internet(例如调用 Amazon S3),那么 VPC 也需要 NAT 网关 public 子网。
- Lambda 函数应通过 DNS 名称 引用 RDS 实例。这应该解析为 VPC 本地的私有 IP 地址。
- 应为 Lambda 函数分配一个安全组(例如
Lambda-SG
) - 与 RDS 实例 (
RDS-SG
) 关联的安全组应允许来自Lambda-SG
的适当端口(例如3306
用于 MySQL)的入站访问。
也就是说,RDS-SG
应该允许来自 Lambda-SG
的入站连接。