智囊团代闻分享:基于AWS的混合IT架构
代闻,亚马逊AWS解决方案架构师,负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广,在大规模后台架构、物联网应用、媒体行业转型、企业混合IT和自动化运维等方面有着广泛的设计和实践经验。在加入AWS之前,在思科中国担任系统工程师,负责方案咨询和架构设计,在企业私有云和基础网络方面有丰富经验。曾任IBM中国软件开发中心软件工程师,从事企业软件和移动平台的开发工作。
基于AWS的混合IT架构
公有云带来的便利主要有如下一些方面:按需使用付费、避免预估容量、降低创新失败成本、集中处理数据中心的无差异化的工作、降低企业的运维难度等等。
对于企业来讲,这些点很吸引人,但是如何有效地使用公有云、如何处理私有云和公有云的关系、如何有效地迁移和过渡、如何保障业务连续等等,这些都是难点——不仅是企业要面对的难点,也是公有云提供服务的难点。
如果企业要将公有云作为IT基础设施的一部分,同时运维自己的IDC,就会面临如何构造混合云的问题。
构造混合云是一个比较大的话题,涵盖基础设施、软件平台、对外服务接口、容灾规划、管理监控等诸多方面。今天我着重讲一下基础设施方面,尤其是网络的构建,其他方面简单说明,大家有问题一会儿可以QA.
关于网络,公有云能够为企业提供服务、提供混合云服务,首先自身要具备足够稳定、可靠、功能齐全的虚拟网络。AWS VPC (Virtual Private Cloud)就是应运而生的一个虚拟网络服务。顾名思义,它可以让用户在公有云上划出一个自己的“虚拟私有云”,也就是说,网络的边界、地址、子网、IP、ACL、路由、防火墙策略等等,都可以由用户自己定义,并且可以API化、自动化。
关于网络,公有云能够为企业提供服务、提供混合云服务,首先自身要具备足够稳定、可靠、功能齐全的虚拟网络。AWS VPC (Virtual Private Cloud)就是应运而生的一个虚拟网络服务。顾名思义,它可以让用户在公有云上划出一个自己的“虚拟私有云”,也就是说,网络的边界、地址、子网、IP、ACL、路由、防火墙策略等等,都可以由用户自己定义,并且可以API化、自动化。
(补充说明:如果有人玩Openstack,网络模块Neutron,也就是之前的Quantum就是类似VPC的服务。如果有人同时玩过Neutron和AWS VPC,相信很容易体会VPC的强大之处,以及做到这么强大、灵活和大规模是多么不可思议。。。)
言归正传
VPC让用户在AWS上构建出自己的私有网络,那么下一个问题就是如何将VPC和用户数据中心的物理网络打通。这个连接一般来讲,或者基于VPN,或者基于专线。
这里的VPN指基于Internet的VPN,可以通过使用AWS的EC2虚拟机搭建VPN服务器来实现,也可以使用AWS的VPN服务实现。
使用专线,AWS提供DirectConnect服务支持专线接入,然后用户可以租用运营商的专线实现物理机房和AWS的连接,然后通过配置物理设备和DirectConnect服务,就可以实现物理网络与VPC的路由互通。专线连接可以得到更低的延迟、更高的可靠性。
所以很多企业会选用DirectConnect服务来做混合IT架构的网络连接。另外,VPC和物理网络需要使用不同的网络段,地址不可重合。如果有二层延伸的需求,可以采用一些第三方方案。
网络连接建立之后,相当于混合IT的路基就铺好了,下一步很容易想到的就是存储和计算的混合使用。
DirectConnect服务接入Equnix的数据中心现在应用在国内普遍么?
国内已经有不少DirectConnect服务的案例,比如今年的米粉节。Equinix数据中心,您指用户在其中,还是说接入为AWS提供DirectConnect接入点得Equinix机房?
存储的同步,AWS自己提供了Storage Gateway,实现用户存储数据向云上同步或备份,比如存储到S3对象存储,或者Glacier虚拟带库
问: (李锴: 这个好啊
崔昊: 我记得有些客户把设备放在Equnix那里,然后通过Direct Connect接入AWS)
答: 同时,第三方软硬件厂商都积极推出与AWS接口兼容的存储同步产品和方案,比如Symantec、Oracle RMAN、Commvault
veeam、riverbed Whitewater等 @崔昊 你说的场景很可能是有一个Equinix机房为AWS提供专线接入点,客户如果租用这个机房的Rack,设备就可以通过机房内光纤与AWS建立连接,依然是基于DirectConnect服务,但是省去了专线的费用。
问: (@AWS 代闻 国内有vpn服务?)
答: @崔昊 DirectConnect服务的提供需要有专线接入点。因为考虑到安全,AWS不会让用户或运营商直接访问到AWS的数据中心机房的,所以需要接入点。Equinix在国外为AWS提供了很多接入点。在国内,AWS目前已经在服务的接入点由光环新网提供。
@huoju@TCL 北京Region目前只能使用EC2搭建VPN服务器,AWS VPN服务目前只能在Global Region使用。
说完存储,我们再看一下计算,也就是服务器。有了混合IT的连接后,数据中心服务器与云上的虚拟机可以通过内网通信。如果用户物理数据中心的虚拟机可以导出为OVF格式,还可以导入到AWS上,变成EC2实例、制作镜像等等,如果以后有需求迁回数据中心,AWS也支持导出。当然VM导入导出服务对虚拟机的操作系统和配置有一些要求,不过覆盖面很大,详情可以查一下文档。
此外,由于AWS所有服务都基于API,并且封装了SDK,所以VMware vSphere Client和Microsoft Hyper-V System Center都有插件,可以实现用户数据中心虚拟机和AWS EC2的统一管理。此外,Openstack也有
OK,我们讲完了基础网络、存储和计算,接下来再简单说一下软件平台、对外服务接口、容灾规划、管理监控
软件平台,其实说得最多的就是企业中间件,以及企业数据库
中间件就不多说了,SAP和Oracle都有相关的Whitepaper讲解如何在AWS上搭建平台,特别是SAP由很多白皮书和介绍。
混合IT架构下,数据库方面,有三种模式,第一种是把数据库也放到云上,第二种是数据中心和云之间做主备,第三种是只把前端和中间件放在云上,数据库因为一些原因放在机房。我们主要看一下第二种。
(还是说说中间件吧)
AWS提供了RDS数据库服务,可以支持MySQL、PostgreSQL、SQL Server、Oracle、MariaDB、Amazon Aurora六种引擎。如果是MySQL,可以直接使用RDS与数据中心的MySQL组成M-S或S-M. 如果是Oracle和SQL Server,建议使用EC2搭建主备。
@yangdigital@SH 中间件的话题比较大,而且也比较容易通过域名方式解耦,详细的SAP中间件配置我不是专家,这个可以参照白皮书,或看看群里有没有SAP或EBS大拿:) 对外服务接口,我主要是指构建混合云之后,如何向内部机构或者外部用户提供服务。
这里有两个比较基本的要素需要注意,一个是松耦合,另一个是无状态。
松耦合是为了迁移、部署和变更,无状态是为了平行扩展和高可靠,避免单点失效。
容灾方面,混合IT可以考虑四个模式:冷备、信号灯、热备、双活。
基于公有云的容灾成本会比传统方式低很多,尤其是前三种模式。
如果冷备,云上只需要定期备份,其他还是冷备,遇到问题恢复会比冷备快。
如果是热备,在传统数据中心需要1:1备份,但是在云上只需要使用基本数量的机器能够提供服务即可,如果切换,再通过命令行或自动侦测的方式迅速扩张,这也是前端服务器成为无状态服务器的好处,可以很快平行扩展。
双活就是两边同时工作,同时分担流量,数据库实时同步了。
另外,上面提到的切换都是指DNS切换。
最后说一下管理监控
AWS提供了Cloudwatch来监控云上基础设施,同时Cloudwatch也有API接口和SDK,这样,用户就可以读取Cloudwatch数据,集成到自己的平台,比如Zabbix,Nagios等。另外,一些性能监控平台,如国外的New Relic,国内的听云,都提供了针对AWS的性能监控,以及应用级监控,用户也可以通过第三方加强管理和监控。
管理中比较重要的一个话题就是安全。AWS提供了IAM (Identity Access Management)服务,支持用户组、用户、角色等,权限管理可以细致到服务的各个功能。企业用户可以将内部的AD或LDAP与IAM做集成,以便统一管理账户。同时,对于AWS资源做的任何操作,AWS的Cloudtrail服务会全部记录,供审计或排错使用。
时间不早了,我今天先分享这么多吧,不小心打了很多字,谢谢大家!
我在电脑前等10分钟,如果大家没有其他问题,我就关电脑了
Not box:
请问AWS 的Postgresql 提供load balance 吗
Yinan:
@AWS 代闻 谢谢分享,我觉得此处还应该推荐一下AWS全球在中国唯一认证的云计算管理服务商(MSP)云络科技,可以帮助大家专业和快速实现以上所Yinan:
有的功能
代闻_daiwen:
可以提供主备模式,Multi-AZ,即同城容灾。
Not box:
那Standby可以选择数量吗
Not box:
比如多个standby
代闻_daiwen:
Standy是对主库的Standby,所以只有一个,你应该指的是Slave或者只读副本,是可以创建多个的。多个只读副本(read replica)的load balance需要自己搭Proxy.
霍炬:
rds 多可用区,如何保证切换时,应用连接配置不更改。是通过数据库网关还是负载均衡?
霍炬:
指mysql
Henry:
aws ec2 classic加静态路由有办法解决吗?
代闻_daiwen:
@huoju@TCL RDS Multi-AZ切换,URL不会改变,是底层域名解析到备库了。
霍炬:
@AWS 代闻 如果是域名,应用端不会有缓存吗?
代闻_daiwen:
@Henry 尽快迁移到VPC吧 :)
杨岭:
Oracle和SQLserver要用EC2搭主备啥意思?
代闻_daiwen:
@huoju@TCL 好问题,答案是可能会的。推荐自己搭DNS服务器,或者使用Route53的Private Zone服务建立内部DNS,使用小TTL避免。否则只能用脚本批量清了。
杨岭:
RDS不支持多AZ?
代闻_daiwen:
@yangdigital@SH 就是用EC2虚拟机构建和物理机房的Oracle、SQLServer的主备关系。
杨岭:
哦,明白了
代闻_daiwen:
RDS for MySQL/SQL Server/PostgreSQL/Oracle 支持两个AZ.
代闻_daiwen:
RDS for Aurora必须具备三个AZ
Yinan:
@AWS 代闻 Route53不是在中国没有吗?
Yinan:
现在开放了吗?
Henry:
现在困惑于这里,也是迁移到VPC的问题点
Henry:
还有s3distcp
代闻_daiwen:
所以在北京Region只能自己搭内部DNS,比如skydns,powerdns
Henry:
跟原生的相比还是有局限性,
Henry:
有改进没?s3distcp
代闻_daiwen:
@Henry 哪方面?
Henry:
s3distcp
Henry:
同步一般失败,能续传?
Henry:
不能吧?
Henry:
增量同步不支持吧?
Henry:
还有aws elasticsearch 是否有一些最佳实践分享下?
代闻_daiwen:
这是S3决定的
Henry:
哦?
霍炬:
@AWS 代闻 北京节点和国外aws节点间应用的数据传输有什么优化方案吗,实际使用问题很多呀.。
霍炬:
@AWS 代闻 北京节点和国外aws节点间应用的数据传输有什么优化方案吗,实际使用问题很多呀.。
代闻_daiwen:
因为S3是对象存储,HTTP based,所以断点续传只能基于一个上传任务,并且是有分片粒度的。
代闻_daiwen:
@Henry Cloudsearch支持ES了,赶紧看一下吧
代闻_daiwen:
@huoju@TCL 国内外直接通过公网传,该过的东东,必须得过,所以就慢了。可以拉专线或者使用虚拟专线(如Aryaka)
代闻_daiwen:
@huoju@TCL 国内外直接通过公网传,该过的东东,必须得过,所以就慢了。可以拉专线或者使用虚拟专线(如Aryaka)
Yinan:
是的,我最近在做几个用Aryaka的case
Yinan:
包括我们自己,也是使用Aryaka的服务来,效果不错
Henry:
注我的aws都在国外哈
alex:
AWS有没有遇到V2V的情况
关于“智囊团”云计算领域讨论群,周一至周五晚8点按照入群顺序,分享行业干货,进行讨论。入群需实名制。有兴趣可以加微信:aclood