我正在浏览AWS架构良好的实验室指南,并在自动部署VPC(https:/www.wellarchitectedlabs.comSecurity200_Automated_Deployment_of_VPCLab_Guide.html).
说明书是相当直接的,我上传了提供的模板(尝试了说明书中直接链接的模板和他们的git repo中的模板,我在这里找到了 https:/github.comawslabsaws-well-architected-labsblobmasterSecurity200_Automated_Deployment_of_VPCCodevpc-alb-app-db.yaml。). 但是当它运行时,我一直收到失败信息。这些错误说无法在us-west-1c中旋转起来的东西。
而这是针对VPC的
我是用一个有管理权限的IAM用户登录的 我试着清理了yaml,因为我发现有一些重复的字段,但没有任何效果。是我的账户因为超载或其他原因无法在us-west-1c中创建任何东西,还是其他问题?
先谢谢大家的帮助!
答案就在图片中。CloudFormation无法创建 ALB1Subnet3
因为可用区 us-west-1c
不存在。当新堆栈中的任何东西失败时,整个堆栈会被回滚。
如上所述,当新堆栈中的任何东西失败时,整个堆栈都会回滚。此处您可以通过 CLI 获得一个区域的可用区列表。
aws ec2 describe-availability-zones --region us-west-1
你会发现这个区域只有两个可用区。
{
"AvailabilityZones": [
{
"State": "available",
"OptInStatus": "opt-in-not-required",
"Messages": [],
"RegionName": "us-west-1",
"ZoneName": "us-west-1b",
"ZoneId": "usw1-az3",
"GroupName": "us-west-1",
"NetworkBorderGroup": "us-west-1"
},
{
"State": "available",
"OptInStatus": "opt-in-not-required",
"Messages": [],
"RegionName": "us-west-1",
"ZoneName": "us-west-1c",
"ZoneId": "usw1-az1",
"GroupName": "us-west-1",
"NetworkBorderGroup": "us-west-1"
}
]
}
更新
有人指出 us-west-1c
出现在我的可用区列表中。出现这种情况是因为 我的 可用性区域与OP的可用性区域不同。引用 文件:
为了确保资源在一个区域的各个可用区之间进行分配,我们独立地将可用区映射到每个 AWS 账户的名称上。例如,您的 AWS 账户的可用性区 us-east-1a 可能与另一个 AWS 账户的 us-east-1a 位置不同。
因此,对于上位机来说,错误信息是正确的:不存在 us-west-1c
. 我的解释是... us-west-1
只有两个区域 -- 也是正确的。
然而,为了把这个问题进行到底(并阻止更多的评论),如果你看一下AWS全球基础设施地图(大约在页面的一半处)。此处),然后将鼠标放在 us-west-1
区域,你会看到它有三个AZ。然而,任何给定的账户可能无法访问一个地区的所有AZ。