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。下表列出了五种操作的主要内容。
| 操 作 目 标 | Get | Put | List | Delete | Head |
|---|---|---|---|---|---|
| 桶 | 获取桶中对象 | 创建或更新桶 | 列出桶中所有键 | 删除桶 | —— |
| 对象 | 获取对象数据和元数据 | 创建或更新对象 | —— | 删除对象 | 获取对象元数据 |
(二)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中每个属性值的大小不能超过1KB。
- 导致:SimpleDB存储的数据范围极其有限。
- 解决:将相对大的数据存储在S3中,在SimpleDB中只保存指向某个特定文件位置的指针。
(三)DynamoDB
DynamoDB的特点:
DynamoDB以表为基本单位,表中的条目同样不需要预先定义的模式。DynamoDB中取消了对表中数据大小的限制,用户设置任意大小,并由系统自动分配到多个服务器上。DynamoDB不再固定使用最终一致性数据模型,而是允许用户选择弱一致性或者强一致性。DynamoDB还在硬件上进行了优化,采用固态硬盘作为支撑,并根据用户设定的读/写流量限制预设来确定数据分布的硬盘数量。
(四)SimpleDB和DynamoDB的比较
SimpleDB和DynamoDB都是Amazon提供的非关系型数据库服务。
SimpleDB:限制了每张表的大小,更适合于小规模复杂的工作。自动对所有属性进行索引,提供了更加强大的查询功能。
DynamoDB:支持自动将数据和负载分布到多个服务器上,并未限制存储在单个表中数据量的大小,适用于较大规模负载的工作。
相关文章:
Amazon云计算AWS(二)
目录 三、简单存储服务S3(一)S3的基本概念和操作(二)S3的数据一致性模型(三)S3的安全措施 四、非关系型数据库服务SimpleDB和DynamoDB(一)非关系型数据库与传统关系数据库的比较&…...
实战
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 实战一:大乐透号码生成器 使用Random模块模拟大乐透号码生成器。选号规则为:前区在1~35的范围内随机产生不重复的…...
【C++】vector模拟实现
🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 前言🔥vector需要实现的接口函数🔥vector的模拟实现swap交换默认成员函数迭代器接口reserve和resizesize和capacityoperator[ ]下标获取push_back和…...
生成随机图片
package com.zhuguohui.app.lib.tools;/*** Created by zhuguohui* Date: 2024/6/1* Time: 13:39* Desc:获取随机图片*/ public class RandomImage {// static final String url "https://picsum.photos/%d/%d?random%d";static final String url "https://…...
回溯算法常见思路
回溯问题 回溯法,一般可以解决如下几种问题: 组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数…...
AR眼镜定制开发_在AR眼镜中实现ChatGPT功能
AR眼镜定制方案中,需要考虑到强大的算力、轻巧的设计和更长的续航时间等基本要求。然而,AR眼镜的设计方案不仅仅需要在硬件和显示技术方面取得突破,还要在用户体验方面有所进展。 过去,由于造价较高,AR眼镜的普及和商业…...
手写防抖debounce
手写防抖debounce 应用场景 当需要在事件频繁触发时,只执行最后一次操作,可以使用防抖函数来控制函数的执行频率,比如窗口resize事件和输入框input事件; 这段代码定义了一个名为 debounce 的函数,它接收两个参数:fn…...
anaconda pycharm jupter分别是
Anaconda Anaconda是一个面向数据科学的Python发行版,它包含了Python解释器、conda包管理器、以及大量的科学计算和数据分析库。Anaconda的主要功能是提供一个易于管理的环境,用于安装、运行和更新Python包,同时支持创建和切换不同的Python环…...
【JMeter接口自动化】第3讲 Jmeter语言及外观配置
Jmeter语言配置 方法一:暂时生效,下次打开JMeter还会恢复默认配置 Jmeter安装后,默认语言是英文,可以在“选项”——“选择语音”中更改 方法二,修改配置文件,永久生效 修改jmeter.properties文件 Jmete…...
浅谈云原生安全
一、云原生安全的层级概念 "4C" Code-Container-Cluster-Cloud 二、云原生各个层级的安全实践有哪些? 1、针对于Cloud针对的是公有云层面,其实就一点 1、使用主账号子角色,赋予最小权限原则进行资源管理。 2、对于Cluster 1、从C…...
[线程与网络] 网络编程与通信原理(五): 深入理解网络层IP协议与数据链路层以太网协议
🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …...
【Python】超时请求或计算的处理
超时机制 一般应用于处理阻塞问题 场景: 复杂度较大的计算(解析)某个数值、加解密计算等请求中遇到阻塞,避免长时间等待网络波动,避免长时间请求,浪费时间 1. requests 请求超时机制 reqeusts 依赖中的…...
前端 JS 经典:LRU 缓存算法
前言:什么是 LRU 呢,单词全拼 Least Recently Used,意思是最久未使用。这个算法是做缓存用的,比如,你要缓存一组数据,你要划分缓存块出来,因为不可能每个数据都做缓存,那么划出来的这…...
Python3 笔记:ljust、rjust 和 center
1、ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。 ljust(self, width, fillchar , /) width -- 指定字符串长度。 fillchar -- 填充字符,默认为空格。 str1 sentence str2 word…...
恒压频比开环控制系统Matlab/Simulink仿真分析(SPWM控制方式)
介绍恒压频比的开环控制方法驱动永磁同步电机的转动,首先分析恒压频比的控制原理,然后在Matlab/Simulink中进行永磁同步电机恒压频比开环控制系统的仿真分析,最后将Simulink中的恒压频比控制算法生成代码加载到实际工程中进行工程实现。 一、…...
chatgpt4和文心一言的简单对比
功能1. 写一个ebpf程序监控udp延迟 文心一言 答案 编写一个完整的eBPF程序来监控UDP延迟涉及多个步骤,包括编写eBPF C代码、编译、加载到内核,以及用户空间程序来读取eBPF map中的数据。以下是一个简化的示例框架,展示如何使用eBPF来监控U…...
React 为什么使用map来渲染列表 而不是其他循环方法
1. 声明式与函数式编程 React强调声明式编程,这意味着你只需要关心代码“做什么”,而不是“怎么做”。.map()函数是一种高阶函数,它属于函数式编程范畴,能够返回一个新数组,这非常适合用于生成组件列表。 使用.map()…...
【Axure高保真】tab切换输入表单
今天和大家分享tab切换输入表单的原型模板,这个模板方便我们快速制作表单,里面包含了输入框、下拉列表、选择器共10多种常用的元件,后续也可以根据需要自行添加到中继器里。点击tab标签可以分类填写对应的内容,这个原型模板是用中…...
OrangePi AI Pro 测试体验
感谢CSDN活动提供的OrangePi AI Pro ,之前一直用的树莓派,正好体验一下新的国产设备, 1、开机体验 整个设备包装不错,链接键盘、屏幕和鼠标,整体开机体验不错,内置OS不错,这个系统内嵌了中文输…...
【C++】:模板初阶和STL简介
目录 一,泛型编程二,函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 三,类模板3.1 类模板的定义格式3.2 类模板的实例化 四,STL简介(了解)4.1 什…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
简单介绍C++中 string与wstring
在C中,string和wstring是两种用于处理不同字符编码的字符串类型,分别基于char和wchar_t字符类型。以下是它们的详细说明和对比: 1. 基础定义 string 类型:std::string 字符类型:char(通常为8位)…...
未授权访问事件频发,我们应当如何应对?
在当下,数据已成为企业和组织的核心资产,是推动业务发展、决策制定以及创新的关键驱动力。然而,未授权访问这一隐匿的安全威胁,正如同高悬的达摩克利斯之剑,时刻威胁着数据的安全,一旦触发,便可…...
Git 命令全流程总结
以下是从初始化到版本控制、查看记录、撤回操作的 Git 命令全流程总结,按操作场景分类整理: 一、初始化与基础操作 操作命令初始化仓库git init添加所有文件到暂存区git add .提交到本地仓库git commit -m "提交描述"首次提交需配置身份git c…...
