写点什么

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

  • 2014-06-03
  • 本文字数:4950 字

    阅读完需:约 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2014-06-03 02:151699
用户头像

发布了 45 篇内容, 共 14.1 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

【GreatSQL优化器-04】贪婪搜索算法浅析

GreatSQL

如何通过SD-WAN实现多云平台的高效互联?

Ogcloud

SD-WAN 多云管理 SD-WAN组网 多云互联 多云部署

synergy for mac永久密钥 附安装教程 跨平台的键鼠共享工具

理理

决战毫秒间!火山引擎联合奇游,竞技游戏快人一步

新消费日报

携手上海证券,共同见证市场活跃背景下交易服务新趋势

非凸科技

上海证券 非凸科技

HyperWorks基于 Shrink Warp Mesh 的零部件网格剖分

智造软件

仿真 仿真软件 Hypermesh

【JIT/极态云】技术文档--标准组织

武汉万云网络科技有限公司

低代码

【JIT/极态云】技术文档--钉钉自建组织

武汉万云网络科技有限公司

低代码

TiDB v8.x Tiproxy组件

TiDB 社区干货传送门

8.x 实践

Movist Pro:超高清视频播放引擎,流畅播放各类视频!

理理

双 11 营销活动数量、转化率双提升,火山引擎数智平台为此都做了什么?

字节跳动数据平台

ticdc 同步延迟指标与原理解析

TiDB 社区干货传送门

6.x 实践

淘宝API接口探索:图片搜索拍立淘与商品评论的深度挖掘

代码忍者

API 接口 pinduoduo API

Paste for Mac高效剪切板管理器,v4.1.2中文激活版

理理

YOLOP 多任务算法详解

地平线开发者

自动驾驶 算法

PD虚拟机工具箱 Parallels Toolbox mac一键激活版 附永久密钥

理理

探讨拼多多商品 API 接口:运用及收益

科普小能手

拼多多 API API 接口 拼多多商品详情接口 拼多多API

“老爷机”训不动Lora?一台云电脑就可以让你轻松炼丹

Finovy Cloud

LoRa 云电脑

山西省等保测评公司名单【2025】

行云管家

网络安全 等保 山西

TiDB连接的探活功能探索

TiDB 社区干货传送门

TiDB 源码解读 6.x 实践 数据库连接

TiDB基于硬件部署估算 (RU)容量功能探索

TiDB 社区干货传送门

TiDB 源码解读 新版本/特性解读

好用的数据分析统计Minitab Express for mac激活补丁下载安装

理理

企业采购比价:品牌采购时借用淘宝商品详情接口来采购比价

tbapi

淘宝商品详情接口

DR Auto-Sync:TiDB 同城两中心自适应同步复制技术解析

TiDB 社区干货传送门

新版本/特性解读

SD-WAN技术如何优化TikTok直播网络?

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 tiktok直播 tiktok直播网络

Premiere Pro 2024 破解资源 PR2024中文版安装包(mac/win永久使用)

理理

Presentify for mac(电子教鞭) v4.1.5激活版

理理

喜报 | XSKY 星辰天合顺利通过国家级专精特新“小巨人”复核

XSKY星辰天合

软件定义存储

【等保小知识】信息系统怎么定义?等保测评多久一次?

行云管家

信息系统 等保 等保测评

如何理解ArkTS不支持structural typing

威哥爱编程

华为 HarmonyOS Open Harmony ArkTS HarmonyOS NEXT

Navicat Premium:数据库管理全能王,一键掌控多元数据库世界

理理

InfoQ在线课堂:基于AWS云平台的高可用应用设计_亚马逊云科技_包研_InfoQ精选文章