在做视频课程的过程中,虽然遇到了很多困难,但同时也收到了很多学友的鼓励,感谢鼓励、支持我的人,给了我坚持做下去的动力。
Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们今天的课时讨论的内容为Transit VPC & Transit Gateway 。
随着在AWS上运行的工作负载越来越多,我们可能会将网络扩展至多个VPC,跨多个AWS账户才能满足需求。另外很多组织还需要将本地数据中心与VPC的网络打通,采用了混合云的架构将资源分布放置在VPC及本地数据中心。
那么,有没有一个将多个VPC之间,以及和本地数据中心的网络全部打通,进行相互通讯的解决方案呢?
其中一种方式就是通过Transit VPC。
Transit VPC
Transit VPC 通常可以理解成是通过部署软件VPN的方式。
所以Transit VPC不是AWS提供的服务,只是解决打通多VPC及本地网络的场景AWS推荐和建议采用的架构,另外在2016年的时候,AWS推荐了基于CISCO等厂商的基于实例路由的Transit VPC解决方案。
不过目前有一个更新、更好的解决方案,Transit gateway,这节课我们也会讨论。
我们先来看一下Transit VPC,Transit VPC解决方案的核心是通过设置一个中心VPC,然后通过配置软件VPN,通过互联网使用VPN通道连接各个VPC和本地网络。
这是一个Transit VPC的解决方案,我们在这个中心的Transit VPC中,启动EC2后并在上面配置一个VPN服务器程序;然后分别将这个架构中的各个VPC以及本地数据中心,通过Transit VPC的软件VPN, 通过互联网使用VPN通道全部连接起来,这样的话我们连接的这些网络,包括各个VPC以及本地网络,就可以通过Transit VPC,相互间进行通信。
可以通过配置让这些网络间的通信只能通过Transit VPC,然后我们就可以在Transit VPC上进行更复杂的访问控制,比如通过配置更复杂的路由,甚至做一些网络层的包过滤规则等等来实现更高复杂、更高安全级别的访问控制。
Transit VPC方案因为软件VPN是运行在EC2实例上,所以我们可以在这台实例上去做这些控制,拥有完全的控制权。
那么Transit VPC的解决方案缺点是什么呢?可能很多同学已经想到了,它是通过在EC2上自行搭建软件VPN的方式,所以,VPN服务器的高可用需要我们自行负责,否则这台EC2挂了这个网络就基本上瘫痪了。还有,随着接入VPC网络的增加,我们还需要考虑这台EC2的带宽,处理能力是否足够等等,这些管理任务都是需要我们来负责的。所以AWS推出了一个新的解决方案,Transit gateway。
Transit gateway
在开始讨论Transit gateway前,我们先看一个典型的网络拓扑架构,这个架构在很多组织中都很常见。
架构中包括很多VPC,而且这些VPC相互间需要通信,所以就创建很多个VPC对等连接;然后又配置了用户网关,用于某些网络的VPN连接需求,还使用Direct Connect gateway将本地数据中心与多个AWS区域建立连接。
可以看到这个架构图,各种不同类型的连接相互交错,看着就有点乱。而且随着后面规模越来越大,比如VPC越来越多,网络的复杂性随着规模会逐渐增加。您必须在每个 VPC 内维护路由表,新增VPC时创建和维护对等连接,或者创建VPN连接等等。所以这个架构会变的越来越复杂,越来越难以维护,管理任务会越来越重。
所以呢,随着我们的网络规模越来越大,AWS账户数量越来越多,我们需要一个更简单,更方便的解决方案来解决网络拓扑越来越复杂的问题,所以就有了前面的解决方案Transit VPC;然而目前我们还有另外的一个可能是更好的选择—Transit gateway,它提供与 Transit VPC 相同的优势,但是它是一种可高可用性的弹性扩展的托管服务。
Transit gateway您可以简单把它理解成一个云路由器,它可以连接上千个VPC,并可以将本地网络、VPN连接、Direct Connect Gateway网络统统连起来,形成一个星型网络拓扑结构。
我们来看一下,使用Transit gateway后的网络拓扑,一个星型结构。Transit gateway位于中心将多个VPC、VPN、Connect Gateway都连接到了一起。
和前一张PPT中未使用Transit gateway的网络拓扑相比较,使用Transit gateway可以将这些网络轻松连接到一个网关中,大大简化了我们的网络,且不在需要我们更新大量的路由表配置和维护复杂的对等关系。
和Transit VPC一样,在这个Transit gateway的星型网络中,所有网络间的通讯都需要通过Transit Gateway,可以通过它的路由表来控制这些来自不同的网络的通信如何进行路由。
Transit gateway是基于AWS区域的资源,但可以通过创建Transit gateway的对等连接将多个Transit gateway连接起来,实现跨AWS区域通信。
可以使用RAM服务跨AWS账户共享Transit gateway。
可以通过Transit gateway的路由表,来限制VPC之间的通信。
Transit gateway除了可以连接VPC,也可以连接Direct Connect Gateway和VPN连接。
支持IP多播,如果您的架构或者应用程序基于IP多播,可以考虑Transit gateway
Transit gateway支持边界到边界的路由,这就意味着,VPC之间通过Transit gateway连接之后,其中一个VPC中的实例,是可以通过Transit gateway,访问另一个VPC的NAT网关,NLB,PrivateLink、EFS这些资源的。这样的话我们就可以设计一些共享VPC架构,实现多VPC共享资源。比如在一个VPC中设置NAT网关,然后其他VPC通过Transit gateway连接起来后都通过这个中心VPC的NAT网关访问互联网。
Transit gateway的AWS架构
在本节课时的最后,我们一起来看一个使用了Transit gateway的AWS架构。
在这个架构中,左边设置一个出站VPC,然后在出站VPC的两个可用区中分别部署了一个NAT网关,这两个NAT网关负责架构图中的其他VPC的访问互联网的集中出站。
通过配置Transit gateway将出站VPC这两个可用区的子网关联后,并通过配置每个可用区设置一个NAT网关,在提升了处理互联网访问能力的同时,又提供了NAT网关的高可用性。
然后我们看右边,Transit gateway连接了两个VPC,App1-VPC以及App2-VPC。然后通过编辑路由表允许这两个VPC内访问互联网的流量通过Transit gateway然后到出站VPC,通过出站VPC的NAT网关访问互联网。
那为什么要多VPC共享NAT网关访问互联网呢?首先,这种星型架构的设计,使我们可以从一个节点安全地管理所有出站Internet通信,使得我们拥有对互联网访问控制有更多的控制权;其次,我们不需要为每个有访问互联网需求的VPC都创建一个Internet网关与NAT网关,因为如果您拥有大量的VPC,多个Internet网关以及NAT网关会增加人工管理和资源的成本。这个架构其他的两个VPC的私有子网的实例 可以通过Transit gateway,通过出站VPC的NAT网关访问互联网,通过AWS Transit Gateway集中出站访问互联网节省了资源的开销。
当然,要实现上述这些通信,我们需要配置路由表,如App2-VPC,需要将0.0.0.0/0的访问指向Transit gateway,然后Transit gateway将0.0.0.0的访问请求发送至下一跳也就是出站VPC的可用区,然后流量通过NAT网关访问互联网,我们需要编辑相关的路由表来实现访问的需求。
另外在这个案例的架构中,这两个VPC之间是不允许通过Transit gateway相互通信的,我们可以看下Transit gateway的路由表中,是没有这两个VPC网络相关的路由条目的,也就是说您可以在Transit gateway中使用多个路由表,然后通过编辑路由来实现VPC和VPC的隔离需求。
所以也就是说,在创建并配置Transit gateway将相关的网络连接起来之后,并不意味着网络间相互就可以通信了,还需要编辑相应的路由表添加相应的路由条目允许网络相互间的通信。
好的,这个架构实现的是多VPC通过Transit gateway共享NAT网关访问互联网,您也可以调整这个架构将其他安全设备替换NAT网关,来实现诸如流量捕获,策略实施,Web过滤之类的任务,只要这些资源能够执行NAT功能并具有所需的路由配置即可。
希望通过这个架构的讨论能够让您更加了解和掌握Transit gateway,这个架构是来自于AWS官方的博客,我把博客的地址放到了PPT中,大家可以抽时间访问博客仔细阅读,博客中有详细的配置流程。
好的,以上就是我们今天的课程内容,希望本课时能够给大家带来帮助。
我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。