提问者:小点点

如何将 VPC 内的 AWS Lambda 函数连接到公有资源(如迪纳摩DB)?


我正在尝试为ElasticCache启用VPC lambda函数以访问DynamicDB。我知道为此,我需要设置一个NAT网关。然而,我无法使它工作。我的专用子网在172.31..范围内。

以下是我遵循的步骤:

    < li >创建一个ip范围为10.0.0.0的公共子网。 < li >在上述相同的IP范围内创建一个公共VPC。 < li >在公共VPC创建公共互联网网关。 < li >创建一个公共路由表,它不是主路由表,并将公共子网附加到它。然后,将0.0.0.0/0的路由添加到上面创建的公共Internet网关。 < li >在公共子网中创建NAT网关。此NAT在10中获得一个弹性IP和一个私有IP...*范围。

现在我有 3 个路由表,两个用于我的公有子网 (10.0.0.0),一个用于我的私有子网 (172.31.0.0),它是我的私有 VPC 的一部分。

我的专用路由表有一个0.0.0.0/0到我的专用Internet网关的路由。

我想我需要更改此路由以指向我的公共NAT网关,但是我无法这样做,因为我的NAT的私有IP位于10.0.0.0范围内。在这一点上,我不知道如何继续下去。我试着在私有子网中创建一个NAT网关,并将路由转发给它,但它也不起作用。我错过了什么?


共2个答案

匿名用户

愚蠢,但您是否有可能混淆了默认VPC(172.31…)和您创建的VPC(10.0…)。因此,如果您看到默认VPC的路由表,实际上是默认子网的路由表。顺便提一下,它是公共的!

匿名用户

我犯的错误是创建了两个VPC,一个用于专用子网,另一个用于公用子网。除非启用对等,否则AWS VPC无法相互通信。

对于有网络背景人来说,私有子网和公共子网的概念起初是模糊的。它实际上意味着,逻辑子网将拥有可从互联网访问的资源(如web服务器)和本地资源,如数据库服务器(应受到保护,不受互联网影响)。