1、of44云 计 算(第三版)CLOUD COMPUTING Third Edition第 3 章Amazon 云计算 AWS (三)of443.1 基础存储架构Dynamo3.2 弹性计算云EC23.3 简单存储服务S33.4 非关系型数据库服务SimpleDB和DynamoDB3.5 关系数据库服务RDS3.6 简单队列服务SQS3.7 内容推送服务CloudFront3.8 其他Amazon云计算服务3.9 AWS应用实例3.10 小结of443.5 关系数据库服务RDS3.5.1 RDS的基本原理3.5.2 RDS的使用of444RDS的基本原理3.5 关系数据库服务RDS网络CPUCP
2、UCPU内存内存内存硬盘硬盘硬盘Amazon RDS将MySQL数据库移植到集群中,在一定的范围内解决了关系数据库的可扩展性问题。MySQL集群方式采用了Share-Nothing架构。每台数据库服务器都是完全独立的计算机系统,通过网络相连,不共享任何资源。这是一个具有较高可扩展性的架构,当数据库处理能力不足时,可以通过增加服务器数量来提高处理能力,同时多个服务器也增加了数据库并发访问的能力。of4453.5 关系数据库服务RDSRDS的基本原理集群MySQL小表1表单划分Sharding小表2小表n存储于数据库服务器存储于数据库服务器存储于数据库服务器表单主要根据业务的需要进行针对性的划分,
3、对数据库的管理人员提出了非常高的要求,如果划分得不科学,则查询经常会跨表单和服务器,性能就会严重下降。of446Slave ASlave BSlave CMaster BMaster A主从备份客户端客户端客户端写写读RDS的基本原理3.5 关系数据库服务RDS集群MySQL通过主从备份和读副本技术提高可靠性和数据处理能力。瘫痪升级并发处理of443.5 关系数据库服务RDS3.5.1 RDS的基本原理3.5.2 RDS的使用of448RDS的使用3.5 关系数据库服务RDS从用户和开发者的角度来看,RDS和一个远程MySQL关系数据库没什么两样。Amazon将RDS中的MySQL服务器实例称
4、做DB Instance,通过基于Web的API进行创建和管理,其余的操作可以通过标准的MySQL通信协议完成。创建DB Instance时还需要定义可用的存储,存储范围为5GB到1024GB,RDS数据库中表最大可以达到1TB。可以通过两种工具对RDS进行操作:命令行工具和兼容的MySQL客户端程序命令行工具是Amazon提供的Javamazon网站下载。MySQL客户端是可以与MySQL服务器进行通信的应用程序of443.1 基础存储架构Dynamo3.2 弹性计算云EC23.3 简单存储服务S33.4 非关系型数据库服务SimpleDB和DynamoDB3.5 关系数据库服务RDS3.6
5、 简单队列服务SQS3.7 内容推送服务CloudFront3.8 其他Amazon云计算服务3.9 AWS应用实例3.10 小结Simple Queue Service,SQSof443.6 简单队列服务SQS3.6.1 SQS的基本模型3.6.2 SQS的消息of4412SQS的基本模型3.6 简单队列服务SQS队列消息1消息2消息3消息n三个组成部分系统组件Component队列Queue消息Messageof4413SQS的基本模型3.6 简单队列服务SQS队列消息1消息2消息3消息n系统组件Component系统组件是SQS的服务对象,而SQS则是组件之间沟通的桥梁既可以是消息的发送
6、者,也可以是消息的接收者of4414SQS的基本模型3.6 简单队列服务SQS队列消息1消息2消息3消息n队列Queue队列是存放消息的容器,类似于S3中的桶队列的数目是任意的,创建队列时用户必须给其指定一个在SQS账户内唯一的名称队列在传递消息时会尽可能 “先进先出”of4415SQS的基本模型3.6 简单队列服务SQS队列消息1消息2消息3消息n消息Message消息是发送者创建的具有一定格式的文本数据,接收对象可以是一个或多个组件消息的大小是有限制的,但是消息的数量并未做限制of4416SQS的基本模型3.6 简单队列服务SQS在SQS中,消息和队列是最重要的两个概念。不过SQS允许用户
7、在消息中添加有关的序列数据,对于数据发送顺序要求比较高的用户可以在发送消息之前向其中加入相关信息。队列消息1消息2消息3消息nof443.6 简单队列服务SQS3.6.1 SQS的基本模型3.6.2 SQS的消息of4418SQS的消息3.6 简单队列服务SQS消息IDMessage ID接收句柄Receipt Handle消息体Body消息体MD5摘要MD5 of Body由系统返回给用户,用来标识队列中的不同消息。当从队列中接收消息时就会从消息那里得到一个接收句柄,这个句柄可以用来对消息进行删除等操作。消息的正文部分,需要注意的是消息存放的是文本数据并且不能是URL编码方式。消息体字符串的
8、MD5校验和。消息的格式of4419SQS的消息3.6 简单队列服务SQS消息取样队列中的消息是被冗余存储的,同一个消息会存放在系统的多个服务器上。其目的是为了保证系统的高可用性,但这会给用户查询队列中的消息带来麻烦。为了解决该问题,SQS采用了基于加权随机分布(Weighted Random Distribution)的消息取样当用户发出查询队列中消息的命令后,系统在所有的服务器上使用基于加权随机分布算法随机地选出部分服务器,然后返回这些服务器上保存的所查询的队列消息副本。of4420发出查询请求返回查询结果A B C队列ABCDAB服务器1AB服务器2AB服务器3AB服务器4SQS的消息3
9、.6 简单队列服务SQS当消息数量较少时,SQS进行消息取样时可能会出现返回结果不准确的现象但由于消息采样具有随机性,只要用户一直查询下去,总会查询到所有的消息。of4421不可见拓展重新计时可见消息生命周期结束超过4天接收消息未删除终止计时时间到时间未到消息删除未接收SQS的消息3.6 简单队列服务SQS扩展操作就是将计时器按照新设定的值重新计时,终止就是将当前的计时过程终止,直接将消息由不可见变为可见。可见性表明该消息可以被所有的组件查看,可见性超时值相当于一个计时器,在设定好的时间内,发给用户的消息对于其他所有的组件是不可见的。of443.1 基础存储架构Dynamo3.2 弹性计算云E
10、C23.3 简单存储服务S33.4 非关系型数据库服务SimpleDB和DynamoDB3.5 关系数据库服务RDS3.6 简单队列服务SQS3.7 内容推送服务CloudFront3.8 其他Amazon云计算服务3.9 AWS应用实例3.10 小结基于Amazon云计算平台实现的内容分发网络。借助Amazon部署在世界各地的边缘节点,用户可以快速、高效地对由CloudFront提供服务的网站进行访问。CloudFrontof443.7 内容推送服务CloudFront3.7.1 CDN3.7.2 CloudFrontof4425传统的网络服务模式中,用户和内容提供商位于服务的两端,网络服务
11、提供商将两者联系起来。在这种情况下,网络服务提供商仅仅起“桥梁”作用。CDN3.7 内容推送服务CloudFront本地DNSDNS服务器网站服务器提交所访问网站域名发出解析请求返回所访问网站的IP返回所访问网站的IP利用网站IP进行访问12345of4426CDN3.7 内容推送服务CloudFront用户在发出服务请求后,需要经过DNS服务器进行域名解析后得到所访问网站的真实IP,然后利用该IP访问网站。在这种模式中,世界各地的访问者都必须直接和网站服务器连接才可以访问相关内容,存在明显的缺陷。首先其次最后网站服务器可以容纳的访问量是有限的这种模式中没有考虑访问者的地域问题使用不同网络服务
12、提供商服务的用户之间的互访速度也会受到限制CDN技术通过将网站内容发布到靠近用户的边缘节点,使不同地域的用户在访问相同网页时可以就近获取。解决办法of4427CDN3.7 内容推送服务CloudFront本地DNSDNS服务器智能DNS负载均衡系统边缘节点网站服务器提交所访问网站域名1发出解析请求2重定向3返回边缘节点的IP4返回边缘节点的IP5返回边缘节点的IP6利用边缘节点访问7通过内部DNS解析得到IP并向服务器发出请求8返回请求内容9返回请求内容10DNS在对域名进行解析时不再向用户返回网站服务器的IP,而是返回了由智能CDN负载均衡系统选定的某个边缘节点的IP。of4428CDN3.
13、7 内容推送服务CloudFront这种访问模式的好处主要有以下几点:好处一好处二好处三将网站的服务流量以比较均匀的方式分散到边缘节点中,减轻了网站源服务器的负担。由于边缘节点与访问者的地理位置较近,访问速度快。智能DNS负载均衡系统和各个边缘节点之间始终保持着通信联系,可以确保分配给用户的边缘节点始终可用且在允许的流量范围之内。of4429CDN3.7 内容推送服务CloudFrontCDN的实现需要多种网络技术的支持,主要包括以下几种:负载均衡技术分布式存储缓存技术将网站的服务流量以比较均匀的方式分散到边缘节点中,减轻了网站源服务器的负担。由于边缘节点与访问者的地理位置较近,访问速度快。智
14、能DNS负载均衡系统和各个边缘节点之间始终保持着通信联系,可以确保分配给用户的边缘节点始终可用且在允许的流量范围之内。of443.7 内容推送服务CloudFront3.7.1 CDN3.7.2 CloudFrontof4431CloudFront3.7 内容推送服务CloudFrontCloudFront正是通过Amazon设在全球的边缘节点来实现CDN的,但是较普通的CDN而言,它的优势无疑是巨大的。首先CloudFront的收费方式和Amazon的其他云计算收费方式一样是按用户实际使用的服务来收费,这尤其适合那些资金缺乏的中小企业。其次CloudFront的使用非常简单,只要配合S3再加
15、上几个简单的设置就可以完成CDN的部署of4432CloudFront3.7 内容推送服务CloudFront对象Object源服务器Origin Server分发Distribution利用CloudFront进行分发的任意一个文件存储需要分发文件的位置作用是在CloudFront服务和源服务器之间建立一条通道别名指向CNAME边缘节点位置Edge Location有效期Expiration系统分配给用户域名的一个别名实际的边缘节点服务器位置文件副本在边缘节点上的存放时间of4433CloudFront3.7 内容推送服务CloudFrontCloudFront边缘节点S3利用相关链接向服务器1给该访问请求分配边缘节点2边缘节点上无请求内容则向S3发出请求3返回请求内容的副本4返回请求内容5CloudFront在此处就相当于CDN中的智能DNS负载均衡系统,用户实际是和CloudFront进行服务交互而不是直接和S3中的原始文件进行交互。CloudFront与其他一些AWS不同的是,它只接受安全的HTTPS方式而不接受HTTP方式进行访问,这又进一步提高了安全性。