当前位置: 首页 > news >正文

Amazon云计算AWS(二)

目录

    • 三、简单存储服务S3
      • (一)S3的基本概念和操作
      • (二)S3的数据一致性模型
      • (三)S3的安全措施
    • 四、非关系型数据库服务SimpleDB和DynamoDB
      • (一)非关系型数据库与传统关系数据库的比较
      • (二)SimpleDB
      • (三)DynamoDB
      • (四)SimpleDB和DynamoDB的比较


三、简单存储服务S3

(一)S3的基本概念和操作

  简单存储服务(Simple Storage Services,S3)构架在Dynamo之上,用于提供任意类型文件的临时或永久性存储。S3的总体设计目标是可靠、易用及低成本。

  S3存储系统的基本结构,其中涉及两个基本概念:桶(Bucket)和对象(Object)。

在这里插入图片描述
1、桶

  桶是用于存储对象的容器,其作用类似于文件夹,但桶不可以被嵌套,即在桶中不能创建桶。目前,Amazon限制了每个用户创建桶的数量,但没有限制每个桶中对象的数量。桶的名称要求在整个Amazon S3的服务器中是全局唯一的,以避免在S3中数据共享时出现相互冲突的情况。在对桶命名时,建议采用符合DNS要求的命名规则,以便与CloudFront等其他AWS服务配合使用。

2、对象

  • 数据:任意类型,但大小会受到对象最大容量的限制。
  • 元数据:数据内容的附加描述信息,通过名称-值(name-value)集合的形式来定义。
元数据名称名 称 含 义
last-modified对象被最后修改的时间
ETag利用MD5哈希算法得出的对象值
Content-Type对象的MIME(多功能网际邮件扩充协议)类型,默认二进制/八位组
Content-Length对象数据长度,以字节为单位

3、基本操作

  S3中支持对桶和对象的操作,主要包括:Get、Put、List、Delete和Head。下表列出了五种操作的主要内容。

操 作 目 标GetPutListDeleteHead
获取桶中对象创建或更新桶列出桶中所有键删除桶——
对象获取对象数据和元数据创建或更新对象——删除对象获取对象元数据

(二)S3的数据一致性模型

  与其构建的基础Dynamo相同,S3中采用了最终一致性模型。在数据被充分传播到所有的存放节点之前,服务器返回给用户的仍是原数据,此时用户操作可能会出现后面几种情况:

用户操作结果
1写入一个新的对象并立即读取它服务器可能返回“键不存在”
2写入一个新的对象并立即列出桶中已有的对象该对象可能不会出现在列表中
3用新数据替换现有的对象并立即读取它服务器可能返回原有的数据
4删除现有的对象并立即读取它服务器可能返回被删除的数据
5删除现有的对象并立即列出桶中的所有对象服务器可能列出被删除的对象

在这里插入图片描述

(三)S3的安全措施

在这里插入图片描述
1、身份认证(Authentication)

在这里插入图片描述
在这里插入图片描述
2、访问控制列表(Access Control List)

  访问控制列表是S3提供的可供用户自行定义的访问控制策略列表。S3的访问控制策略(ACP)提供如下所列的五种访问权限。

在这里插入图片描述
注意:S3的ACL不具有继承性

S3中有三大类型的授权用户:

(1)所有者(Owner)

  所有者是桶或对象的创建者,默认具是WRITE_ACP权限。所有者默认就是最高权限拥有者。

(2)个人授权用户(User)

  两种授权方式,一种是通过电子邮件地址授权的用户,另一种是通过用户ID进行授权。

(3)组授权用户(Group)

  一种是AWS用户组,它将授权分发给所有AWS账户拥有者;另一种是所有用户组,这是一种有着很大潜在危险的授权方式。

四、非关系型数据库服务SimpleDB和DynamoDB

(一)非关系型数据库与传统关系数据库的比较

传统的关系数据库非关系型数据库
数据模型对数据有严格的约束key和value可以使用任意的数据类型
数据处理满足CAP原则的C和A,在P方面很弱满足CAP原则的A和P,而在C方面比较弱
接口层以SQL语言对数据进行访问的,提供了强大的查询功能,并便于在各种关系数据库间移植通过API操作数据,支持简单的查询功能,且由于不同数据库之间API的不同而造成移植性较差

总结:

在这里插入图片描述

(二)SimpleDB

  SimpleDB基本结构图如下,包含了域、条目、属性、值等概念。

在这里插入图片描述
1、域(Domain)

  域是用于存放具有一定关联关系的数据的容器,其中的数据以UTF-8编码的字符串形式存储。每个用户账户中的域名必须是唯一的,且域名长度为3~255个字符。每个域中数据的大小具有一定的限制。但域的划分也会为数据操作带来一些限制,是否划分域需要综合多种因素考虑。

2、条目(Item)

  条目对应着一条记录,通过一系列属性来描述,即条目是属性的集合。在每个域中,条目名必须是唯一的。与关系数据库不同,SimpleDB中不需要事先定义条目的模式,即条目由哪些属性来描述。操作上具有极大的灵活性,用户可以随时创建、删除以及修改条目的内容。

3、属性(Attribute)

  属性是条目的特征,每个属性都用于对条目某方面特性进行概括性描述。每个条目可以有多个属性。属性的操作相对自由,不用考虑该属性是否与域中的其他条目相关。

4、值(Value)

  值用于描述某个条目在某个属性上的具体内容。一个条目的一个属性中可以有多个值。

例如:某类商品除颜色外其他参数完全一致,此时可以通过在颜色属性中存放多个值来使用一个条目表示该商品,而不需要像关系数据库中那样建立多条记录。

在这里插入图片描述
  如图显示了SimpleDB的树状组织方式,其中可以看出SimpleDB对多值属性的支持。

在这里插入图片描述

SimpleDB与其他AWS组件综合使用的方式
  • 限制:SimpleDB中每个属性值的大小不能超过1KB。
  • 导致:SimpleDB存储的数据范围极其有限。
  • 解决:将相对大的数据存储在S3中,在SimpleDB中只保存指向某个特定文件位置的指针。

(三)DynamoDB

DynamoDB的特点:

  DynamoDB以表为基本单位,表中的条目同样不需要预先定义的模式。DynamoDB中取消了对表中数据大小的限制,用户设置任意大小,并由系统自动分配到多个服务器上。DynamoDB不再固定使用最终一致性数据模型,而是允许用户选择弱一致性或者强一致性。DynamoDB还在硬件上进行了优化,采用固态硬盘作为支撑,并根据用户设定的读/写流量限制预设来确定数据分布的硬盘数量。

(四)SimpleDB和DynamoDB的比较

  SimpleDB和DynamoDB都是Amazon提供的非关系型数据库服务。

  SimpleDB:限制了每张表的大小,更适合于小规模复杂的工作。自动对所有属性进行索引,提供了更加强大的查询功能。

  DynamoDB:支持自动将数据和负载分布到多个服务器上,并未限制存储在单个表中数据量的大小,适用于较大规模负载的工作。

相关文章:

  • 发布 jar 包到 maven 中央仓库
  • 2024-06-03 问AI: 什么是TPU Pod?
  • 最小二乘法算法(个人总结版)
  • 列表推导式妙用(i for i in lst):python使用列表推导式,把二维列表数据放入一维列表中(高维数据放入低维列表)
  • Nginx的Location匹配与Rewrite重写
  • Python知识点10---函数
  • 【linux-imx6ull-设备树点灯】
  • 【第9章】SpringBoot中Bean的扫描和注册
  • 【UE5:CesiumForUnreal】——加载无高度地形数据
  • JavaScript 基础 - 对象
  • 算法训练营第四十八天 | 卡码网57 爬楼梯、LeetCode 322 零钱兑换、LeetCode 279 完全平方数
  • 《雅思口语真经总纲1.0》笔记——第二章:官方评分标准真经——Fluency Coherence 流利度和连贯性(1、连贯性)
  • 深度学习知识与心得
  • 使用反射调用Android隐藏API
  • 算法简单笔记4
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 《深入 React 技术栈》
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Android交互
  • ES6简单总结(搭配简单的讲解和小案例)
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript 奇技淫巧
  • js正则,这点儿就够用了
  • js作用域和this的理解
  • MySQL主从复制读写分离及奇怪的问题
  • Node 版本管理
  • Vim 折腾记
  • vue总结
  • 基于axios的vue插件,让http请求更简单
  • 深入浅出webpack学习(1)--核心概念
  • 移动端 h5开发相关内容总结(三)
  • 白色的风信子
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • #07【面试问题整理】嵌入式软件工程师
  • #NOIP 2014#Day.2 T3 解方程
  • #VERDI# 关于如何查看FSM状态机的方法
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1)bark-ml
  • (LeetCode 49)Anagrams
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (二)Linux——Linux常用指令
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (三)终结任务
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 8.0 中有哪些新的变化?
  • .net 无限分类
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET技术成长路线架构图
  • .NET连接MongoDB数据库实例教程
  • .NET值类型变量“活”在哪?