【问题标题】:What it means when AWS Lambda is configured with VPC?使用 VPC 配置 AWS Lambda 意味着什么?
【发布时间】:2024-04-19 11:40:02
【问题描述】:

即使浏览了 AWS documentation 和各种博客,我仍然不明白 AWS lambda 在配置 VPC 时会如何表现。

  1. 当 AWS lambda 配置了 VPC 时,这是否意味着所有 lambda 实例都会从该 VPC 的指定子网获取 IP 地址?
  2. ENI 如何在 AWS Lambda-VPC 配置中发挥作用? AWS 文档中的 ENI 容量公式 -

预计峰值并发执行次数 *(内存 GB / 3GB)

这是否意味着 AWS lambda 的运行实例曾经有 3 GB 内存?当超过时,会附加另一个 ENI?

  1. 大多数 AWS Lambda-VPC 配置相关的架构图都显示了 VPC 内部的 Lambda。这是否意味着 Lambda 将在 VPC 中运行?

在这里,我确定我遗漏了一些信息。任何指针都会有所帮助。

【问题讨论】:

    标签: aws-lambda serverless-framework amazon-vpc


    【解决方案1】:

    当您将 Lambda 函数配置为在 VPC 中运行时,它会使用一个 ENI,该 ENI 是通过您选择的其中一个子网中的 IP 地址和 IP 地址创建的。根据所需 ENI 的公式,似乎 ENI 可以在 lambda 之间共享。

    据我所知,在 VPC 中运行 lambda 的原因只有两个。

    1. 它需要访问您的 VPC 中没有公共端点的资源,例如Redis/Memcached 缓存集群 (Elasticache) 或没有公共 ip 的 RDS/Redshift 集群(最好不要在数据库上使用公共 ip)。当您在 VPC 中运行 lambda 时,它使用私有 ip 并且可以连接到您的 VPC 中的私有资源
    2. 如果您需要让您的 lambda 具有一致的 IP 地址(可能是一项仅允许将 IP 列入白名单以进行身份​​验证的服务)。这是通过使用 NAT 网关实现的。

    Lambda 函数在任何情况下都无法接收入站连接。

    将 lambda 放入 VPC 的缺点是

    1. 冷启动时间较慢,因为可能需要配置 ENI。
    2. 您需要一个 NAT 网关(或 VPC 端点)来访问外部资源
    3. 需要更密切地管理并发和可用 IP 地址。

    【讨论】: