AWS 全球网络概述

概述

我们知道云计算最重要的三个组件是:计算、存储、网络。计算和存储相对来说比较简单,情形单一,主要是依靠底层硬件支持。而云中最复杂的部分莫过于网络的多样性,云计算做的好不好,主要看底层网络做的是否够厉害,比如网络的安全性,弹性等。

AWS 是一家全球公有云提供商,因此,它必须拥有一个全球基础设施网络,以运行和管理其支持全球客户的众多不断增长的云服务。构成 AWS Global Infrastructure 的组件有:

  • Availability Zones (AZs)
  • Regions
  • Edge PoPs
  • Regional Edge Caches

【AWS征文】揭秘 AWS 底层网络是如何构成的

如果你把 AWS 网络看成是一棵树的话,那树根的部分可以比作是 Region,树干和树茎的部门比作为骨干网,树叶的部门,可以想象成为 Edge PoP 节点。

【AWS征文】揭秘 AWS 底层网络是如何构成的

理念

AWS 的网络规模和国际上的一些电信运营商的规模是差不多的,在打造这样的一张网络的时候,AWS 网络的设计理念主要包含以下几点:

  • 安全性:AWS 非常注重数据的安全,在整个网络中增加了非常多的安全方面服务来保证网络的安全。
  • 可用性:需要保证当某条线路出现故障的时候,不会影响整个网络的可用性。
  • 故障强隔离:当网络发生故障的时候,尽量把故障限制在某个区域内。
  • 蜂窝架构:一个个网络模块构成的蜂窝式网络架构。
  • 规模:支撑上百万客户的应用网络需求。
  • 性能:对网络的吞吐量、延迟要求较高。

网络通信案例解析

【AWS征文】揭秘 AWS 底层网络是如何构成的

如上图所示,一个猫咪要去 AWS 的服务器中获取一张图片,流量首先通过 Internet 进入到 AWS Region,Region 包括 AZ,AZ 中有 VPC,在 VPC 中有 Server,Server 上面有图片,这是一种比较简单的抽象流程,但是如果把网络剥开一层再去看,其实会变得更加复杂,如下图:

【AWS征文】揭秘 AWS 底层网络是如何构成的

可以看到包含了更多的 AWS 网络基础设施,流量首先进入 Edge PoP,这个也是 CDN 的站点,流量进来之后到骨干网络 Backbone,然后再进入 AWS Region,经过 Transit Center 进入 AZ。

AWS Region

可用区

我们都知道 AWS Region 是由 Availability Zone 组成,大部分的 Region 至少三个 AZ。可用区(Availability Zones)实质上是 AWS 的物理数据中心。我们在 VPC 中创建的计算资源、存储资源、网络资源和数据库资源都是托管在AWS 的物理数据中心。

每个 AZ 至少会有一个位于同一区域内的其他 AZ,通常是一个城市,他们之间由高弹性和极低延迟的专用光纤连接相连。但是,每个 AZ 将使用单独的电源和网络连接,这使得 AZ 之间相互隔离,以便在单个 AZ 发生故障时最大限度地减少对其他 AZ 的影响。

很多AWS的服务利用 AZ 之间低延迟连接来复制数据以达到高可用性和弹性。下面展示了一个 Region 的网络架构,以及 AZ 之间是如何互联互通的。

每个 Region 有两个 Transit Center,每个 Transit Center 和下面的每个 Datacenter 都有网络互联,同样 Datacenter 之间也有网络互联,这样可以确保 AWS 网络的可用性,部分网络基础设施故障也不会影响整个 Region 的可用性。

【AWS征文】揭秘 AWS 底层网络是如何构成的

数据中心构造

前面我们说到 AWS 采用蜂窝式的网络架构,下面是一张架构图,在 Region 里面、Global backbone 网络里面以及在 Edge Pop 里面都会使用这样一套架构。

【AWS征文】揭秘 AWS 底层网络是如何构成的

在图中间都是一个个小的模块,每个模块都有不同的一些功能,如 Access Cell 主要做主机的网络接入,Core Edge Cell 联通着 Transit Centers,进而把网络流量送进 AWS backbone。

每个 Cell 都肩负着不同的功能,Cell 和 Cell 之间都进行互联,在每一层,都可以通过平行扩展 Cell 来扩展整个网络的承载量,达到一个可伸展的网络。

每个 Cell 是一个单核路由器,这样有什么好处呢,端口比较少,可以控制故障域,转发架构更简单。

AWS Global Backbone

来到 AWS 骨干网,有众多的 AWS 服务穿越其中,如 AWS Direct Connect、互联网连接、区域到区域传播和 Amazon CloudFront 到 AWS 服务的连接。下图是目前 AWS 的全球骨干网,其中每一条白线都是一条 AWS 的海底光缆,整个网络的规模比较大,承载所有 Region 的网络负载。

【AWS征文】揭秘 AWS 底层网络是如何构成的

为什么建造骨干网络

那么是什么原因让 AWS 花费巨资建造自己的骨干网络,而不直接租用运营商的网络呢?AWS 从以下几点出发考虑:

安全性

只有自己造的网络,才可以保证网络的安全,租用别人的网络,即便是进行加密,也无法达到 AWS 要求的安全性要求。

可靠性

可以控制用户通信经过的具体路径,随时对网络进行监控调度,出现网络故障,中心控制台会及时把用户的流量调度到最优的网络路径上面,保证网络的实时可靠。

可用性

可以自主控制扩展和冗余,通信在 Amazon 自主控制的基础架构上运行。

与用户联系更密切

避免互联网 “热点” 或者次油外部连接。在用户连接 AWS 的服务的时候,可能各种原因遇到网络阻塞,特定的时候可以对网络流量导流。

全球骨干网构造

和 Region 相似,全球骨干网也是采用了蜂窝式的一个网络架构,中间是大量的光纤连接,外层是负责一些网络功能的 Cell。

Transit Center Cell 用来连接 Region 内部的数据中心,Edge Pop Cell 用来连接 PoP 节点,Backbone Cell 用来连接远端的 PoP 节点进而连接到远端 Region 的数据中心。

【AWS征文】揭秘 AWS 底层网络是如何构成的

AWS Edge PoP

AWS Edge PoP 是部署在全球主要城市和人口稠密地区的AWS站点。 它们远远超过可用区域的数量。

AWS Edge PoP 对外就是连接的一张张 ISP 的网络。运营商接入 AWS 的骨干网络又两个地方,一个是刚说的 Edge PoPs,还有就是 AWS 区域的网络中转中心(Transit Centers)

Edge PoP 很大的一个作用就是对外扩充 AWS 的网络,同一个 Edge PoP 可以和运营商进行多次互联,获得至外网网络最优的互联。

虽然 Edge PoP 不用于部署您的主要基础架构,如 EC2 实例,EBS 存储,VPC 或 RDS 资源,但有些 AWS 服务(如 AWS CloudFront 和 AWS Lambda@Edge)会使用它们来缓存数据,通过将 Edge PoP 用作 CDN 来减少最终用户访问的延迟。

边缘站点构造

同样的,边缘站点也是采用了蜂窝式的架构,Backbone Cell 连接 AWS 骨干网络,External Internet Cell 连接外部的 Internet 网络,同时还包括一些 AWS Edge 服务网的一些 Cell,如连接 CloudFront、Route 53、Direct Connect 和 AWS Shield,这些服务都存在于 AWS Edge PoPs 中。

【AWS征文】揭秘 AWS 底层网络是如何构成的

总结

可以看到 AWS 在网络的各部分都采用了蜂窝式的架构,让这个网络的扩展性大大提升。并且通过采用主动式数据信道监控,从 AWS 服务日志采集互联网性能数据,以及互联网流量工程管理来达到互联网边缘的监控与自我修复。