of44第3章Amazon云计算AWS(二)of44《云计算》第三版配套PPT课件目录3.1基础存储架构Dynamo3.2弹性计算云EC23.3简单存储服务S33.4非关系型数据库服务SimpleDB和DynamoDB3.5关系数据库服务RDS3.6简单队列服务SQS3.7内容推送服务CloudFront3.8其他Amazon云计算服务3.9AWS应用实例3.10小结of44《云计算》第三版配套PPT课件3.3简单存储服务S33.3.1S3的基本概念和操作3.3.2S3的数据一致性模型3.3.3S3的安全措施of44《云计算》第三版配套PPT课件4S3的基本概念和操作3.3简单存储服务S3桶对象对象对象数据元数据键访问控制简单存储服务(SimpleStorageServices,S3)构架在Dynamo之上,用于提供任意类型文件的临时或永久性存储。S3的总体设计目标是可靠、易用及低成本。S3存储系统的基本结构,其中涉及两个基本概念:桶Bucket对象Objectof44《云计算》第三版配套PPT课件5S3的基本概念和操作3.3简单存储服务S3桶Bucket桶是用于存储对象的容器,其作用类似于文件夹,但桶不可以被嵌套,即在桶中不能创建桶。目前,Amazon限制了每个用户创建桶的数量,但没有限制每个桶中对象的数量。桶的名称要求在整个AmazonS3的服务器中是全局唯一的,以避免在S3中数据共享时出现相互冲突的情况。在对桶命名时,建议采用符合DNS要求的命名规则,以便与CloudFront等其他AWS服务配合使用。of44《云计算》第三版配套PPT课件6S3的基本概念和操作3.3简单存储服务S3对象Object元数据名称名称含义last-modified对象被最后修改的时间ETag利用MD5哈希算法得出的对象值Content-Type对象的MIME(多功能网际邮件扩充协议)类型,默认二进制/八位组Content-Length对象数据长度,以字节为单位任意类型,但大小会受到对象最大容量的限制数据内容的附加描述信息,通过名称-值(name-value)集合的形式来定义数据元数据of44《云计算》第三版配套PPT课件7S3的基本概念和操作3.3简单存储服务S3每个对象在所在的桶中有唯一的键。将桶名和键相结合的方式,可以标识每个对象。键在对象创建后无法被更改。of44《云计算》第三版配套PPT课件8S3的基本概念和操作3.3简单存储服务S3S3中支持对桶和对象的操作,主要包括:Get、Put、List、Delete和Head。下图列出了五种操作的主要内容。操作目标GetPutListDeleteHead桶获取桶中对象创建或更新桶列出桶中所有键删除桶—对象获取对象数据和元数据创建或更新对象—删除对象获取对象元数据表3-3S3的主要操作of44《云计算》第三版配套PPT课件3.3简单存储服务S33.3.1S3的基本概念和操作3.3.2S3的数据一致性模型3.3.3S3的安全措施of44《云计算》第三版配套PPT课件10S3的数据一致性模型3.3简单存储服务S3在数据被充分传播到所有的存放节点之前,服务器返回给用户的仍是原数据,此时用户操作可能会出现后面几种情况:与其构建的基础Dynamo相同,S3中采用了最终一致性模型。of44《云计算》第三版配套PPT课件11S3的数据一致性模型3.3简单存储服务S3用户操作结果1写入一个新的对象并立即读取它服务器可能返回“键不存在”2写入一个新的对象并立即列出桶中已有的对象该对象可能不会出现在列表中3用新数据替换现有的对象并立即读取它服务器可能返回原有的数据4删除现有的对象并立即读取它服务器可能返回被删除的数据5删除现有的对象并立即列出桶中的所有对象服务器可能列出被删除的对象of44《云计算》第三版配套PPT课件3.3简单存储服务S33.3.1S3的基本概念和操作3.3.2S3的数据一致性模型3.3.3S3的安全措施of44《云计算》第三版配套PPT课件S3向用户提供包括S3的安全措施身份认证(Authentication)访问控制列表(ACL)of44《云计算》第三版配套PPT课件14S3的安全措施3.3简单存储服务S3身份认证(Authentication)HMAC-SHA1数字签名加密Hash函数共享密钥的消息认证协议数据完整性数据可靠性数据安全性of44《云计算》第三版配套PPT课件15S3的安全措施3.3简单存储服务S3身份认证(Authentication)新用户注册时,Amazon会给每个用户分配一个AccessKeyID和一个SecretAccessKey。AccessKeyID是一个20位的由字母和数字组成的串,SecretAccessKey是一个40位的字符串。AccessKeyID用来确定服务请求的发送者,SecretAccessKey参与数字签名过程,用来证明用户是发送服务请求的账户的合法拥有者。AccessKeyID时间戳用户数据服务请求字符串SecretAccessKey数字签名A服务请求字符串数字签名A服务请求字符串计算发送内容用户端HMAC服务请求字符串SecretAccessKeySecretAccessKeyAccessKeyID服务请求字符串数字签名AS3服务器数字签名BHMAC计算服务器端A=B,通过认证,否则未通过of44《云计算》第三版配套PPT课件17S3的安全措施3.3简单存储服务S3访问控制列表是S3提供的可供用户自行定义的访问控制策略列表。S3的访问控制策略(ACP)提供如下所列的五种访问权限。访问控制列表(AccessControlList)权限允许操作目标具体权限内容READ桶列出已有桶对象读取数据及元数据WRITE桶创建、覆写、删除桶中对象READ_ACP桶读取桶的ACL对象读取对象中的ACLWRITE_ACP桶覆写桶的ACP对象覆写对象的ACPFULL_CONTROL桶允许进行以上所有操作,是S3提供的最高权限对象of44《云计算》第三版配套PPT课件18of44《云计算》第三版配套PPT课件19S3的安全措施3.3简单存储服务S3所有者(Owner)个人授权用户(User)组授权用户(Group)所有者是桶或对象的创建者,默认具是WRITE_ACP权限。所有者默认就是最高权限拥有者。两种授权方式,一种是通过电子邮件地址授权的用户,另一种是通过用户ID进行授权。一种是AWS用户组,它将授权分发给所有AWS账户拥有者;另一种是所有用户组,这是一种有着很大潜在危险的授权方式。S3中有三大类型的授权用户of44《云计算》第三版配套PPT课件目录3.1基础存储架构Dynamo3.2弹性计算云EC23.3简单存储服务S33.4非关系型数据库服务SimpleDB和DynamoDB3.5关系数据库服务RDS3.6简单队列服务SQS3.7内容推送服务CloudFront3.8其他Amazon云计算服务3.9AWS应用实例3.10小结of44《云计算》第三版配套PPT课件3.4非关系型数据库服务SimpleDB和DynamoDB3.4.1非关系型数据库与传统关系数据库的比较3.4.2SimpleDB3.4.3DynamoDB3.4.4SimpleDB和DynamoDB的比较of44《云计算》第三版配套PPT课件22非关系型数据库与传统关系数据库的比较3.4非关系型数据库服务SimpleDB和DynamoDB传统的关系数据库非关系型数据库数据模型对数据有严格的约束key和value可以使用任意的数据类型数据处理满足CAP原则的C和A,在P方面很弱满足CAP原则的A和P,而在C方面比较弱接口层以SQL语言对数据进行访问的,提供了强大的查询功能,并便于在各种关系数据库间移植通过API操作数据,支持简单的查询功能,且由于不同数据库之间API的不同而造成移植性较差of44《云计算》第三版配套PPT课件23非关系型数据库与传统关系数据库的比较3.4非关系型数据库服务SimpleDB和DynamoDB总结:关系型数据库非关系型数据库优点缺点优点缺点具有高一致性,在ACID方面很强,移植性很高可扩展性方面能力较弱具有很高的可扩展性,具有很好的并发处理能力缺乏数据一致性保证,处理事务性问题能力较弱难以处理跨表、跨服务器的查询of44《云计算》第三版配套PPT课件3.4非关系型数据库服务SimpleDB和DynamoDB3.4.1非关系型数据库与传统关系数据库的比较3.4.2SimpleDB3.4.3DynamoDB3.4.4SimpleDB和DynamoDB的比较of44《云计算》第三版配套PPT课件25SimpleDB3.4非关系型数据库服务SimpleDB和DynamoDBSimpleDB基本结构图如下,包含了域、条目、属性、值等概念。值值值值属性1属性2条目1条目2域1值值值值属性3属性4条目3条目4域2域3……用户账户of44《云计算》第三版配套PPT课件26SimpleDB3.4非关系型数据库服务SimpleDB和DynamoDB但域的划分也会为数据操作带来一些限制,是否划分域需要综合多种因素考虑。值值值值属性1属性2条目1条目2域11.域(Domain)域是用于存放具有一定关联关系的数据的容器,其中的数据以UTF-8编码的字符串形式存储。每个用户账户中的域名必须是唯一的,且域名长度为3~255个字符。每个域中数据的大小具有一定的限制。of44《云计算》第三版配套PPT课件27SimpleDB3.4非关系型数据库服务SimpleDB和DynamoDB操作上具有极大的灵活性,用户可以随时创建、删除以及修改条目的内容值值值值属性1属性2条目1条目2域12.条目(Item)条目对应着一条记录,通过一系列属性来描述,即条目是属性的集合。在每个域中,条目名必须是唯一的与关系数据库不同,SimpleDB中不需要事先定义条目的模式,即条目由哪些属性来描述。of44《云计算》第三版配套PPT课件28SimpleDB3.4非关系型数据库服务SimpleDB和DynamoDB值值值值属性1属性2条目1条目2域13.属性(Attribute)属性是条目的特征,每个属性都用于对条目某方面特性进行概括性描述。每个条目可以有多个属性。属性的操作相对自由,不用考虑该属性是否与域中的其他条目相关。of44《云计算》第三版配套PPT课件29SimpleDB3.4非关系型数据库服务SimpleDB和DynamoDB值值值值属性1属性2条目1条目2域14.值(Value)值用于描述某个条目在某个属性上的具体内容一个条目的一个属性中可以有多个值。某类商品除颜色外其他参数完全一致,此时可以通过在颜色属性中存放多个值来使用一个条目表示该商品,而不需要像关系数据库中那样建立多条记录。例如:of44《云计算》第三版配套PPT课件30SimpleDB3.4非关系型数据库服务SimpleDB和DynamoDB如图显示了SimpleDB的树状组织方式,其中可以看出SimpleDB对多值属性的支持。域条目属性值of44《云计算》第三版配套PPT课件31SimpleDB3.4非关系型数据库服务SimpleDB和DynamoDBSimpleDB中每个属性值的大小不能超过1KBSimpleDB存储的数据范围极其有限将相对大的数据存储在S3中,在SimpleDB中只保存指向某个特定文件位置的指针SimpleDB与其他AWS组件综合使用的方式限制导致解决of44《云计算》第三版配套PPT课件3.4非关系型数据库服务SimpleDB和DynamoDB3.4.1非关系型数据库与传统关系数据库的比较3.4.2SimpleDB3.4.3DynamoDB3.4.4SimpleDB和DynamoDB的比较of44《云计算》第三版配套PPT课件33DynamoDB3.4非关系型数据库服务SimpleDB和DynamoDBDynamoDB的特点:DynamoDB以表为基本单位,表中的条目同样不需要预先定义的模式。DynamoDB中取消了