AWS 与 Azure:网络功能对比
根据云安全联盟的定义,云服务提供商(CSP)是指提供云计算某些组件的公司;通常,当你在互联网上搜索时,云服务被定义为向其他企业或个人提供基础设施即服务(IaaS)、软件即服务(SaaS)或平台即服务(PaaS)。
在过去的10年里,公有云的采用率一直在快速增长,并且似乎没有任何放缓的迹象。根据Gartner的数据,2021年最终用户在公有云服务上的支出达到3960亿美元,并将在2022年增长21.7%,达到4820亿美元。
亚马逊网络服务(AWS)和微软Azure是最大的两个竞争者,前者在公有云市场中占有最大份额。总的来说,这两家公司有不同的方法和思维方式,这种差异在其公有云服务中也有微妙的体现。
这是我将尝试比较和对比部分云服务提供商功能特性的系列文章中的第一篇。本文的重点是网络功能。
免责声明:此比较旨在作为学习练习,并不认可或否定任何特定产品或云服务提供商。
核心网络组件对比
AWS
- 虚拟私有云 (VPC): AWS 的核心网络隔离单元。用户在AWS区域中定义一个VPC,并指定其IP地址范围(CIDR块)。VPC可以跨多个可用区(AZ)。
- 子网 (Subnet): VPC内的IP地址范围划分,必须位于单个可用区。分为公有子网(可通过互联网网关访问互联网)和私有子网。
- 互联网网关 (Internet Gateway): 一个横向扩展、高可用的VPC组件,允许VPC内的实例与互联网进行通信。
- 虚拟私有网关 (Virtual Private Gateway): 用于在VPC和远程网络(如企业数据中心)之间建立站点到站点VPN连接的端点。
- 对等连接 (VPC Peering): 允许在两个VPC之间使用私有IP地址进行路由流量连接。连接是非传递性的。
Azure
- 虚拟网络 (Virtual Network, VNet): Azure 的核心网络隔离单元。用户在一个Azure区域中定义一个VNet,并指定其IP地址范围(CIDR块)。VNet可以包含来自多个可用区的资源。
- 子网 (Subnet): VNet内的IP地址范围划分,用于将资源分段。所有子网默认均可通过配置访问互联网。
- 虚拟网络网关 (Virtual Network Gateway): 一个提供两种类型网关的集合概念:
- VPN网关: 用于在VNet和远程位置(如本地网络)之间建立站点到站点VPN连接。
- ExpressRoute网关: 用于配置ExpressRoute连接,通过专用线路将VNet扩展到本地网络。
- VNet对等互连 (VNet Peering): 允许直接连接两个Azure VNet。连接可以是传递性的(通过网关传递),但默认情况下,对等互连本身是非传递性的。
关键差异与设计理念
-
网络边界与互联网访问:
- AWS: 网络边界明确。VPC默认是私有的,不与互联网通信。必须显式创建并附加一个互联网网关,并配置路由表,才能使子网成为“公有子网”并访问互联网。
- Azure: 设计上更加“开放”。默认情况下,VNet中的所有资源(只要配置了公共IP)都可以出站访问互联网。入站访问需要通过网络安全组或防火墙等机制进行控制。
-
负载均衡器:
- AWS: 提供经典负载均衡器(CLB,旧版)、应用负载均衡器(ALB,第7层)和网络负载均衡器(NLB,第4层)。NLB可以分配静态IP,并处理极高的流量。
- Azure: 提供Azure负载均衡器(基本和标准SKU,第4层)和应用程序网关(第7层,带有WAF等功能)。Azure负载均衡器标准SKU支持跨区域的负载均衡。
-
DNS与私有连接:
- AWS: 提供Route 53作为高度可用的DNS服务,包括私有托管区域,可在VPC内解析自定义域名。
- Azure: 提供Azure DNS作为DNS托管服务。此外,Azure Private Link和Private Endpoint服务允许私有地访问PaaS服务(如存储、SQL数据库),而无需公共IP,这是Azure网络架构中的一项关键差异化服务。
-
混合连接:
- AWS: 主要依靠VPN连接(通过虚拟私有网关)和AWS Direct Connect(专用网络连接)来实现混合云架构。
- Azure: 提供站点到站点VPN(通过VPN网关)和Azure ExpressRoute(专用连接,类似于Direct Connect)。此外,Azure通过VNet网关传递实现了更复杂的对等互连和混合网络拓扑。
总结
AWS和Azure都提供了强大、全面的网络服务套件,但其底层架构和默认行为反映了不同的设计哲学。AWS倾向于“默认安全”和显式配置,从私有、隔离的VPC开始,需要手动启用外部连接。Azure则提供了更灵活、默认更连通的起点,但需要仔细规划网络安全控制。选择哪一种,很大程度上取决于组织的特定需求、现有的技术栈以及对网络模型的控制粒度偏好。理解这些核心差异是设计高效、安全、符合成本效益的云架构的第一步。