云区域(region),可用区(AZ),跨区域数据复制(Cross-region replication)与灾备(Disaster Recovery)(部分1)
云区域(region),可用区(AZ),跨区域数据复制(Cross-region replication)与灾备(Disaster Recovery)(部分2)
AWS 中最最基础的网络概念
经典网络:公有云上所有用户共享公共网络资源池,用户之间未做逻辑隔离。用户的内网IP由系统统一分配,相同的内网IP无法分配给不同用户。
VPC:是在公有云上为用户建立一块逻辑隔离的虚拟网络空间。在VPC内,用户可以自由定义网段划分、IP地址和路由策略,安全可提供网络ACL及安全组的访问控制,因此,VPC有更高的灵活性和安全性。
对比可以看到,VPC优势明显,通过VPC,用户可以自由定义网段划分、IP地址和路由策略;安全方面,VPC可提供网络ACL及安全组的访问控制,VPC灵活性和安全性更高。可适用于对安全隔离性要求较高的业务、托管多层web应用、弹性混合云部署等使用场景中,符合金融、政企等行业的强监管、数据安全要求。
原文:https://grahamlyons.com/article/everything-you-need-to-know-about-networking-on-aws
如果你有在 AWS 有基础设施服务或应用程序,那么下面所有这些概念你都将会碰到。
这些不仅仅是网络设施的一部分,根据我的经验来看,更是其中最重要的部分之一。
VPC (Virtual Private Cloud ),虚拟私有云,是你的基础设施所运行在的一个私有网络空间。你可以自己选择 VPC 的地址空间(CIDR 范围),例如10.0.0.0/16 。这将决定 VPC 内有多少可分配 IP 。因为 VPC 内的每一台服务器都需要一个 IP 地址,所以 VPC 地址空间的大小,将决定该私有网络可容纳的资源上限。 10.0.0.0/16 地址空间的可用地址从10.0.0.0 到10.0.255.255 , 一共 2^16, 65,536 个 IP 地址。
VPC 是 AWS 中最基础的基础,每一个新创建的账户,在每个AZ (Available Zone,可用区) ,都包含一个带子网 的默认 VPC 。
subnet(子网)是 VPC 的一部分,有其单独的 CIDR 范围和流量转发规则。其 CIDR 范围是 VPC 的一个子集。举个栗子,10.0.0.0 的一个子网 10.0.1.0/24,地址范围从 10.0.10.0 到 10.0.1.255 ,一共 256 个 IP 地址。
根据是否可以从外部(公网)访问进来,子网也经常被称为“公有”或“私有”子络。这种可见度是由网络路由规则控制的,每个子网都有其自己的规则。
子网必须位于某个区域具体的 AZ 中,因此,在每个区域划分子网是很好的做法。如果你要划分公有子网和私有子网,那么,在每个 AZ 都要有一套。
前面我们说到,每个 Availability Zone 必须有子网,可是,这到底是什么意思呢 ?
在 AWS 中,为了保证每个地区资源的极高的可用性。每个区域(zone)的资源都被划分为 2 个或更多不同可用区(AZ)。对每个区域(zone)来说,基本上即使其他所有 AZ 都中断了,也要确保至少有一个 AZ 还能正常运行。
路由表,是一系列规定子网 IP 数据包如何传输到其他不同 IP 地址的规则。
每个 VPC 内,都有一个默认的路由表,只允许流量在本地(VPC 内部)转发。如果某个子网没有关联路由表,则使用该默认路由,也就是一个“私有”子网。
如果你想要能从外部访问子网,那么你就需要创建一个路由表,显式地指定该规则。这样,关联该路由表的子网就是“公有”子网。
将子网配置为可从外部访问的路由表,需要借助互联网网关来控制外部数据包出入 VPC 。
例如,创建一个网关,配置规则为所有去往 0.0.0.0/0 的数据包均需通过网关 。
如果你有一台在 AWS 私有子网内,不允许公网访问的 EC2 实例,那么该实例的数据也没办法发送到公网。我们需要一种机制,将数据包发出去,并且正确地接收到对端的响应包。这便是 NAT ——网络地址转换,跟家里的 wifi 路由器很类似。
NAT 网关是位于公有子网的一个设备,负责接收从私有子网发往公网的数据包,转发至其目的地址;同时转发返回的数据包到源地址。
如果你 VPC 中私有子网中的实例不需要公网访问的话,那么 NAT 并不是必需的。只有你的实例需要访问诸如外部 API,SaaS 数据库等时,你才需要配置 NAT 网关。或者是使用 AWS 提供的 NAT 网关资源(由 AWS 配置,更易于用户管理)。
•NAT 网关位于公有子网中•从私有子网发出对某个公网地址的请求•根据路由表规则,请求数据包被转发到 NAT 网关•NAT 网关将数据包转发出去
VPC 网络安全组标志 VPC 中的哪些流量可以发往 EC2 实例或从 EC2 发出。安全组指定具体的入向和出向流量规则,并精确到源地址(入向)和目的地址(出向)。这些安全组是与 EC2 实例而非子网关联的。
默认情况下,流量只允许出,不允许入。
入向规则可具体指定源地址——CIDR 段或者另一个安全组亦或是端口范围。当指定的源地址为另一个安全组时,该安全组必需位于同一个 VPC 。例如,VPC 默认的安全组允许任意来自同一安全组的访问流量。如果将该安全组应用于 VPC 内创建的所有资源,那么该 VPC 中的资源之间将可以互通。
•实例 (i-67890) 的安全组 (sg-abcde) 允许来自 443 端口的 TCP 流量•来自 IP 10.0.1.123 22 端口的请求不被允许通过•来自 443 端口的请求被允许通过
整个虚拟网络完整的架构如下图所示:公有子网/私有子网跨越 AZ 将整个网络划分为两部分。NAT 位于公有子网,用路由表指定数据包的路由规则。 EC2 实例将运行于任意子网,附加安全组。
•1.Amazon Virtual Private Cloud 用户指南 https://docs.amazonaws.cn/vpc/latest/userguide/what-is-amazon-vpc.html
单 vpc
多vpc
多 vpc:VPC是地域级别的资源,是不能跨地域部署的。当您有多地域部署系统的需求时,就必然需要使用多个VPC
多 vpc:如果在一个地域的多个业务系统需要通过VPC进行严格隔离,比如生产环境和测试环境,那么也需要使用多个VPC
首先,即使只使用一个VPC,也尽量使用至少两个交换机,并且将两个交换机分布在不同可用区,这样可以实现跨可用区容灾。
同一地域不同可用区之间的网络通信延迟很小,但也需要经过业务系统的适配和验证。由于系统调用复杂加上系统处理时间、跨可用区调用等原因可能产生期望之外的网络延迟。建议您进行系统优化和适配,在高可用和低延迟之间找到平衡。
其次,使用多少个交换机还和系统规模、系统规划有关。如果前端系统可以被公网访问并且有主动访问公网的需求,考虑到容灾可以将不同的前端系统部署在不同的交换机下,将后端系统部署在另外的交换机下。
在创建VPC和交换机时,您必须以无类域间路由块 (CIDR block) 的形式为您的专有网络划分私网网段。
您可以根据以下建议规划VPC网段。
如果有多个VPC,或者有VPC和线下IDC构建混合云的需求,建议使用上面这些标准网段的子网作为VPC的网段,掩码建议不超过16位。
如果云上只有一个VPC并且不需要和本地IDC互通时,可以选择上表中的任何一个网段或其子网。
VPC网段的选择还需要考虑到是否使用了经典网络。如果您使用了经典网络,并且计划将经典网络的ECS实例和VPC网络连通,那么,建议您选择非10.0.0.0/8作为VPC的网段,因为经典网络的网段也是10.0.0.0/8。
您可以根据以下建议规划交换机网段。同样,交换机创建成功后,网段无法再修改。
交换机的网段的大小在16位网络掩码与29位网络掩码之间,可提供8-65536个地址。16位掩码能支持65532个ECS实例,而小于29位掩码又太小,没有意义。
交换机的网段可以和其所属的VPC网段相同,或者是其VPC网段的子网。比如VPC的网段是192.168.0.0/16,那么该VPC下的虚拟交换机的网段可以是192.168.0.0/16,也可以是192.168.0.0/17一直到192.168.0.0/29。
注意:如果您的交换机网段和所属VPC网段相同,您在该VPC下只能创建一台交换机。
每个交换机的第一个和最后三个IP地址为系统保留地址。以192.168.1.0/24为例,192.168.1.0、 192.168.1.253、192.168.1.254和192.168.1.255这些地址是系统保留地址。
ClassicLink功能允许经典网络的ECS和192.168.0.0/16,10.0.0.0/8,172.16.0.0/12这三个VPC网段的ECS通信。例如,如果要和经典网络通信的VPC网段是10.0.0.0/8,则要和经典网络ECS通信的交换机的网段必须是10.111.0.0/16。详情参考ClassicLink。
交换机网段的确定还需要考虑该交换机下容纳ECS的数量。
如下图所示,比如您在华东1、华北2、华南1三个地域分别有VPC1、VPC2和VPC3三个VPC。VPC1和VPC2通过高速通道内网互通,VPC3目前没有和其他VPC通信的需求,将来可能需要和VPC2通信。另外,您在上海还有一个自建IDC,需要通过高速通道(专线功能)和华东1的VPC1私网互通。
此例中VPC1和VPC2使用了不同的网段,而VPC3暂时没有和其他VPC互通的需求,所以VPC3的网段和VPC2的网段相同。但考虑到将来VPC2和VPC3之间有私网互通的需求,所以两个VPC中的交换机的网段都不相同。VPC互通要求互通的交换机的网段不能一样,但VPC的网段可以一样。
在多VPC的情况下,建议遵循如下网段规划原则:
尽可能做到不同VPC的网段不同,不同VPC可以使用标准网段的子网来增加VPC可用的网段数。
如果不能做到不同VPC的网段不同,则尽量保证不同VPC的交换机网段不同。
如果也不能做到交换机网段不同,则保证要通信的交换机网段不同。