如何解决AWS VPC弹性IP地址出现“已达到最大地址数”的问题?

35

我正在使用CDK/CloudFormation,最近尝试创建新的堆栈时遇到了以下错误:

The maximum number of addresses has been reached.

在AWS管理控制台中查看,VPC IP地址的限制为40个,列表中恰好有40个 - 但其中一些既没有关联实例ID,也没有关联ID:

弹性IP地址

我的理解是那些没有设置这两者的IP地址没有用于任何事情,因此希望将它们变为可用状态以避免在栈创建过程中出现错误。但我不确定如何做到这一点 - 是否需要使用“释放弹性IP地址”来解决问题,还是需要保留在帐户中并以其他方式标记为可重复使用?

3个回答

46

1
谢谢您提供的链接,这在我迁移时非常有用,因为我想保留IP地址,但IP地址已经用完了。 - rhytha mk
1
请注意,此链接中包含了AWS区域信息,请确保您不会为错误的区域请求配额增加。 - undefined
@Michael12345 真的很正确。 - undefined

30

已达到最大地址数。

当您将公共IP地址与实例关联时,会收到此错误。正如您所知,公共IPv4 IP地址的数量是有限的。这意味着AWS默认情况下允许您在每个区域分配最多5个弹性IP。这是一个软限制,您可以请求增加。有一些方法可以避免在所有内容上附加公共IP地址,因此不推荐请求增加。

但是不确定如何操作-“释放弹性IP地址”是否管用,或者它们需要保留在帐户中,但以某种其他方式标记为可重用?

首先,您必须从实例中取消关联IP地址。之后,您将能够按下释放弹性IP地址。是的,那会起作用。


你对“每个区域5个公共IPv4地址”的限制的说法有点误导人。实际上是每个区域可以拥有5个弹性IP。你可以通过在VPC设置中启用“分配公共IP”来拥有更多的公共IP,但这些IP并不是专门分配给你的静态IP,当你的EC2实例关闭时,你将失去它们,而弹性IP则一旦分配给你的账户就是专属于你的。 - Mark B
@MarkB 我完全同意你关于拥有超过5个公共IP地址的说法。您可以在提供的屏幕截图中看到,这些实例已分配了EIP。这就是我给出这个答案的原因。 - Ervin Szilagyi
我只是想说您应该稍微改一下回答。不要说“每个区域5个公共IPv4地址”,而应该说“每个区域5个弹性IP”。 - Mark B
注意,我重新表达了它。 - Ervin Szilagyi
感谢确认。现在已释放未分配的IP地址,堆栈部署不再出现此错误。 - Steve Chambers
有一些方法可以避免将公共IP地址附加到所有内容上,因此不建议要求增加。您能指出减少弹性IP需求的方向吗? - Joshua D. Boyd

3

默认情况下,AWS每个区域限制5个弹性IP。因此,要增加该配额,您必须提出请求。

以下是如何执行该操作的步骤(请参照他们文档中的https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-limit):

打开服务配额控制台https://console.aws.amazon.com/servicequotas/
在仪表板上,选择Amazon Elastic Compute Cloud(Amazon EC2)。如果Amazon Elastic Compute Cloud(Amazon EC2)未列在仪表板上,请选择AWS服务,在搜索字段中输入EC2,然后选择Amazon Elastic Compute Cloud(Amazon EC2)。
在Amazon EC2服务配额页面上,输入IP以进行搜索。限制是EC2-VPC弹性IP。如果您可以访问EC2-Classic,则还有一个附加限制,即EC2-Classic弹性IP。有关更多信息,请选择限制。
如果您认为您的架构需要额外的弹性IP地址,您可以直接从服务配额控制台请求配额增加。
在单击提交之前,请仔细检查您的目标区域。
希望这能帮到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接