Download presentation
Presentation is loading. Please wait.
1
亚马逊云计算AWS (Amazon Web Service)
电子工业出版社 刘鹏主编《云计算》教材配套课件6
2
概述 Amazon的云从哪里来 Amazon提供的云计算服务 AWS的应用案例 AWS的业务流程 AWS的体系架构及关键技术
3
Amazon的云从哪里来? 一个简单的想法 IaaS:将硬件设备等基础资源封装成服务供用户使用 主要思想:虚拟 优势:动态申请,资源无限
Jeff Barr认为,云计算是分层次和类别的,每一类公司提供的云计算的服务都不一样,亚马逊是IT基础架构云计算服务提供商。在网络互联的需求之上,直接就是亚马逊的最底层的IT基础架构AWS(Amazon Web Services),包括计算、存储、内容分发等;在AWS的基础上,用户才可以构建自己的应用层,这些应用层包括构建数据库、应用服务器;最上一层才是应用软件。他表示,目前市场上很多云计算服务提供商所提供的服务,仅仅是不同层面的一部分解决方案。
4
Amazon提供的云计算服务 弹性计算云EC2 简单存储服务S3 简单数据库服务Simple DB 简单队列服务SQS
弹性MapReduce服务 内容推送服务CloudFront 电子商务服务DevPay 灵活支付服务FPS
5
AWS的应用案例——SmugMug 为什么选择AWS
SmugMug是一家在线照片存储共享网站,拥有数亿照片资源和几十万付费用户。业务量的急剧增长导致该新兴公司无法承受巨额的基础设施开销,SmugMug选择了Amazon的EC2服务和S3服务。应用AWS后,仅需50人即可完成如此大的业务量。
6
SmugMug的基本架构 完成数据迁移后,由于不需再考虑基础设施问题,SmugMug将公司的主要精力集中在提高服务质量上。目前SmugMug向用户提供了三种照片访问方式[35]: SmugMug以代理的身份处理用户访问请求 SmugMug对用户访问请求进行重定向 利用有关API直接对存储在S3中的数据进行访问。 在这三种访问方式中,以第一种方式访问的用户超过99%。也就是说几乎所有的用户都选择这种访问方式,这也正是SmugMug所期待的结果,因为它希望S3对于普通用户来说是透明的。SmugMug公司还引入了EC2服务,使客户可以利用EC2来完成图片的在线编辑和处理。 将基础设施部分外包给亚马逊后,SmugMug的基础架构如图 4‑33所示。几乎所有的用户都是采用直接访问SmugMug的方式处理照片,实际的照片处理过程对于用户是透明的。SmugMug的系统后台则如虚线框所示。主要包括三个部分[37]:队列服务,亚马逊AWS和控制器。目前使用的AWS包括EC2和S3。而队列服务和控制器则由SmugMug提供。SmugMug并没有采用SQS而是建立了自己的队列服务,控制器每隔固定的时间就会自动决定增加还是减少EC2实例。整个SmugMug 的系统具有高度的智能型,绝大部分操作都会自动完成。这也是为什么SmugMug仅用几十人就可以完成如此巨大的工作量。
7
AWS的业务流程 注册账户 资源申请 创建虚拟节点 将虚拟节点映射到物理节点 分割算法 数据处理 数据同步
8
基础存储架构Dynamo Dynamo在Amazon服务平台中的地位 Dynamo架构的主要技术 问题 采取的相关技术 数据均衡分布
改进的一致性哈希算法,数据备份 数据冲突处理 向量时钟(vector clock) 临时故障处理 Hinted handoff(数据回传机制),参数(W,R,N)可调的弱quorum机制 永久故障后的恢复 Merkle哈希树 成员资格以及错误检测 基于gossip的成员资格协议和错误检测
9
数据均衡分布的问题 一致性哈希算法 优势: --负载均衡 --屏蔽节点处理能力差异
10
Dynamo的数据冲突处理 最终一致性模型 向量时钟 (Vector Clock)
11
Dynamo的临时故障处理机制 读写参数W、R、N N:系统中每条记录的副本数 W:每次记录成功写操作需要写入的副本数
满足R+W>N,用户即可自行配置R和W 优势:实现可用性与容错性之间的平衡 Dynamo 的冗余副本读写策略比较有趣,它定义了:N,W,R三个参数。其中N代表系统中每条记录的副本数,W代表每次记录成功写操作需要写入的副本数,R代表每次记录读请求最少需要读取的副本数。只要W+R >N就可以保证数据的一致性。因为W+R>N时读写总会有交集——必定最少有W+R-N个读请求会落到被写的副本上,所以必然会读到“最后”被更新的副本数据(至于谁 “最后”的判断需采用时间戳或者时钟向量等技术完成——有逻辑关系先后由时钟向量判断,否则简单的用时间戳先后判断.详情去看dynamo论文吧)。这种做法相比我们最朴素的想法——我们直观的想法一定认为如果系统要求记录冗余N份,那么每次就写入N份,而在读请求时读取任意一份可用记录即可——要更安全,也更灵活。说其更安全是指数据一致性更能被保证:比如说客户写入一条记录,该记录有三个副本在三个不同点上,但是其中一个点临时故障了,因此记录没有被写入/更新。那么在对该记录再读取时,如果取两点(R=2)则必然会读取到最少一个正确的值(临时故障点有可能在读是恢复,那么读出的值则不存在或者不是最新的;若临时故障点还未恢复,则读请求无法访问其上副本)。而使用我们传统方法可能读到发生临时故障的那点,此刻就有可能读出现错误记录(旧的或者不存在),因此可以看到加大W,R可提高系统安全性;说其更灵活则是指可通过配置N,W,R这几个参数以满足包括访问方式、速度和数据安全等迥异需求的各种场景:比如对于写多读少的操作,可将W配低,R配高;想法对于写少读多的操作,则可将W配高,R配低
12
Dynamo的永久性故障恢复 Merkle哈希树技术
13
成员资格及错误检测 基于Gossip协议的成员检测机制
Dynamo中的每个节点就是Dynamo的一个成员,亚马逊为了使系统间数据的转发更加迅速(减少数据传送时延,增加响应速度),规定每个成员节点都要保存其他节点的路由信息。由于机器或人为的因素,系统中成员的加入或撤离时常发生。为了保证每个节点保存的都是Dynamo中最新的成员信息,所有节点每隔固定时间(1秒)就要利用一种类似于gossip(闲聊)机制[1]的方式从其他节点中任意选择一个与之进行通信。连接成功的话双方就交换各自保存的包括存储数据情况、路由信息在内的成员信息
14
弹性计算云EC2 EC2是什么 EC2的主要特性 EC2基本架构及主要概念 EC2应用实战
15
EC2是什么 EC2(Elastic Compute Cloud) EC2的场景描述
想象一个广阔空间充满了服务器系统,所有网路连结在一起。坐在你的单一工作站,你创建一个虚拟机的形象,它定义了一个1.2 GHz主频处理器,1.7GB内存和一个160 GB的硬盘的虚拟机运行Linux,并且预装你特别用来压缩大量待处理数据的软件。你部署他对外服务,并且管理这些服务器。在将来某个时间, 你的数据挖掘操作将获得大量的数据矩阵。你指示服务实例化50部虚拟机,并释放每一个数据矩阵中。在几秒钟内, 50部1.2 GHz主频处理器都将积极处理你的的数据。他们完成后,他们的把结果存放在一个预先指定的储存点,然后消失。
16
EC2的主要特性 灵活性:可自行配置运行的实例类型、数量,还可以选择实例运行的地理位置。可以根据用户的需求随时改变实例的使用数量。
低成本:按小时计费 安全性:SSH、可配置的防火墙机制、监控等 易用性:用户可以根据亚马逊提供的模块自由构建自己的应用程序,同时EC2还会对用户的服务请求自动进行负载平衡 容错性:弹性IP 灵活性:EC2允许用户对运行的实例类型、数量自行配置,还可以选择实例运行的地理位置。可以根据用户的需求随时改变实例的使用数量。 低成本:EC2使得企业不必为暂时的业务增长而购买额外的服务器等设备。EC2的服务都是按小时来收费的,而且价格相当合理。 安全性:EC2向用户提供了一整套的安全措施,包括基于密钥对机制的SSH方式访问,可配置的防火墙机制等。同时允许用户对它的应用程序进行监控。 易用性:用户可以根据亚马逊提供的模块自由构建自己的应用程序,同时EC2还会对用户的服务请求自动进行负载平衡。 容错性:利用系统提供的诸如弹性IP地址之类的机制,EC2在最大程度上保证故障发生时用户服务仍能维持在稳定的水平。
17
EC2的几个重要概念(1) Amazon机器映像AMI(Amazon Machine Image)
——由一个操作系统和当虚拟机启动时你想要预 先载入的任何的应用程序组成。 ——AMI是用户整个云计算平台运行的基础,用户 使用EC2服务的第一步就是要创建一个自己的AMI。 ——公共AMI、私有AMI、付费AMI、共享AMI
18
EC2的几个重要概念(2) 实例Instance:用户创建好AMI后,实际运行的系统 资源 Small Large Extra Large
High-CPU Medium High-CPU 平台 32位 64位 CPU 1ECU 4ECU 8ECU 5ECU 20ECU 内存 1.7G 7.5G 15G 7G 存储容量 160G 850G 1690G 350G 实例类型名 m1.small m1.large m1.xlarge c1.medium c1.xlarge
19
EC2的几个重要概念(3) 弹性块存储EBS(Elastic Block Store) ——卷,每个EBS最多创建20个卷 ——快照
20
EC2的几个重要概念(4) 区域
21
EC2的基本架构
22
EC2应用实战 注册用户,选择支付方式 使用EC2的几个前提条件 Java Runtime Environment
Amazon EC2 command-line tools PuTTY & PuTTYgen 配置工具 运行实例
23
简单存储服务S3 S3(Simple Store Service)的设计思路 数据一致性模型
24
S3的设计思路(1) S3为任意类型的文件提供临时或永久的存 储服务 非传统关系数据库存储模式 ——简单、高效 ——存储、读取,非查询
它没有目录和没有文件名-只是一个大空间
25
S3的设计思路(2) 基本概念 ——对象:S3的基本存储单元(数据、元数据),数据类型任意 ——键:对象的唯一标识符
S3中元数据存储的是对象数据内容的附加描述信息,这些信息可以是系统默认定义的系统元数据(system metadata),也可以是我们自定义的用户元数据(user metadata)。其中用户元数据的大小不得超过2048字节。 元数据是通过一对键-值(name-value)集合来定义的。S3中元数据的处理由用户自己完成,系统并不干预。亚马逊对于对象存储的内容没有限制,但每个对象最大容量目前被限制在5GB,且在使用UTF-8编码时对象名不能超过1024字节。重命名操作在对象中无效。对象数据的实际存储方式对于用户来说是不透明的,也就是说一旦用户对象被创建并添加数据,我们就无法对数据的某一子部分直接进行修改。间接的修改办法就是重新创建对象并向其中添加新的数据。
26
S3的设计思路(3)
27
S3的数据一致性模型 冗余存储 最终一致性模型 在数据被充分的传播到所有的存放节点之前返回给用户的仍是原数据
28
简单队列服务SQS(1) 目标:解决低耦合系统间的通信问题,支持分布式计算机系统之间的工作流 特点:简单、无处不在 处理端:EC2上的AMI
——“在互联网的所有计算机不用安装任何软件或特殊防火墙配置就可以增加或读消息” 处理端:EC2上的AMI 要想构建一个灵活且可扩展的系统,低耦合度是很有必要的。因为只有系统各个组件之间的关联度尽可能低才可以根据系统需要随时从系统中增加或者删除某些组件。但松散的耦合度也带来了组建之间的通信问题,如何实现安全、高效的通信是设计一个低耦合度的分布式系统所必须考虑的问题。简单队列服务(Simple Queue Service,以下简称SQS)是亚马逊为了解决其云计算平台之间不同组件的通信而专门设计开发的
29
简单队列服务SQS(2) 机制: ——冗余存储,基于加权随机分布的消息取样 ——并发管理和故障排除,消息的可见性超时值与生命周期
30
简单队列服务SQS(3)
31
简单数据库服务SimpleDB SDB与S3的区别 SDB与传统关系数据库的区别 SDB的基本结构及主要概念
32
SDB与S3的区别 S3是专为大型,非结构化的数据块设计的 SimpleDB是为复杂的,结构化数据建立的, 支持数据的查找、删除、插入等操作
33
SDB与关系数据库的区别(1) 传统的关系数据库——表结构 SDB树状结构
34
SDB的基本结构
35
SDB与关系数据库的区别(2) 新特性: 不能完成的操作: ——无需预定义模式 ——没有事务的概念 ——单个属性允许有 多个值
——单个属性允许有 多个值 ——支持自动索引 不能完成的操作: ——没有事务的概念 ——不支持连接操作 ——实际存储的数据类型过于单一 ——查询结果只包含条目名称而不包括相应属性值,返回结果不支持排序操作
36
总结——AWS的结合使用
37
中国云计算网站 http://www.chinacloud.cn
本讲到此结束 欢迎访问 中国云计算网站 欢迎使用 《云计算》教材 电子工业出版社 刘鹏 主编
Similar presentations