AWS S3 and Glacier
S3 (Simple Storage Service)
- Bucket
- Bucket全局唯一,一个account默认可创建100个bucket,一般用DNS名字命名
- AWS region
- 创建Bucket的时候需要选择region,region在物理和逻辑上完全独立,除非用户手动从一个region复制数据到另一个region
- 可以选择离端点用户地理位置近的region创建bucket,也可以选择离主数据中心远的地方创建region,以实现容灾
- AWS支持cross region replication,但需要开启version并设置相应的IAM策略
- Object
- S3是AWS提供的对象存储服务,存储的是对象,不是文件。一个对象包含data和metadata,metadata包含系统的metata,如上次修改时间,ACL控制,Object Size, MD5等,也可以包含用户自定义metadata,如果tag等。
- 一个对象的数据大小范围为0-5TB
- 对象存储与block存储和文件存储的区别
- 对象存储基于对象,用API,CLI,SDK等操作数据,虽然有逻辑上的层次结构,且看上去很像文件目录,但实际上没有文件系统,底层也不一定按照层次结构存储。
- block存储基于存储设备,存放的是固定大小的block,协议有iSCSI,FC等。
- 文件存储基于操作系统,存放的是文件,AWS提供了EFS NSA服务,协议有CIFS,NFS。
- Key
- 用于标识一个对象,如:path1/path2/path3/…/filename
- 对象的唯一标识:buckname + key + version
- Object URL
- http://mybucket.s3.amazon.com/fee/fi/fo/fum/jack.doc, 其中,mybucket是bucket名称,fee/fi/fo/fum/jack.doc是该对象的key
- 如何操作S3的对象和bucket
- CLI,RESTful API,SDK,Console,SOAP(New features are not supported)
- 持久性和可靠性
- 默认情况S3提供11×9的持久性和4×9的可靠性。
- 持久性:Will my data still be there in the future?
- 可靠性:Can I access my data right now?
- 一致性
- AWS提供数据最终一致性,对于新增加的数据,不会读取到旧数据,因为要么读取到数据,要么读取不到数据
- 对于修改已经存在的数据,如果此时立即读取,由于数据的同步需要一定时间,此时可能读取到修改前的旧数据
- 同理,对于删除数据,也可能读取到旧的数据
- 不管怎样,最终要么读取到新数据,要么读取不到数据,数据最终一致
- 访问控制
- Bucket policy,推荐,控制粒度很细
- ACLs,不推荐,控制粒度粗糙
- IAM
- query-string authentication
- 静态网站主机
- S3可以当作静态网站服务,将文件上传到bucket并全部设置为public,开启static websit hosting服务并指定index和error page,此时可以访问静态页面。可以使用Route 53,设置一个友好的DNS name,这个是可选的。
- 可以作为静态网站的资源有,html,js,css,pic,file,video,music,etc。
- 可以结合Cloud Front来缓存静态资源,以提高网站性能。
- 前缀和分隔符
- CLI,API,SDK等都支持通过前缀和分隔符操作资源。
- 分隔符支持"/"和"\"。
- 存储类别
- S3 Standard,标准存储类别,高可用,高持久,低延迟,高性能,大部分场景都可以使用。价格最高。
- S3 Standard - Infrequent Access,不经常访问的数据,且数据至少要保存30天。高可用,高持久,低延迟,高性能。费用比Standard低。
- S3 Reduced Redundancy Storage,减少了冗余的存储,提供4*9的持久性,可以存储容易还原的数据,如视频,缩略图等。费用比Standard低。
- Glacier,glacier可以作为单独的对象存储,与S3类似,也可以作为S3的一个存储类别。一般存放归档数据,且提交获取请求后,可能要等3-5个小时才能拷贝到S3,不能立即获取。价格最低。
- 对象生命周期管理
- 设置策略管理对象生命周期,如,对象刚开始是S3 Standard类型,一段时间(如30天)后自动变为S3 Standard - Infrequent Access,一年后变为Glacier,三年后自动删除。
- 数据加密
- 可以选择加密或不加密,默认不加密。
- 支持加密方式:SSE-S3,SSE-KMS,SSE-C,Client-Side encryption。
- SSE-3: AWS自动为每个对象分配不同密钥,并用AES-256加密数据,用master密钥加密对象密钥,对象,对象密钥,master密钥分别存放,且定期rotate master密钥。
- SSE-KMS: AWS key management service管理密钥,可以autid密钥的操作。
- SSE-C: 用户自己提供并管理密钥。
- Client-Side encryption: 客户端加密,在上传数据前就加密。
- 版本控制
- 可以防止意外删除数据,因为删除后可以获取到之前任一版本的数据。
- 开启versioning后不能删除,只能暂停。
- MFA删除
- 仅支持root账号。
- 在删除对象时需要指定MFA code,以防止意外删除。
- Pre-Signed URL
- 使用SDK,CLI为一个对象创建pre-signed URL,并指定有效期,通过该URL且在有效期内可以访问对象。
- 可以防止URL扩散,被无权限的人任意访问数据。
- Multipart Upload
- 对于较大的数据(>5 GB),支持分块并行上传,以提高效率。
- AWS CLI默认就开启,如aws s3 cp, aws s3 mv, aws s3 sync等。
- Range Gets
- 对于较大 数据,不用一次全部下载,可以只下载其某一部分。
- 跨region复制
- 开启version,并设置相关的IAM权限,可以跨region复制对象。
- 开启此功能的目的是可以让终端用户访问最近的bucket以提高访问效率,或者是有特别的安全要求,需要存放多份数据拷贝。
- 注意:此功能并不是为了防止意外删除对象而设计。
- Logging
- 支持Server access logging和object level logging,以跟踪对象的操作和访问。
- 事件通知
- 删除,增加,修改数据后可以将事件通知到SNS和SQS。
- 最佳操作和实践
- S3可以使用在混合云的场景,本地存放一部分数据,备份和归档数据存放到S3。
- S3可以存放DB索引对应的真实数据,DB存放数据索引,S3存放真实数据。
- S3可以作为静态网站。
- 如果每秒访问的请求很多,可以通过Cloud Front缓存数据,或者为对象增加随机hash prefix,这样可以将请求尽可能的分散到不同的设备。
Glacier
- Archives
- 与S3的Object类似,是归档数据。
- 支持0-40TB的大小,自动加密,且不可更改数据,每次创建数据时,会自动生成ID。
- Vaults
- 与Bucket类似,用于存放archives,默认1000个valuts。
- Valuts locks,锁住valuts,防止其它人修改,可指定策略,如:write once read many。
- Data Retrieval
- 每月可以免费获取5%的数据,更多的数据需要收费。
S3 和 Glacier的区别
S3 | Glacier |
高可靠,高持久 | 高可靠,高持久 |
经常访问的数据 | 不经常访问的数据 |
生产数据或归档数据 | 归档数据 |
每个对象最大5TB | 每个归档最大40TB |
可以自定义key | 自动生成归档ID |
选择加密或不加密 | 必须加密,且自动加密 |
可更改对象 | 不可修改归档数据 |
可以立即取回数据 | 3-5小时的取回时间 |
默认100个bucket | 默认1000个vaults |
AWS S3 and Glacier相关推荐
- s3 aws_您需要了解的有关AWS S3的所有信息
s3 aws This article will provide an in-depth introduction to AWS S3 - the secure, scalable, and supe ...
- AWS S3云存储服务
AWS S3云存储服务 1 S3概念及基础知识 2 S3的基本操作 3 S3数据安全 4 S3数据加密以及命令行CLI 4.1 S3加密工作原理 4.1.1 server端的加密 4.1.2 clie ...
- awss3 android,aws s3 命令
管理存储桶 创建桶; $ aws s3 mb s3://bucket-name 删除桶: $ aws s3 rb s3://bucket-name 删除非空桶: $ aws s3 rb s3://bu ...
- OSS(对象存储服务)与 AWS S3(Amazon Simple Storage Service)
1. AWS S3对象存储 Amazon Simple Storage Service (Amazon S3) 是一种面向 Internet 的存储服务.您可以通过 Amazon S3 随时在 Web ...
- aws s3 静态网站_如何将静态网站或JAMstack应用托管并部署到AWS S3和CloudFront
aws s3 静态网站 S3 and CloudFront are AWS cloud services that make serving static assets powerful and ch ...
- k8s aws 部署_如何在短短30分钟内使用CircleCI设置到AWS S3的持续部署
k8s aws 部署 by Adam Watt 通过亚当·瓦特 如何在短短30分钟内使用CircleCI设置到AWS S3的持续部署 (How to setup Continuous Deployme ...
- php上传照片到s3云服务器,PHP上传文件到AWS S3生成下载文件URL
* 加载s3客户端 * @return string*/ functionAWS_S3Client(){$ACCESS_KEY_ID = '你的s3 ID';$SECRET_ACCESS_KEY = ...
- AWS S3宕机的启发: 云必须分散化
上周,AWS S3云存储服务中断,互联网圈掀起一番波澜,然而AWS将其因归咎于一名技术人员在例行维修中的失误,关闭了S3子系统的少量服务器,由于一条错误的指令输入,被关闭的服务器比预期要多.事情过去了 ...
- editor 插入图片之后将光标放到右侧_通过vscode插件自动上传剪贴板图片至aws s3
vscode是我日常所使用的编辑器,包括在写这篇文章的时候.在编辑markdown文档的时候,总会遇到插入图片的问题.所以我就想实现一个简单的vscode插件,在运行时,可以将剪贴板里的图片上传到aw ...
最新文章
- react使用 PropTypes 和 getDefaultProps()
- 程序员编程艺术:第二章、字符串是否包含问题
- DEBERTA(Decoding-enhanced BERT with disentangled attention) 论文笔记
- Mr.J---重拾Ajax(一)--XMLHttpRequest
- console输出彩色字体
- java tomcat输出信息,java – 如何在Tomcat中记录stdout输出?
- 【深度学习】使用Keras开发的流程概述
- java没有类_为什么Java中没有类的第一类对象?
- 数据丢失与重复_面试官:如何保证消息的可靠性传输?如何处理消息丢失的问题?...
- 群晖3617可以有几个网卡_【群晖系统】黑群晖洗白13问~经典QA
- Java区块链视频教程百度云_区块链开发入门到精通视频教程
- 方方格子Excel工具箱的使用教程
- 史玉柱自述创业历程,我思故我在
- stm32—酒精传感器的初步使用
- 美国计算机专业gre314,托福89,GRE 314获南加大计算机录取
- 转载此文纪念在c/c++上投入的时间,没有人能永久统治这个国家,别了c/c++
- RuoYi-Vue-Plus 与 RuoYi-Cloud-Plus 高端进阶 源码分析 系列教程
- Ubuntu18.04安装mysql并登录(版本5.7)
- java基于web的聊天系统代码_WebChat聊天系统 - WEB源码|JSP源码/Java|源代码 - 源码中国...
- Spring Boot项目集成AWS SDK连接到AWS S3,实现上传下载功能
热门文章
- wps的linux文字显示模糊,WPS字体模糊不清晰怎么回事
- 摸索一下午,终于解决Tomcat9中文乱码问题!!
- nth-child和nth-of-type的区别
- 解决 ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket ‘tmpmysql.sock‘
- Windows 7 Windows10 纯净正版下载
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'Logger' 中的标识列插入显式值
- 文献管理软件--zotero基本使用
- 奥的斯电梯服务器自动呼梯,奥的斯外呼电梯控制系统说明
- 第六篇 VGGNet——模型精讲
- Idea中变量的下划线