【问题标题】:Why can't a subnet span availability zones in AWS?为什么子网不能跨越 AWS 中的可用区?
【发布时间】:2020-09-27 01:34:57
【问题描述】:

在 AWS 中,一个 VPC 子网只能驻留在一个可用区中。我很好奇这个限制背后的原因是什么。

我不知道 AWS 如何在后台实施 VPC。但是通常VPC的实现是基于overlay网络的,比如VXLAN。以 VXLAN 为例,从技术上讲,一个虚拟子网中的两个端点可以通信,只要托管端点的两个物理主机可以通信。这两台主机是否在可用区无关紧要。

所以我想知道限制的原因是什么。是因为性能还是其他一些网络限制?

【问题讨论】:

    标签: amazon-web-services networking amazon-ec2 amazon-vpc subnet


    【解决方案1】:

    这是设计使然,子网关联指示您的资源位于哪个可用区。

    为了计划提高弹性和高可用性,用户必须确保他们的资源之间存在隔离。如果一个子网可以跨越多个可用区,那么您不能保证它们的基础设施都会因断电而全部瘫痪。

    另一方面,有些人希望确保其 VPC 环境中资源之间的延迟最小。通过将它们全部部署到同一个子网,它们可以保证流量将保持在同一个逻辑数据中心内,从而为它们提供服务之间的最佳延迟。

    【讨论】:

    • 谢谢。结合 Jarmod 的另一个答案,我想我可以得出结论,选择(AZ-local 子集)更多的是关于简化部署、容错模型和性能模型。不是因为任何硬性技术限制。
    【解决方案2】:

    我怀疑原因是 AWS 出于Fault Isolation 的原因决定以这种方式分割事物。

    我不知道为什么给定子网理论上不能跨越整个区域甚至多个区域的任何技术原因,除了 AWS 决定将其设为 AZ 级别。例如,Google Cloud 子网是区域性的,而不是区域性的。

    【讨论】:

    • 谢谢。答案对我来说很有意义。 GCP 子网示例证明这不是由于技术原因。这可能更多是为了简化模型和体验。
    • Azure 也是区域性的,对吗?它们的子网跨越所有可用区。然后在资源本身中,您需要指定要将其放入哪个区域
    • @user2763557 是的,Azure 子网跨越一个区域中的所有可用区。 AWS 正在执行比 GCP 和 Azure 更严格的故障隔离(更多 here)。
    猜你喜欢
    • 2022-10-22
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2018-06-19
    • 2020-12-16
    • 2021-11-07
    相关资源
    最近更新 更多