BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

InfoQ在线课堂:基于AWS云平台的高可用应用设计

| 作者 包研 关注 0 他的粉丝 发布于 2014年6月4日. 估计阅读时间: 16 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

5月21日,AWS中国首席云技术顾问方国伟在InfoQ在线课堂介绍了AWS高可用和非高可用的服务分类,从高可用角度对典型服务进行介绍,以及高可用设计的5大常见设计原则,并结合AWS的相关服务依次进行了架构设计分析。期间,方国伟回答了许多网友的问题,InfoQ对其进行了整理和补充,一并提供给大家。

你也可以重复收看本次在线课堂

关于存储

Q:instance down掉之后,这个instance上的数据会保留吗?能找回来吗?以前看到文档说要用EBS才能保障instance down掉之后的数据保留,是这样吗?是否有其他方案?

方国伟:有好几个问题就讲instance storage与EBS数据存储的问题,我统一讲一下。因为EC2里边的数据存储一般分两大类,一个是instance storage,另一个是EBS。instance storage是放在EC2里的硬盘里边的,是通过虚拟化实现的。如果这个EC2所在的物理机或instance出问题,那这个EC2的数据就不能访问了。为了解决这个问题,我们提供了EBS,EBS是通过网络访问的,如果你的instance出问题了,数据还在EBS里边。那可能有人会问,EBS的数据会不会丢呢?EBS的数据一般可靠性比较高,我们有个数据叫annual failure rate(AFR)会比一般的硬盘低好多,一般是普通硬盘的1/5到1/10。那EBS还是有可能要出问题,那怎么办?一种方式是定期对EBS做snapshot,snapshot的数据放在S3里,S3的数据持久性是11个9,非常高了。这是可以解决EBS丢数据的一个解决方案。

Q:instance down掉后EBS会自动卸载吗?

方国伟:一般会自动卸载。

Q:每个instance都有对应的EBS,(instance)销毁后EBS上存储的数据怎么处理?

方国伟:EBS上数据如何处理完全由用户自己决定。用户可以保留EBS卷,从而保留数据,也可以把EBS删除从而删除其上的数据。另外,用户也可以通过先制作EBS卷快照然后再删除EBS卷的方式来保留数据,因为以后还可以根据这个快照来重新生成一个包含这些旧数据的新EBS卷。

Q:instance storage怎么使用?哪些数据可以放在instance storage里面?

方国伟:这就有不同的场景,主要看你的数据有哪些对持久性要求,如果不是特别高,就放到instance storage里。或者在instance的数据在别的instance里有备份的,这样相当于一份丢了,从软件架构上自己可以从别的instance中恢复。

Q:AWS自己的DR是怎么设计的?如果一个region出现问题,怎么恢复呢?用户数据有sunshine吗?

方国伟:我们在设计这个平台的时候,region和region之间基本上是相互独立的,在默认情况下,你在region里面部署了应用程序,如果这个region宕掉了,当然你的应用就宕掉了。这里首先要指出一点,region本身不是一个数据中心,只要是商用region,我们至少要保证有两个AZ以上。这里强调一点,AZ本身也不是一个数据中心,有可能是多个数据中心组成一个AZ,所以整个region宕掉的可能性非常小。如果你有一个对可靠性要求特别高的应用,你可以自己在部署的时候跨region部署,但这个需要用户来做架构上面跨region的应用架构设计、数据拷贝等等。AWS是不会主动帮你来做的,最重要的原因是很多国家和地区对数据本身有一定的独立性要求,比如欧盟要求数据放在欧盟的region里边,AWS是不能把数据从region里主动让它离开的,这个数据拷贝的动作一定要用户自己操作才能进行。

关于数据库

Q:RDS的Multi-AZ部署支持SQL Server吗?

方国伟:我们最新宣布支持SQL Server,这样四个数据库类型(My SQL、Oracle、 PostgreSQL和SQL Server)都支持Multi-AZ Deployment了。

Q:原来部署到Windows+MySQL上的BS应用,如果要部署到AWS,应该做哪些大的改动?

方国伟:不需要大的改动,Windows用EC2,MySQL可用EC2也可以用RDS服务。AWS的兼容性很好的。

Q:DynamoDB怎么进行备份?

方国伟:一般情况下是不需要用户做备份,因为我们已经帮你备了三个拷贝,甚至更多。不过多个拷贝是在一个region里面的,如果你对数据可靠性要求非常高,可以跨region做拷贝,这个备份也非常简单。

Q:当数据库master出现问题后,切换到slave,是否支持可写?如果支持可写,是否会出现master和slave互为双写的情况?

方国伟:是支持可写的,因为Multi-AZ部署是完全切换,这个跟Read Replica不太一样.在RDS服务里,对数据库的两个相关的服务,一个就是Multi-AZ部署,Multi-AZ部署完全是一个主拷贝和一个副拷贝,也就说这两个是同步复制的,一般所有的访问都是针对那个master拷贝的,当master拷贝出问题的时候,它会自动切换,这个访问不是通过IP的,而是通过Domain Name,所以对应用程序来讲,它是透明的。如果应用Read Replica,那当然可以把一些读操作放到Read Replica上面,那这个跟Multi-AZ又不太一样。

master和slave互为双写?不会的,因为它始终同时只有一个是写的,要保持数据的一致性。

Q:SQS最高是多少并发,需不需要做HA?

方国伟:一般来讲这个不是问题,你不需要做HA,SQS本身就是高可用的,而且它是Auto Scaling,我们有非常大批量的用户在用都没有问题。

关于Auto Scaling

Q:自动修复的功能,如果启动新的虚机,怎么部署代码啊?

方国伟:一般来讲有两大类方法。第一类,你把应用的代码做在AMI里面。Auto Scaling也好,还是你自己启动一个Instance也好,我们肯定会用到一个AMI,这样你新建了那个Instance里面就已经包含了你要部署的代码,你要部署的运行时环境,中间件等等。但是有的同学问,我的应用可能会有不同版本,或者改变比较多,那这个部署太不灵活了,所以我们另外还有办法,你在部署以后可以通过EC2有一个特性user data来实现,当应用部署启动Instance后,user data会帮你执行一段脚本,或者可以传进去一些参数给脚本,你他指定他从某个地方,比如S3上面下载一个新的程序的代码,然后在Instance启动之后去执行。将这两种方式结合起来,一般可以满足绝大部分用户关于动态软件和代码的需求。

Q:Auto Scaling策略需要编程实现吗?

方国伟:一般不需要。Auto Scaling实现需要用户做三个事情:

  1. 配置launch configuration,launch configuration存储了一个Instance以后,它应该是包含什么样的信息,用哪个AMI,放在哪个region里面,用哪几个AZ。
  2. 建个Auto Scaling Group,设置最少有多少个Instance,最大多少个Instance。
  3. 最后一个Scaling policy,它定义了如果CloudWatch监控到超过预值后,要做个什么操作,这个操作大部分情况下是不需要编码来做的。当然除非特别复杂,你可以定制来做一些事情。

Q:这个健康监测是AWS提供的吗?

方国伟:是通过CloudWatch提供的,用户也可以自己配置一些监控指标。

Q:启动新的EC2实例,需要加载Image,AMI。Image可以定制吗?加载自己的(custom)吗?

方国伟:当然可以的。AMI的来源有几种方式,你可以用AWS官方提供的,或者社区提供的。当然社区提供的AMI要要做安全方面检查。当然你可以自己定制AMI,我们有专门的工具和API来帮你定制。对于绝大部分用户,比较常用的方式是使用官方提供的AMI,然后在此基础上自己做镜像,而不是所有操作系统,所有环境从头开始自己来做。

Q:EC2实例的镜像(AMI)是不是可以事先准备好,使用的时候直接使用?

方国伟:当然,实例的镜像都是事先准备好的。如果你根据AMI新建一个实例,你可以通过EC2 create AMI功能根据当前运行的实例生成一个AMI,你可以把AMI存在你自己的地方。生成以后,可以用这个自动生成的AMI,每个AMI都有id,所以你在创建Auto Scaling的launch configuration时可以根据id调用需要的AMI。

Q:Auto Scaling对windows和Linux的AMI有区别吗?

方国伟:Auto Scaling使用过程在Windows、Linux上没有区别,在我们平台上面都有支持的,没有问题。

Q:SQS是顺序保证的吗?

方国伟:不保存,我们不保证first in first out,SQS能保证不丢。但是顺序保证,通常需要通过应用程序层来实现。

Q:我们需要考虑CDN吗?

方国伟:我们全球有CDN服务Cloud Front,我们全球现在应该有51个点。国内我们会用合作伙伴的CDN设施,我们现在官方推荐的是网宿。

关于AWS中国的服务

Q: AWS什么时候在中国商用?

方国伟:现阶段还处于有限预览阶段,只针对邀请客户开放。如果需求,建议联系AWS的销售人员。

Q:AWS有没有中文版?

方国伟:我们国内的版本就有中文版,如果你是有限预览用户,你可能已经看到了。如果你需要使用,你可以在www.amazonaws.cn上面申请。当然目前并不是申请了就能用,原因很多了。申请之后,我们销售可能会跟你联系,我们内部会有个排队的过程。基本上,我们会根据用户的情况来筛选,哪些用户来进入有限预览名单。

Q:(AWS)有中文版试用吗?AWS有没有针对个人开发者的一些优惠政策?例如流量或CPU消耗一定程度下是免费的?

方国伟:关于中国和国外的帐号或私有帐号的问题,我来解释下。首先,AWS没有所谓的试用帐号,任何人申请的帐号都是一样的。用户可以自己区分,这个帐号是用来做测试的,另外一个帐号做生产。对AWS来讲,对所有的帐号是一视同仁,都是生产帐号。对开发人员来讲,我们有一个免费试用套餐,英文叫free usage tier,目前这个套餐针对海外全球服务系统,那free usage tier的意思是在一定的额度下面,所有注册AWS帐号的用户,在一年之内免费使用这些资源。如果你想熟悉一下AWS的功能,你就可以用这个free usage tier。当然,free usage tier是给所有用户的,只要你注册了,新用户都享受这个服务,哪怕你一上来就是做生产,我们也会把free user tier那部分的费用,帮你从实际的帐单里面扣除。

Q:有没有渠道来申请试用呢?

方国伟:请访问www.amazonaws.cn网站,有个提交申请的链接。

Q:AWS现在还是必须使用外币信用卡才能注册使用吗?

方国伟:AWS全球账户是需要支持外币信用卡,但国内服务开放后会公布国内的支付方式。

Q:AWS在国内有没有国内建AZ?

方国伟:那当然了,我们商用的时候肯定会有多个AZ。 第一个region在北京,所以整个数据中心都会在北京地区,我们是跟合作伙伴合作的。根据我们去年12月份发布的计划,第二个region会在宁夏。

Q:有没有联系方式?

方国伟:我的微博是 @方国伟_云端,邮箱是guowfang@amazon.com 。

AWS能部署应用

Q:AWS对应用有要求吗,什么样的应用架构适合部署到AWS上?除了使用AWS的组件之外,对应用本身有没有什么要求,才能实现云应用的高可用性。

方国伟:如果你的应用只是要部署在AWS上,这个要求是非常低的,你的应用只要可以部署在虚拟环境,理论上差不多就可以运行在AWS上面。但是,如果你的应用要充分利用云计算平台的一些特性,尤其是高弹性、高可靠性、高可用性这些云的特点,那你对应用本身就需要做一些在架构上的调整。今天的讲座更多侧重在高可用性方面,6月17日还有个讲座“如何通过架构设计来体现应用本身的弹性”,这是两个不同的维度来看应用。所以说,如果你要充分利用云平台一些特性,那在应用架构上需要做些调整。(InfoQ注:6月7日在上海IC咖啡QClub技术沙龙上,方国伟与Autodesk高级软件工程师丁建将分享AWS云平台上建立规模应用的实践,你可以与两位专家当面交流,参会者将获得AWS纪念T恤及25美金AWS抵扣券,欢迎免费报名。)

Q:哪些AWS服务是可以跨region的呢?

方国伟:绝大部分AWS服务都是在一个region里面的,只有很少的服务可以跨region的。身份认证和访问控制(IAM),Route53,CloudFront(CDN),web console是跨region的。

案例资料

Q:海外的AWS案例,有一些介绍么?

方国伟:请访问aws.amazon.com上的case study资料,上面有许多案例。

Q:讲座的PPT可以提供吗?

方国伟:你回头关注一下我们的博客,我们博客会提供Link,大家可以去下载的。我们国内会有一个中文的博客,应该是blog.csdn.net/awschina。(InfoQ注:在所有注册本期在线课程的用户都会受到答谢EDM,EDM中同样有PPT下载地址)。


感谢方国伟对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT