aws
resource_error
ai_generated
true
Insufficient IP addresses in subnet: The subnet does not have enough free IP addresses to support the requested number of ENIs.
ID: aws/ec2-insufficient-ip-addresses
82%Fix Rate
86%Confidence
1Evidence
2023-09-12First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| EC2 API 2016-11-15 | active | — | — | — |
| AWS VPC CNI 1.12.0 | active | — | — | — |
Root Cause
The VPC subnet has exhausted its available IP address space, preventing new ENIs or EC2 instances from launching.
generic中文
VPC 子网已耗尽可用 IP 地址空间,阻止了新的 ENI 或 EC2 实例启动。
Official Documentation
https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.htmlWorkarounds
-
80% success Release unused ENIs: list ENIs with `aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet-xxx` and delete unattached ones with `aws ec2 delete-network-interface --network-interface-id eni-xxx`.
Release unused ENIs: list ENIs with `aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet-xxx` and delete unattached ones with `aws ec2 delete-network-interface --network-interface-id eni-xxx`.
-
85% success Create additional subnets in the same VPC with a larger or additional CIDR block. Add a secondary CIDR to VPC: `aws ec2 associate-vpc-cidr-block --vpc-id vpc-xxx --cidr-block 10.0.2.0/24`. Then create new subnets from the new range.
Create additional subnets in the same VPC with a larger or additional CIDR block. Add a secondary CIDR to VPC: `aws ec2 associate-vpc-cidr-block --vpc-id vpc-xxx --cidr-block 10.0.2.0/24`. Then create new subnets from the new range.
-
70% success Reduce IP consumption: use smaller EC2 instance types that require fewer ENIs, or enable 'assign public IP' only when necessary to avoid extra private IP reservation.
Reduce IP consumption: use smaller EC2 instance types that require fewer ENIs, or enable 'assign public IP' only when necessary to avoid extra private IP reservation.
中文步骤
释放未使用的 ENI:使用 `aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet-xxx` 列出 ENI,并使用 `aws ec2 delete-network-interface --network-interface-id eni-xxx` 删除未附加的 ENI。
在同一个 VPC 中创建具有更大或额外 CIDR 块的新子网。向 VPC 添加辅助 CIDR:`aws ec2 associate-vpc-cidr-block --vpc-id vpc-xxx --cidr-block 10.0.2.0/24`。然后从新范围创建新子网。
减少 IP 消耗:使用需要较少 ENI 的较小 EC2 实例类型,或仅在必要时启用“分配公有 IP”,以避免额外的私有 IP 预留。
Dead Ends
Common approaches that don't work:
-
Delete the subnet and recreate it with a larger CIDR
70% fail
Deleting a subnet with running resources is impossible; you must first terminate all resources.
-
Manually assign Elastic IPs to free up private IPs
95% fail
Elastic IPs are public IPs and don't affect private IP address usage in subnets.
-
Increase subnet size via AWS Console (no such option)
100% fail
Subnet CIDR size is fixed at creation; it cannot be changed afterward.