我在 VPC-1 中有一个 lambda,试图访问托管在 VPC-2 中的 EC2 实例内的 SQL 数据库。我应该如何使用 VPC 端点在 Lambda(VPC-1)和 SQL DB(VPC-2)之间建立连接?我需要在基础设施和代码中进行哪些配置?
我不想进行 VPC 对等连接,因为我的组织不允许这样做。
答案1
你可以利用 AWSPrivateLink以及 VPC 端点。
- 在 VPC-2 中创建网络负载均衡器 (NLB):
在与托管 SQL 数据库的 EC2 实例相同的子网中部署 NLB。配置 NLB 以将流量转发到 EC2 实例。
- 在 VPC-2 中创建 AWS PrivateLink 终端节点服务(VPC 终端节点服务):
将此服务与 NLB 关联。此服务将在 VPC-2 中创建一个可从 VPC-1 访问的终端节点网络接口。
- 在 VPC-1 中创建接口 VPC 终端节点:
这是 Lambda 函数将通过其进行通信的终端节点。服务名称应为在 VPC-2 中创建的名称。确保附加到此终端节点的安全组允许出站流量流向 VPC-2 中的 NLB。
- 安全组配置:
修改 EC2 实例的安全组以允许来自 NLB 的传入 SQL 流量(SQL Server 的端口 1433)。调整 NLB 的安全组以允许来自 VPC-1 中的 VPC 端点的流量。
然后在 Lambda 函数的代码中,修改数据库连接字符串以指向 VPC-2 中的 VPC 终端节点服务的 DNS 名称