首页 > 代码库 > 亚马逊AWS在线系列讲座——如何在AWS云平台上构建千万级用户应用
亚马逊AWS在线系列讲座——如何在AWS云平台上构建千万级用户应用
用户选择云计算平台来构建应用的一个重要原因是云平台的高弹性和高扩展性。面向互联网的应用往往需要支撑大量用户的使用,但是构建一个高扩展性的、高可用的应用具有一一定的挑战,不过基于AWS云平台来构建应用可以相对简化这个事情。这个在线讲座将讨论如何如何充分利用云平台的特性和AWS的相关服务来构建一个可以支撑千万级用户的应用。通过讨论不同用户数量级别的应用需求和架构特点,然后结合不同的AWS的服务来满足用户访问,并最终逐渐把架构优化成为可以支持千万级用户的设计。这个演讲的目的是帮助对AWS服务有一定基础的用户进一步理解服务之间的差异以及基于AWS云平台构建高扩展性应用的关键服务及其使用注意事项。
下面是亚马逊AWS与InfoQ一起做的在线讲座讲义:
<iframe height="570" width="100%" scrolling="no" src="http://share.csdn.net/frame/5173" frameborder="0" allowfullscreen=""></iframe>
这里有当时的一些问答记录:
关于AWS在国内的服务
问:国内建Region大概需要多长时间才能建好?
方国伟:亚马逊去年发布会的时候讲了一个概念叫做“前店后厂”,引起了很多人误解,以为我们在北京没有region,宁夏有region。事实是,我们在北京有个region,现在已经建完了。目前处在有限预览阶段,正在协助邀请的部分客户上线。我们会逐步根据需要邀请更多的客户使用AWS的服务。宁夏的region今年上半年奠基了,计划以后作为中国的第二个region。
问:北京的region有几个AZ(可用区)?
方国伟:我们原则这样,如果一个region对外正式商用,会有两个或两个以上的AZ。商用的region一般都有两个或两个以上的AZ,这里一般指的是EC2的AZ,S3的数据一般会存多份,S3也有AZ的问题,但S3我们很少这么讲。
问:在美国AWS上的账户能直接转过来吗?
方国伟:不可以,国内外是完全独立的账户。AWS国内的业务,跟海外的业务的帐号是分开的,这是两套完全独立的系统,这个不是技术问题。
问:告诉我一个理由,在众多的云平台中为什么选择AWS。
方国伟:那大家知道亚马逊的一个基本原则是我们不会去评论竞争对手,这是公司的要求。用户在选择云服务商的时候的风险与买产品是不太一样的,应该要低一些,为什么呢?因为买产品,基本上是一锤子买卖,三年之内软硬件不太会换的。但是云服务却不一样,你任何时间都可以换。这个服务到底好不好,最好亲身去体验一下。亚马逊AWS会提供一个Free Usage Tier免费套餐服务,大家可以试一下。如果要做横向比较的话,你可以从几个方面来看:
第一,云服务商的运营经验和品牌。
第二,技术。技术包括两个维度,一是技术的广度,你要的技术他有没有,二是技术的深度,某一个技术做得怎么样,这是需要去评估的,而不仅仅去看产品名字、服务名字有可以了。比如同样叫RDS,但RDS与RDS之间的差别蛮大的。同样的虚拟主机,差别也是蛮大的。
第三,服务,云计算是作为一个服务而不是产品提供了,因此服务商的服务能力和品质直接影响到用户的体验。
第四,价格。各服务商的价格有高有低,还是需要你自己去比较。
问:RDS的可靠性能达到“5个9”吗?
方国伟:RDS的官方SLA是99.95%,这是写到SLA里去的。具体实际的服务水平也许会比这个SLA高一点。
问:北京的region采用多线接入?
方国伟:理论上主要的运营商,我们都会接进来,因为要满足国内的网络的实际的情况。
问:S3的性能怎么样?
方国伟:一般情况下,S3的性能不是问题,你只要往里边放数据就可以了。而且S3还可以集成CloudFront CDN服务,那性能更加不是问题了。但是某些个别情况下,你可能会觉得S3的性能需要提升,那这里有一个技巧或最佳实践,你在放S3的object,不要把object key的名字取的类似。因为系统会根据object key做哈希,如果名字取的相似,系统可能会将这些文件放到同一台物理服务器上去,这样会影响你的访问性能,你的object key越乱越好。有的时候,你自己写一个random生成器,让object key开始那几个字节完全不一样最好。
问:CloudFront在国内可以直接使用吗?
方国伟:CloudFront是一个CDN服务,在AWS全球有51个点。国内目前不会推出CloudFront服务。 在国内我们CDN的合作伙伴是网宿。当然从技术上讲,你用任何一家的CDN都可以。如果你的目标客户在海外,那你当然可以用我们海外的CloudFront服务,你国内的用户也可以使用我们海外CloudFront服务。
问:介绍下亚马逊的Message通知服务。
方国伟:亚马逊有个服务叫SNS,发送方式有很多种,有通过邮件的,短信的,http访问等都可以。我们去年推出了新的SNS服务,叫做移动推送,英文为Mobile Push。现在大家知道移动应用开发很时尚,非常流行,然后你可能需要给用户的移动设备发一个Message,那Mobile Push专门是Push给安卓手机和iOS设备的。上个礼拜,我们把Mobile Push服务升级了,为什么?通过GCM向国内的安卓设备发不太方便,所以我们在国内与百度的云推送合作来支持国内的安卓设备。还有一个更新针对Windows设备,SNS的移动推送服务现在已经支持Windows设备。
对于没有用过Mobile Push同学,我用一句话解释一下,如果向不同的移动设备发Message,一般需要跟不同平台的消息服务平台去连接。如果通过SNS,那么通过与SNS的一个API接口连就可以了,然后亚马逊后台会去跟不同的平台上的Message Push Service去连,简化了你的编程和管理。
问:EMR是跑在EC2上吗?
方国伟:这是肯定的,基本上AWS需要使用计算资源的服务都是跑在E2C上面的。如果你去用EMR就会发现在创建EMR的时候,他让你选EC2实例的大小,所以EMR那肯定是跑在EC2上面的。对那些没有用过EMR的用户来,我稍微解释一下,EMR相当于AWS上的Hadoop服务,创建EMR很简单,通过命令行或点击几次鼠标就可以实现。这样,你的重点就放在如何写Map/Reduce算法,Hadoop集群的构建和运维完全交给AWS。
问:RDS底层是用什么技术隔离?
方国伟:RDS实际上跑在EC2上面,这是通过虚拟化技术最基本的隔离,当然还有其他如网络层的隔离等。
问:AWS在国内的收费方式有哪些?
方国伟:AWS国内最终的支付方式还没有确定。国外主要是采用信用卡方式,国内有国内具体的情况,所以说我们会考虑到不同的支付方式,最终会在我们服务中正式对外发布。
关于AWS的认证与考试
问:请问AWS有哪些培训和认证服务啊?
方国伟:关于认证考试培训的问题,这个很有意思的问题,为什么呢?因为大家知道如果一个平台的使用量越来越多,平台认证的价格会越来越高,我们现在看到AWS的使用量增长非常快,而且在市场上应用也非常广,所以这个认证是会挺有市场。AWS认证目前按照三个不同的角色来划分,比如说你是开发者,我们是有开发人员认证。如果你是一个架构师,那我们架构师认证。如果你是一个做运维的,我们有运维的认证。
同时在级别主要分为三个,入门级就是初级(Associate),中级叫专家级(Professional),高级叫大师级(Master),详见这里。
如果你想更系统的了解AWS的服务,你可以参加一些AWS的培训,目前国内没有正式推出,但是应该快会推出。国内培训团队推出了一个免费的培训课程AWSome Day,建议大家有机会就去参加。(InfoQ注:6月25日AWSome Day将在成都举行,欢迎报名。)
关于认证考试,这个认证考试是机考的,要到专门的考点去考。北京的考点是在魏公村附近,这个具体的地点在注册考试时能看到。
其他问题整理
问:S3为了做图片外链,怎么绑定自己的域名?
答:一般是通过CName设置来实现。
问:非洲有没有region?
答:现在还没有,不过你们如果有需求可以联系AWS,我们会根据需求决定下一个Region在哪里建。
问:EC2可不可以支持一些Windows早期版本,如Windows XP?
答:客户端版本的Windows支持不仅仅是技术问题,还有其他商务问题在里面。AWS的Workspaces服务现在支持Windows7界面的云桌面服务。
问:AWS国内有备案要求吗?国内的何时能使用?
答:会有备案要求,因为这是在国内开展业务的要求。
问:平时使用出现问题要咨询AWS时有哪些方式能联系到aws服务器人员以便及时解决问题呢?
答: 联系到AWS多长时间能反馈取决于你有没有购买AWS的支持服务,一共有四个级别:basic,developer,business和Enterprise,不同级别的响应时间是不一样的。
问:怎么跨region建立一个可靠的private network?
答:这个暂时只能靠用户自己构建。另外,目前在美国的几个Region可以用DX连接起来。
问:AWS在电商系统上的应用如何?有成功案例么?
答:AWS非常适合电商应用,最大的案例肯定是amazon.com啦。当然除了amazon.com之外,也有许多其他,国内的有兰亭集势,Tiens等。
问:AWS有没客户群?
答:我们有Technical Support Forum,会在国内推出中文版的技术支持论坛。
问:怎么preserve我的内容在CloudFront上?不会因为内存不足或者什么原因被去掉?
答:设置TTL,并定期访问,跟内存无关。
问:S3和ElastiCache哪个响应会快?ElastiCache最大能存放多大的数据?
答:Elasticache的速度比S3快多了,一个放在磁盘,一个放在内存。Elasticache是分布式内存缓存服务,一般不会把所有数据都放在内存中。
问:ELB怎么做URL dispatch?如果ELB做不了,我自己架服务做URL dispatch的话,建议把自己的服务架在ELB前面还是后面?
答:看具体情况吧,如果用不到ELB的功能,你甚至可以不用ELB。
问:AWS对服务器的硬件有什么要求吗?
答:一般用户不用考虑这个问题,总的来讲底层是Commodity hardware,但是不同的计算实例和服务对硬件有一些差异。
问:DynamoDB有没有官方的,适用于本地开发的模拟环境?
答:有。
问:SES发邮件quota不够用怎么办?
答:如果遇到的是soft limit,那么联系我们销售申请增加上限的就行。
问:APNS 怎么实现的?需要在客户端自己装个插件实现长连接么?
答:用我们SNS的Mobile Push就可以了。