AWS 的 Availability Zone ID 为何因账户而异 - AZ 映射的设计意图

解析 us-east-1a 在不同账户指向不同物理 AZ 的机制、AZ ID(use1-az1)引入的背景、容量均匀分散的设计意图,以及跨账户 AZ 指定的注意事项。

us-east-1a 并非所有人的同一位置

AWS 的 Availability Zone 名称(us-east-1a、us-east-1b 等)在不同账户映射到不同的物理 AZ。账户 A 的 us-east-1a 和账户 B 的 us-east-1a 可能指向不同的物理数据中心群。这一事实即使是长期使用 AWS 的人也很多不知道。AWS 采用这种设计的原因是为了防止容量集中。如果所有账户的 us-east-1a 都指向同一物理 AZ,大多数用户会将资源部署在字母顺序最前的 us-east-1a,导致特定物理 AZ 过载。通过随机化映射,实现了物理 AZ 间的负载均衡。

AZ ID 的引入 - 唯一标识物理 AZ

由于 AZ 名称的映射因账户而异,需要一种跨账户指定「同一物理 AZ」的方法。例如,通过 RAM(Resource Access Manager)与其他账户共享子网时,可能需要共享方和被共享方在同一物理 AZ 中放置资源。为解决这一课题而引入的是 AZ ID。AZ ID 是 use1-az1、use1-az2 这样的标识符,无论账户如何都指向同一物理 AZ。在 EC2 控制台的「AZ ID」列或 describe-availability-zones API 的响应中可以确认。跨账户协调时,应使用 AZ ID 而非 AZ 名称来指定物理位置。

映射的实现 - 如何决定

AZ 名称与物理 AZ 的映射在账户创建时随机分配。AWS 未公开映射算法,但从实测中发现了一些特性。第一,映射并非完全随机,可能进行了考虑物理 AZ 间负载均衡的加权。新增物理 AZ 时,可能会调整使更多账户映射到该 AZ。第二,映射一旦确定就不会改变。账户创建后,us-east-1a 指向的物理 AZ 不会变更。第三,同一组织(Organizations)内的账户映射也各不相同。即使是同一组织的成员账户,映射也是独立随机分配的。

AZ 映射成为问题的场景

AZ 映射差异实际成为问题的场景存在。最常见的是跨账户数据传输成本。从账户 A 的 us-east-1a(物理:use1-az1)向账户 B 的 us-east-1a(物理:use1-az2)传输数据时,虽然 AZ 名称相同但物理 AZ 不同,会产生 AZ 间数据传输费用(0.01 USD/GB)(截至 2026 年 8 月)。使用相同 AZ ID 的资源间传输则不产生 AZ 间费用。此外,在通过 RAM 共享子网的多账户环境中,如果不注意 AZ ID 可能导致资源分散在非预期的物理 AZ 中,影响延迟和可用性设计。

Local Zones 与 Wavelength Zones - AZ 的扩展概念

作为 AZ 概念的扩展,存在 Local ZonesWavelength Zones。Local Zones 是部署在 AWS 区域外的小规模基础设施,在特定城市附近提供计算资源。东京区域没有 Local Zone,但大阪存在 Local Zone。Local Zones 适合需要靠近终端用户的低延迟应用(游戏、视频流、实时渲染等)。Wavelength Zones 部署在电信运营商的 5G 网络边缘,提供超低延迟的计算环境。这些扩展概念也有各自的 Zone ID,可以跨账户唯一标识物理位置。理解 AZ 映射的设计意图后,这些扩展概念的定位也变得清晰。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。