VPC 中 lambda 的 IP 地址耗尽

VPC 中 lambda 的 IP 地址耗尽

我目前是一个小组的成员,该小组正在处理部署 300 多个运行 Node.js 的 AWS Lambda 函数来代替更传统的 REST API 所带来的影响。我最近实施了一个应用程序,该应用程序在私有子网上的 VPC 中的 EC2 实例上运行。因此,将与此应用程序进行大量通信的 Lambda 本身也被放置在同一 VPC 中的私有子网中。EC2 实例在 6 个私有 /24 子网中运行(我们区域中的每个可用区一个)。lambda 有 6 个 /20 私有子网,它们配置为在其中运行。据我了解,每次调用 lambda 都会在其中一个子网中分配一个 IP 地址,这会在用完之前为我提供大约 24,564 个 IP 地址。

我的问题是:

1) Lambda 是否仅在实际运行期间占用 IP 地址,然后释放 IP 地址?更简洁地说,我们是否会很快用完 IP 地址,因为我们预计调用量很快就会上升?我知道我可以将 VPC 中的更多地址空间分配给 lambda,但这会是我们不断追逐的问题吗?

2)如何在 AWS 控制台或其他地方查看 lambdas 占用了多少个 IP 地址?

注意:我是一名初级 DevOps 工程师,所以如果有任何不清楚的地方,请原谅我,并随时纠正我

答案1

这个答案现在已经过时了。参见这篇博文或其他 AWS 文档以获取最新信息。


这一页表示在 VPC 中使用 Lambda 时需要多少个 ENI - 这是每个子网

如果您的 Lambda 函数访问 VPC,则必须确保您的 VPC 具有足够的 ENI 容量来支持 Lambda 函数的扩展要求。您可以使用以下公式大致确定 ENI 要求。

预计峰值并发执行数*(内存以 GB/3GB 为单位)

假设您有 10 个并发执行的 lambda,分配了 1GB,即 10 x 1 / 3 = 3.33 或 4 个 ENI / 私有 IP每个子网。如果您有 100 个并发执行,分配了 2GB,则有 80 个 ENI/私有 IP每个子网。我认为没有任何关于 ENI 创建和删除频率的描述,并且实施细节可能会随着时间而改变。

您可以在控制台或弹性网络接口

Lambda 必须具有创建和删除 ENI 的权限,如下所示这个问题

相关内容