选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

当没有足够的 IP 地址来启动实例或扩展时 - AWS App Runner

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

当没有足够的 IP 地址来启动实例或扩展时

注意

对于公共服务,App Runner 不会在您的中创建弹性网络接口 (ENI)VPCs,因此您的公共服务不受此更改的影响。

本指南可帮助您解决在启用传出流量VPC访问权限的 App Runner 服务上可能遇到的 IP 耗尽错误。

App Runner 将在与您的VPC连接器关联的子网中启动实例。App Runner 在启动您的实例的子网中为ENI每个实例创建 1 个。每个子网都ENI使用一个私有 IP。子网的IPs可用数量是固定的,具体取决于与该子网关联的CIDR块。如果 App Runner 找不到足IPs以创建的子网ENI,它将无法为您的 App Runner 服务启动新实例。这可能会导致扩展服务时出现问题。在这种情况下,您将看到 App Runner 事件日志,表明 App Runner 无法找到可用IPs子网。您可以按照以下说明更新您的服务,以解决此类错误。

如何更新您的服务以提供更多可用服务 IPs

子网中可用的 IP 地址数量取决于与该子网关联的CIDR区块。 CIDR与子网关联的块在创建后无法更新。App Runner VPC 连接器一经创建,也无法更新。要为启用传出流量VPC访问权限的 App Runner 服务提供更多信息IPs,请执行以下操作:

  1. 使用更大的CIDR区块创建新的子网。

  2. 使用新子网创建新的VPC连接器。

  3. 更新您的 App Runner 服务以使用新的VPC连接器。

计算您的服务IPs需求

在尝试创建包含较大CIDR区块的新子网之前,请确定各个 App Runner 服务所需的子网数量。IPs我们建议按如下方式计算连接器中IPs需要的数量:

  1. 对于每个启用了出站流量VPC访问权限的服务,请记下 auto scaling 配置中的最大大小(最大实例)

  2. 对所有服务的值进行求和。

  3. 将此金额翻一番,以计入蓝绿色部署期间启动的新实例。

示例

假设两个服务 A 和 B 使用相同的VPC连接器。

  1. 服务 A 的最大大小配置为 25。

  2. 服务 B 的最大大小配置为 15。

必填 IPs = 2 × (25 + 15) = 80

确保您的子网IPs总共至少有 80 个可用。

创建新子网

  1. 确定IPv4使用此公式所需的CIDR区块大小(请注意,5 IPs 由AWS:子网大小调整

    Number of available IP addresses = 2^(32 - prefix length) - 5
    Example : For 192.168.1.0/24: Prefix length is 24 Number of available IP addresses = 2^(32 - 24) - 5 = 2^8-5 = 251 IP addresses For 10.0.0.0/16: Prefix length is 16 Number of available IP addresses = 2^(32 - 16) - 5 = 2^16-5 = 65,531 IP addresses Quick reference: /24 = 251 IP addresses /16 = 65,531 IP addresses
  2. 使用创建新子网AWSEC2CLI。

    aws ec2 create-subnet --vpc-id <my-vpc-id> --cidr-block <cidr-block>

    示例(创建一个包含 4,096 IPs 的子网):

    aws ec2 create-subnet --vpc-id my-vpc-id --cidr-block 10.0.0.0/20
  3. 创建新的VPC连接器。请参阅:管理VPC访问权限

  4. 将您的服务更新为VPC启用传出流量以使用此新 VPC Connector.App Runner 将在您的服务更新后开始使用新的子网。

注意

VPCs还受可按CIDR块分配给子网的可用IPs数量的限制。如果您无法创建包含较大CIDR块的子网,则可能需要在创建新子网之前VPC使用辅助CIDR块进行更新。

将辅助CIDR方块附加到你的 VPC

将辅助CIDR方块与之关联VPC。

aws ec2 associate-vpc-cidr-block --vpc-id <my-vpc-id> --cidr-block <cidr-block>

示例 :

aws ec2 associate-vpc-cidr-block --vpc-id my-vpc-id --cidr-block 10.1.0.0/16

验证

更新服务后。您可以使用以下方法对您的修复进行验证

  1. 监控事件日志:监控您的 App Runner 服务事件日志,以验证没有出现新 IP ENI 或不可用错误

  2. 检查服务扩展:

    1. 通过更改自动缩放配置中的最小实例数来全面扩展服务

    2. 确认所有新实例均已启动,且没有任何与 IP 相关的错误

    3. 监控多个扩展事件,确保性能稳定

  3. 控制台横幅:如果您使用的是AWS管理控制台,请确认 App Runner 不再显示有关不足的横幅警告IPs。

  4. VPC和子网 IP 利用率:

    1. 使用VPC控制面板或CLI命令检查新子网中的 IP 地址利用率。

    2. 确认在扩大服务规模IPs后,仍有可观的可用余额

常见陷阱

在解决 App Runner 服务中的 IP 耗尽问题时,请注意以下潜在问题:

  1. IP 地址规划不足:低估 future 的 IP 需求可能会导致反复出现耗尽问题。考虑潜在的服务增长和高峰使用情况,进行全面的容量规划。

  2. 忽略VPC整个范围的 IP 使用情况:请记住,同一范围内的其他AWS服务VPC也会消耗 IP 地址。在规划您的VPC和子网配置时,请考虑所有服务的 IP 要求。

  3. 忽略更新服务:创建新子网或VPC连接器后,请确保更新 App Runner 服务以使用新配置。不这样做将导致继续使用已耗尽的 IP 范围。

  4. 误解CIDR方块重叠:在 a 中添加辅助CIDR方块时VPC,请确保它们不会与现有方块重叠。重叠的CIDR区块可能会导致路由冲突和 IP 地址模糊。

  5. 超出VPC限制:请注意,a 最多VPC可以有 5 个CIDR方块(1 个主方块和 4 个辅助方块)。在这些限制条件下规划 IP 地址空间的扩展。

  6. 忽略子网可用区分布:创建新子网时,请确保子网分布在多个可用区中,以实现高可用性和容错性。

  7. 忽略ENI限制:请记住,可以附加到实例的ENIs数量有限制。确认您的AWS账户限制与您计划的网络接口使用量一致。

通过了解这些陷阱,您可以更有效地管理VPC资源并避免 App Runner 服务中出现的 IP 耗尽问题。

其他资源

术语表

  1. ENI: 弹性网络接口,中的虚拟网络接口AWS。

  2. CIDR: 无类域间路由,一种分配 IP 地址的方法。

  3. VPC连接器:一种资源,可让 App Runner 连接到你的VPC。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。