亚马逊AWS官方博客
基于 AWS 的企业 IT 网络架构
背景
自2006年Amazon.com推出S3服务以来,云计算市场已经发展了十多年。越来越多的开发者,初创公司和企业开始拥抱云计算。AWS的云服务给企业赋能:敏捷业务开发,按需供给IT资源,优化IT成本,加速创新,并让快速全球部署成为可能[1]。
目前已经有很多企业客户采取了尽在云端或云优先的策略,把基础架构全部或大部分迁移到AWS云端。典型的架构是这样的:
很多承担业务负载的基础设施已经或正在从传统的IDC迁移到AWS云上。那么,企业自身的IT需求是否一样能享受AWS云的好处呢?在可预期的将来,云服务将像电一样成为标准的公共服务,IT和业务基础设施全部在云端会变成趋势。企业的基础设施架构会变成下图的样子。
AWS Marketplace[2]已经在北京和宁夏区域上线。它提供了数量庞大的来自AWS合作伙伴的产品,包括安全、网络、存储、开发运营等等许多门类。购买,管理和部署这些软件变得像从应用市场下载一个APP到手机上一样简单。
对企业来说,上云能降低IT运维的压力。AWS Marketplace进一步赋能,简化了管理和部署IT商业软件的过程。
接下来,我将展示IT上云的可能的几种基础架构形式。
基于虚拟桌面的解决方案
AWS的虚拟桌面服务WorkSpaces[3]已经在宁夏区域推出。企业可以在几分钟内预置桌面并快速扩展。WorkSpaces 消除了管理和运维虚拟桌面基础设施的复杂性,比传统的虚拟桌面方案更节省成本。
用户通过客户端(Mac,Windows,平板,甚至支持Chrome或Firefox的瘦客户端)远程登陆到WorkSpaces,然后从这里访问云上的IT服务,或通过云端的出口访问Internet。
基于Proxy的解决方案
有些企业可能暂时还不能把一些IT资源迁移到云上(比如目录服务等·),或者IT上云处于评估阶段。这种情况下,部分IT基础设施部署在云端,最终用户的终端仍然在办公室,采用IT的混合架构。
由于VPC的安全保护机制[4],网络流量的源IP地址或目标IP地址两者之一必须是VPC内部的有效IP地址,否则流量包将被丢弃。这样,来自企业的网络流量路由到云上再通过云上的网络出口访问Internet是不可行的。
解决办法就是把这个流量拆分成两部分:把来自企业的流量的目标IP地址变成VPC的有效地址,同时把流向Internet流量的源地址变成VPC的有效IP地址。
通常用设置代理服务器的方法就能实现这种流量拆分,不过代理服务器可能会有安全性和兼容性上的问题,有些客户端程序可能不支持代理服务器。它不能支持纯三层流量的代理,做高可用的方案会比较复杂。
隧道+NAT方案
还有一种方案是结合隧道和NAT转换,通过隧道的方式把真实的目标IP地址封装起来,并在云上的软路由器内完成源地址的NAT转换。
接下来,我将在一个实验环境中对这个方案的细节进行展示。
隧道+NAT方案实验配置
在这个实验里,AWS北京区域用来模拟企业的物理IDC,AWS宁夏区域作为云,两个区域通过VPC对等[5]连接。北京区域的client要通过VPC对等连接到宁夏区域,并通过宁夏区域的Internet网关(IGW)访问Internet。
实验中用到北京区的2个私有子网(无指向IGW的默认路由),宁夏区的1个公有子网(默认路由指向IGW)。每个子网内各有一台可突增性能[6]的T2.micro类型的EC2实例,其中,router-inside和router-outside在本实验中作为软件路由器,安装了AWS Market Place上的合作伙伴提供的镜像VyOS[7]。VyOS是一个基于Linux的开源的网络操作系统,支持基于软件的网络路由,防火墙和VPN等功能。
主机名 | 区域 | IP地址 | 默认的下一跳 | 路由器配置- |
client | 北京 | 192.168.3.111/24 | router-inside | – |
router-inside | 北京 | 192.168.4.195/24 | – | GRE |
router-outside | 宁夏 | 172.31.22.79/20 | IGW | GRE, NAT |
下图是IP包的源地址和目标地址在传输过程中的变化示意图。
对于router-inside来说,它要做IP包转发,因此EC2设置中要禁用源/目标检查[8]。
对于router-outside来说,如果不做源地址NAT 则流量会被丢弃。因为IP包的源地址不是宁夏区VPC内部的地址,目标地址也不是宁夏区VPC内部的地址。
宁夏区这里不能用NAT Gateway代替路由器的NAT,因为它只对源地址属于本VPC的IP包进行地址转换[9]。
配置完成后,下一步是登陆到client来进行验证。因为client处于私有子网,不能直接登陆,需要从公有子网的一台实例跳转登陆。
在client上执行traceroute,可以看到IP包经过router-inside和router-outside,然后通过宁夏区的IGW传向Internet。
下面是两个软路由器的详细设置:
默认路由的下一跳是GRE隧道对端的IP地址192.168.254.2,由路由器控制。
到北京VPC和宁夏VPC网段的下一跳是路由器router-inside所在子网(192.168.4.0/24)的默认网关192.168.4.1,由VPC控制。
对所有来自北京VPC的IP包进行了源地址NAT,变成路由器的接口地址。
到北京VPC网段的下一跳是GRE隧道对端的IP地址192.168.254.1,由路由器控制。
到路由器router-inside的下一跳是路由器router-outside所在子网(172.31.16.0/20)的默认网关172.31.16.1,由VPC控制。
总结
本文介绍了企业通过AWS云构建IT基础环境的3种方法,并对基于隧道+NAT的方法给出了利用AWS Market Place上的VyOS镜像进行实验的配置方法。
参考资料
- https://infrastructure.aws/
- https://www.amazonaws.cn/marketplace/help/
- https://www.amazonaws.cn/workspaces/
- https://aws.amazon.com/answers/networking/vpc-security-capabilities/
- https://docs.amazonaws.cn/vpc/latest/peering/what-is-vpc-peering.html
- https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html
- https://vyos.readthedocs.io/en/latest/about.html
- https://docs.aws.amazon.com/zh_cn/vpc/latest/userguide/VPC_NAT_Instance.html#EIP_Disable_SrcDestCheck
- https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html