我是否需要定义巨大的 VPC 子网才能并行 运行 许多 Lambda 函数?
Do I need to define huge VPC subnets in order to run many Lambda functions in parallel?
我读到每个 AWS Lambda 调用都有自己的私有 IP(当 运行在 VPC 中时)。
这是否意味着如果我想要并行运行 50,000 个 Lambda 运行,我需要它 运行 在具有 50,000 个可用私有 IP 的 VPC 子网中?
简答:是。
如果您想在 VPC 中 运行 50000 个并发 lambda,您将需要超过 50000 个 IP 地址,因为某些 IP 地址可能不会在 lambda 执行结束后立即释放。
每个帐户并发 运行ning 1000 个 lambda 有一个软限制 运行ning。这是一个软限制,因此您可以随时提交工单并要求 AWS 提高它,但我怀疑他们是否会将其提高到 50000。
更新
这不再是事实。请参考@luk2302的回答
简短(更新)答案:否。您不需要大型 VPC。
接受的答案有一段时间是正确的。然而早在 2019 年,AWS 就改变了 Lambda 在 VPC 中的工作方式:https://aws.amazon.com/blogs/compute/announcing-improved-vpc-networking-for-aws-lambda-functions/
从那时起,每个不同的 'subnet + security group' 组合现在只需要 一个 IP/一个 ENI 在您的 VPC 中,并且 ENI 是跨所有不同的 lambda 函数的所有执行环境/lambda 调用共享。因此,即使您的 VPC 中有 100 个 lambda 函数和 10k 个并发调用,只要 lambda 的配置类似,您只需要一个 IP。
我读到每个 AWS Lambda 调用都有自己的私有 IP(当 运行在 VPC 中时)。
这是否意味着如果我想要并行运行 50,000 个 Lambda 运行,我需要它 运行 在具有 50,000 个可用私有 IP 的 VPC 子网中?
简答:是。
如果您想在 VPC 中 运行 50000 个并发 lambda,您将需要超过 50000 个 IP 地址,因为某些 IP 地址可能不会在 lambda 执行结束后立即释放。
每个帐户并发 运行ning 1000 个 lambda 有一个软限制 运行ning。这是一个软限制,因此您可以随时提交工单并要求 AWS 提高它,但我怀疑他们是否会将其提高到 50000。
更新
这不再是事实。请参考@luk2302的回答
简短(更新)答案:否。您不需要大型 VPC。
接受的答案有一段时间是正确的。然而早在 2019 年,AWS 就改变了 Lambda 在 VPC 中的工作方式:https://aws.amazon.com/blogs/compute/announcing-improved-vpc-networking-for-aws-lambda-functions/
从那时起,每个不同的 'subnet + security group' 组合现在只需要 一个 IP/一个 ENI 在您的 VPC 中,并且 ENI 是跨所有不同的 lambda 函数的所有执行环境/lambda 调用共享。因此,即使您的 VPC 中有 100 个 lambda 函数和 10k 个并发调用,只要 lambda 的配置类似,您只需要一个 IP。