首页 文章

将Lambda和RDS放在API网关后面的默认VPC中?

提问于
浏览
0

我正在尝试使用以下架构:

Route53 < - > API网关< - > Lambda < - > RDS和DynamoDB .

我对这里的一些网络方面很困惑!

从大多数文档来看,我所理解的是Lambda默认在默认VPC中启动,可以从那里访问互联网,但“VPC”内没有资源 . 第二个VPC(引号中)是指大多数讨论中的非默认VPC . 但不清楚的是,如果我将Lambda和RDS都置于默认VPC,lambda在公共子网中使用--vpc-config info和RDS在私有子网中,我的Lambda会有互联网连接吗?

即使一切都在默认子网中,我是否应该将我的lambda函数放入可通过Amazon VPC NAT网关访问Internet的私有子网?

我知道这是一个理论问题 - 文件让我感到困惑,没有明确提到不能做的事情!

1 回答

  • 2

    从大多数文档中,我理解的是Lambda默认在默认VPC中启动,可以从那里访问互联网,但“VPC”内没有资源 .

    那是不对的 . 默认情况下,Lambda根本不在VPC中启动 . 或者,如果它位于VPC中,则它是您无法看到的,因为它在您的AWS账户中不存在 .

    如果我将Lambda和RDS都放在默认的VPC,公共子网中的lambda和--vpc-config信息以及私有子网中的RDS,我的Lambda会有互联网连接吗?

    不,即使在公有子网中,您的Lambda功能也无法访问Internet . 这是因为永远不会为其分配公共IP地址 . 将Lambda函数放入VPC后,您必须拥有NAT网关,以便Lambda函数访问VPC之外的任何内容 .

    即使一切都在默认子网中,我是否应该将我的lambda函数放入可通过Amazon VPC NAT网关访问Internet的私有子网?

    是的,这是提供Lambda函数访问VPC和VPC外部资源的正确方法 .


    另请注意,DynamoDB(和AWS API)不会在您的VPC中运行 . 因此,如果您在VPC中放置需要访问DynamoDB的Lambda函数,或者通过AWS API访问的任何其他函数,则必须向VPC添加NAT网关 .


    请注意,“默认VPC”是您首次创建AWS账户时为您设置的VPC的术语 . 您可以在VPC服务控制台中的帐户中看到此VPC . 除了使用默认设置为您创建之外,您应该将其视为帐户中的另一个VPC . 如果未指定VPC,Lambda不会使用默认VPC,并且VPC网络外部的其他服务(如DynamoDB)不会使用它 .

相关问题