Multi VPC Multi Region Multi Account Global Networking Architecture¶
Overview¶
VPC 是 AWS 中的核心网络服务, 用于企业组建内部网络. 一个 VPC 是位于一个 AWS Account 上的某个具体的 Region 的. 在企业应用中, 随着业务复杂度的不同, 可能有如下需求 (按照从简单到难排序):
只有云网络, 只有一个 VPC, 没有自建的数据中心 (on-prem).
有 VPC 也有自建的数据中心, 两者需要通信.
在一个 Account 一个 Region 上有多个 VPC.
在多个 Account 一个 Region 上有多个 VPC.
在一个 Account 多个 Region 上有多个 VPC (跨 region).
在多个 Account 多个 Region 上有多个 VPC (global).
在多个 Account 多个 Region 上有多个 VPC, 以及位于世界不同位置的多个自建数据中心.
本文是一个综述性的文章, 在以上的问题的大框架下, 介绍了如何为复杂多变的业务需求在 AWS 上组网的总体思路.
AWS Networking Services¶
我们先简单了解一下 AWS 有哪些与网络相关的服务:
VPC (Virtual Private Cloud): 云上虚拟私有网络. 免除了企业自己搭建私有网络基础设置的麻烦. 是 AWS 网络的核心
Direct Connect: 跟合作的 ISP (Internet Service Provider) 在你的 On-Prem 和 AWS 之间拉一条专线. 使得所有 On-Prem 与 AWS 之间的网络通信不经过公网, 不仅保障了隐私, 而且提高了速度, 使得 On-Prem 和 AWS 之间的通信速度和 AWS 内部之间的通信速度一样快.
VPC Peering: 将多个 VPC 两两连接起来, 使得多个 VPC 的 Subnet 互相能直接通信. 默认情况下两个不同的 VPC 私网之间是无法通信的. 该服务是通过两两连接实现的多个 VPC 互联, 在有 N 个 VPC 的时候复杂度是 O(N).
Transit Gateway: 为多个 VPC 以及 On-Prem 提供一个中心化的网关将他们连接起来. 这是 VPC Peering 的升级版, 在 VPC 数量增多的时候为最优解. 当然也更复杂, 更贵.
VPC Endpoint: 为位于 VPC 内的计算资源例如 EC2 和 AWS 服务之间建立私有连接. 以 S3 为例, 使得 API 请求不走公网的 Endpoint, 而是走私网的 Endpoint, 使得 Traffic 不经过公网, 不仅保障了隐私, 而且提高了速度.
Client VPN Endpoint: 为企业中的个人用户的电脑提供从任何地方通过 VPN 访问 VPC 的服务. 连上了 VPN 后就相当于已经在 VPC 里面了.
Network-to-Amazon VPC connectivity options: https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html
Building a global network using AWS Transit Gateway Inter-Region peering: https://aws.amazon.com/blogs/networking-and-content-delivery/building-a-global-network-using-aws-transit-gateway-inter-region-peering/