You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform创建EC2子网报错:CIDR '10.0.0.0/24'无效,请求排查

解决Terraform创建EC2子网时的CIDR无效报错

报错原因

InvalidSubnet.Range: The CIDR '10.0.0.0/24' is invalid 报错主要有两种常见诱因:

  • 该CIDR段已被us-east-1区域默认VPC的现有子网占用:AWS默认会给每个可用区自动创建一个子网,10.0.0.0/24大概率是其中一个默认子网的CIDR。
  • 该CIDR不在默认VPC的CIDR范围内:若默认VPC的CIDR被修改过,10.0.0.0/24可能超出了其覆盖范围。

修正方案

1. 检查默认VPC的现有子网CIDR

先确认当前默认VPC下已占用的CIDR段:

  • 使用AWS CLI查询:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=$(aws ec2 describe-vpcs --filters "Name=is-default,Values=true" --query 'Vpcs[0].VpcId' --output text)" --region us-east-1 --query 'Subnets[].CidrBlock'
  • 或登录AWS控制台,进入VPC服务,找到默认VPC后查看子网列表的CIDR列。

2. 更换未被占用的CIDR段

如果10.0.0.0/24已被占用,选择默认VPC CIDR范围内的未使用段(比如默认VPC是10.0.0.0/16的话,可改用10.0.1.0/24、10.0.2.0/24等),修改Terraform代码中子网的cidr_block参数即可。

3. 复用默认子网(无需新建)

既然目标是在默认VPC部署,直接复用现有默认子网更高效:

  • 在Terraform中获取默认VPC的子网ID:
data "aws_vpc" "default" {
  default = true
}

data "aws_subnet_ids" "default" {
  vpc_id = data.aws_vpc.default.id
}
  • 在Auto Scaling组中引用这些子网:
resource "aws_autoscaling_group" "example" {
  # 其他配置项...
  vpc_zone_identifier = data.aws_subnet_ids.default.ids
  min_size            = 2
  max_size            = 2
  # 其他配置项...
}

4. 确认默认VPC的CIDR范围

若不确定默认VPC的CIDR,执行以下命令查看:

aws ec2 describe-vpcs --filters "Name=is-default,Values=true" --region us-east-1 --query 'Vpcs[0].CidrBlock'

确保你要使用的子网CIDR完全包含在该范围内。

注意事项

  • 同VPC内的子网CIDR不能重叠。
  • 子网的掩码长度不能小于VPC的掩码长度(比如VPC是/16,子网掩码最小为/17,最大为/28)。

内容的提问来源于stack exchange,提问作者Ashley Myrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:30:25