深入剖析深入剖析深入剖析深入剖析深入剖析深入剖析深入剖析深入剖析AmazonAmazonAmazonAmazonAmazonAmazonAmazonAmazon云计算平台云计算平台云计算平台云计算平台云计算平台云计算平台云计算平台云计算平台edenhuang内容简介•深入剖析Amazon云计算平台AWS的各个主要组成部分的架构、原理、功能•比较AWS与其他著名云计算平台的差异•本PPT仅供参考,学习与交流AWS简述(1)•2006年起以WebService的形式发布,提供IT基础设施服务,后来云计算兴起,AWS成为云计算平台工业界最杰出的代表之一•覆盖全球190多个国家大量用户,AWS的数据中心覆盖美国、欧洲、巴西、亚洲日本和新加坡,EdgeLocation覆盖范围更广。•用户包括:Zynga、Dropbox、Instagram、NASA、美国国务院、纳斯达克交易所、华盛顿邮报等等AWS简述(2)•四大特征:LowCost、AgilityandInstantElasticity、OpenandFlexible、Secure•提供计算类、存储类、网络类、应用类、管理类等服务,几乎覆盖IT基础设施各个方面•AWS年营收超过10亿美元,全球最大收入的通用云计算平台AWS整体架构Compute部分•EC2虚拟机服务,世界上最大的XEN服务集群•ELB负载均衡服务•AutoScaling自动伸缩服务•EMR在EC2上构建的Hadoop的MapReduce,离线大数据量统计分析服务Compute之EC2(1)•划分地理区域(Region,全世界有8个)、可用区域(AvailableZone,AZ);AZ之间也是独立的物理基础设施(供电和冷却设备独立)。一个AZ就是一个IDC,一个Region是物理相近的IDCs•同一个Region之内基本能保证高速稳定通讯,跨Region则不然,且跨Region通讯费用较高。一般组合服务大部分都在同一个AZ。EC2Region1Region2Region3AZ1AZ3AZ3AZ2AZ3AZ2AZ1AZ2AZ1……………………………………………………………………………………Compute之EC2(2)•EC2实例架构•安全、易用的实例环境(IAM、MC、API、SSH)Compute之EC2(3)•Amazon机器映像AMI(AmazonMachineImage)•由一个操作系统和应用程序组成•AMI是EC2实例的最基础组成单元,实例可以动态切换AMI•公共AMI、私有AMI、付费AMI、共享AMI•支持多种OS的AMI•完善的AMI导入与导出机制,方便应用迁移•采用稳定成熟的XEN虚拟化技术Compute之EC2(4)•丰富的EC2实例规格选择•EC2实例的使用方式多种类型:On-Demand、Reserved、Spotbid等等(价格有所区别)1ECU=1.0-1.2GHz2007Opteronor2007XeonCPU资源SmallSmallSmallSmallLargeLargeLargeLargeExtraExtraExtraExtraLargeLargeLargeLargeHigh-CPUHigh-CPUHigh-CPUHigh-CPUMediumMediumMediumMedium……………………平台32323232/64/64/64/64位64646464位64646464位32323232/64/64/64/64位……………………CPUCPUCPUCPU1ECU1ECU1ECU1ECU4ECU4ECU4ECU4ECU8ECU8ECU8ECU8ECU5ECU5ECU5ECU5ECU……………………内存1.7G1.7G1.7G1.7G7.5G7.5G7.5G7.5G15G15G15G15G1.7G1.7G1.7G1.7G……………………存储容量160G160G160G160G850G850G850G850G1690G1690G1690G1690G350G350G350G350G……………………实例类型名m1.smalm1.smalm1.smalm1.smalllllm1.largem1.largem1.largem1.largem1.xlargem1.xlargem1.xlargem1.xlargec1.mediumc1.mediumc1.mediumc1.medium……………………High-CPUHigh-CPUHigh-CPUHigh-CPUExtraLargeExtraLargeExtraLargeExtraLarge64646464位20ECU20ECU20ECU20ECU7G7G7G7G1690G1690G1690G1690Gc1.xlargec1.xlargec1.xlargec1.xlargeCompute之EC2(5)•弹性IP机制:外网IP地址跟用户帐号关联,随时可以绑定到任一EC2实例,这样就避免机器故障修改DNS所带来的不可控的延时。Compute之ELB(1)•类似HAProxy,同时支持IPv4和IPv6,支持HTTP/HTTPS/TCP/SSL等,支持所有EC2所支持的操作系统,ELB本身具有自伸缩性(实际上ELB是一个集群服务),可以随请求数动态扩缩容。Compute之ELB(2)•ELB可以跨AZ进行调度EC2实例,但不能跨Region调度•ELB提供一个DNS域名给用户,用户再把自己的DNS域名CNAME到这个域名来进行负载均衡。•一个ELB实例的处理能力大概可以到20+K/S(短连接),比在一个m1.largeEC2(一个m1.largeEC2实例的费用跟一个ELB的费用相当)实例上部署的HAProxy要快3-4倍左右。(参考)•ELB目前的功能还不够强,比如没有固定PublicIP,对实例的调度算法过于简单,支持七层的功能还比较简单Compute之AutoScaling•EC2实例的自动伸缩服务,结合CloudWatch可以做到非常精细实例自动扩缩容。实际上AS只是管理一些扩缩容的规则配置,然后会根据这些规则不停扫描机器,自动触发EC2实例的上下线操作。Storage部分•DynamoAmazon分布式存储设计技术•S3非结构化的大数据量存储,简洁的接口强大的功能•EBS分布式永久存储块设备•StorageGateWay在企业现有存储集群与AWS的存储服务之间进行自动化数据同步基础存储架构Dynamo(1)•Dynamo是Amazon在Amazon.com和AWS实践中总结出来的一系列分布式存储系统设计技术的总称(参考)。•S3和SimpleDB都采用了Dynamo技术构建,而DynamoDB是Dynamo技术应用的最新系统,综合了S3和SimpleDB的优点。•Dynamo是一种去中心化,采取了一些P2P策略的具有很高的可用性、最终一致性的分布式存储设计技术。(也充满争议性)基础存储架构Dynamo(2)•Amazon在SOSP07'上发表了著名的论文《Dynamo:Amazon’sHighlyAvailableKey-valueStore》(详细参阅论文),得到工业界的一致赞赏(最近几年的改进和优化没有公开,估计有所折衷)。论文中很多观点与Google相应的技术有重要区别。基础存储架构Dynamo(3)•基于虚拟节点的一致性哈希分布算法•以上两种算法从效用上是等价的,表格法只是没有节点的方向性特征,需要通过master配对或者配置的方法来形成节点之间的联系。grididgrididgrididgrididipipipipsubidsubidsubidsubid0172.25.18.1001172.25.18.1012172.25.18.102……9999172.24.19.403portportportport10000100001000010000gridid=func(key)%N(N=10000)基础存储架构Dynamo(4)•时钟向量与冲突检测实际上时钟向量的方式解决一致性问题是很难做到的,对使用者来说也有一定难度,实践中往往用时间戳来作为版本新旧的简单衡量•在Google的GFS中采用的Primary-Secondnary机制,由Primary来维持和决定数据一致性会更简单可靠些。基础存储架构Dynamo(5)•Quorum机制与临时故障恢复处理N——每个数据存储的副本数W——一次写成功至少要写入的副本数R——一次读成功至少要读出的副本数只要满足W+RN,从而在可用性和容错性达到一个较好的平衡。•根据CAP理论,Quorum机制能保证一定的C,较好的A,和较好的P•采取ReadandRepair的机制修复数据基础存储架构Dynamo(6)•采用Merkle树对Dynamo中不同节点的数据进行快速比较同步,从而可以快速恢复故障较久的节点的数据到一致的状态。Merkle树实质是一个哈希二叉树,叶子结点的值表示一个数据记录(比如[key,value])的哈希值(当数据记录变化时,该哈希值也会变化),非叶子结点的值是它的两个子结点的值组成的哈希值。所以Dynamo中两个拥有相同数据记录的节点,分别构造和维护自己的Merkle树,然后通过快速比对Merkle树可以快速进行数据同步,而不需要遍历所有记录数据。(实际上维护这样一棵树的代价挺高)基础存储架构Dynamo(7)•故障节点检测与信息传播由于Dynamo是去中心化的,所以故障节点的检测不是由某个所谓的master来做,而是由平等的节点来做,而为了优化系统和减少这类通讯消耗,Dynamo引入了种子节点的设计。•引入种子节点,实际上是对去中心化的倒退,如果种子节点出问题,会对整个系统造成较大的影响。Storage之S3(1)•通过REST/SOAP接口访问S3系统(不支持posix文件系统接口),同时S3也是整个AWS里面大数据的最终存储,比如EBS的快照,AMI的镜像存储等等。•与Amazon的CDN服务CloudFront紧密结合,CloudFront可以以S3为数据源获取CDN源数据Storage之S3(2)•数据模型:user-bucket-object三级体系,有丰富ACL保护机制,bucket不能嵌套。用户可以选择bucket存放的region;bucket相当于一个存储仓库,object相当于普通文件。•object大小在1B到5TB之间,数量无限制,object的key由用户指定。Storage之S3(3)•类似SVN的版本管理功能(要额外收费)•支持多种规则过期自动删除功能,以减少空间占用和费用•跨AZ的N份存储(S3一致性不是很强)新增的object:read-after-write的一致性存量的object:最终一致性Storage之S3(4)•两种存储方式:标准冗余度(SS)与降低冗余度(RRS)。•数据加解密,支持HTTPS的上传与下载•数据内容有MD5和CRC校验•SS方式提供99.999999999%(如果是RRS方式,则是99.99%)的可靠性,99.99%的可用性保证Storage之S3(5)•S3的数据规模快速膨胀(2012年6月已经突破一万亿,参考)Storage之S3(6)Storage之EBS(1)•EC2实例中本地存储是临时存储,当实例关闭时候将被清空,EBS以本地块设备形