如何将VPC内的AWS Lambda函数连接到DynamoDB等公共资源?

时间:2016-08-18 23:43:55

标签: amazon-web-services lambda routing amazon-dynamodb amazon-vpc

我正在尝试为ElasticCache启用我的VPC lambda函数来访问DynamoDB。我知道,我需要设置一个NAT网关。但是,我无法使其发挥作用。我的私有子网位于172.31。范围。

以下是我要遵循的步骤:

  
      
  1. 创建一个ip范围在10.0.0.0的公有子网。
  2.   
  3. 在上述相同的IP范围内创建公共VPC。
  4.   
  5. 在公共VPC中创建公共Internet网关。
  6.   
  7. 创建一个公共路由表,它不是主路由表,并将公有子网附加到该表。然后,将0.0.0.0/0的路由添加到上面创建的公共Internet网关。
  8.   
  9. 在公有子网中创建NAT网关。此NAT在10中获得弹性IP和私有IP。。* range。
  10.   

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

我的私人路由表有0.0.0.0/0的路由到我的私人互联网网关。

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

2 个答案:

答案 0 :(得分:0)

愚蠢,但你有没有机会混合默认的VPC(172.31 ...)和你创建的VPC(10.0 ...)。因此,如果您看到默认VPC的路由表,它实际上是默认子网,顺便说一下是公共的!

答案 1 :(得分:0)

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

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