Terraform创建EC2 mac1.metal实例提示tenancy不支持如何解决?
问题根因
该报错的核心原因是EC2 Mac系列实例(包含你使用的mac1.metal)有强制使用规则:不支持默认的共享租户(shared tenancy),必须绑定预先分配的专用主机(Dedicated Host)才能启动,和区域是否支持实例规格、AMI是否有效无直接关联。
排查步骤
- 确认eu-west-1区域下你的账号是否有≥3台状态为
available的mac1.metal规格专用主机,可通过AWS CLI命令查询:aws ec2 describe-hosts --filter "Name=instance-type,Values=mac1.metal" --region eu-west-1 - 检查你的AWS账号在eu-west-1区域的
Running Dedicated mac1 Hosts配额是否≥3,配额不足会导致专用主机分配失败 - 确认现有Terraform配置中是否未指定实例租户类型、也未关联专用主机ID
解决方法
步骤1:新增专用主机资源配置
在你的Terraform代码中加入mac1.metal专用主机的创建逻辑:
resource "aws_ec2_host" "mac_host" { count = 3 instance_type = "mac1.metal" availability_zone = "eu-west-1a" # 可根据需求更换为eu-west-1下的其他可用区 auto_placement = "on" }
步骤2:修改EC2实例配置
更新你的aws_instance资源,补充租户类型和专用主机绑定参数:
resource "aws_instance" "mac_server" { ami = "ami-044459d12a9c775f4" count = 3 instance_type = "mac1.metal" tenancy = "host" # 必须显式指定为host租户 host_id = aws_ec2_host.mac_host[count.index].id # 绑定对应索引的专用主机 }
步骤3:应用配置
执行terraform plan确认配置无错误后,执行terraform apply即可正常创建实例。
注意事项
- EC2 Mac专用主机分配后有最短24小时的使用周期,未到期无法释放,费用按24小时起算
- 新账号默认的Mac专用主机配额通常为0或1,配额不足需要先在AWS控制台服务配额页面提交提升申请
内容的提问来源于stack exchange,提问作者not-up
相关产品推荐
相关产品推荐

