AWS 存储服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS 存储服务相关的知识,希望对你有一定的参考价值。

AWS S3

业务场景

挑战

  • Web服务器传输大型文件可能引起网络延迟
  • 用户生成的内容需要分配到所有的web服务器中

解决方案

  • 静态资产存放在S3中
  • S3中的对象设置为公开,用户可以直接访问

S3的好处

  • 通过API或者HTTP进行访问
  • S3是以冗余方式将对象存储,至少在三个可用区存放副本
  • S3使用校验和来验证数据的完整性
  • 提供完善的版本控制使用户能够保存、检索和还原每个对象的各个版本
  • 多副本的数据一致性

S3 属性

存储桶 Buckets

  • 存储S3的容器
  • Bucket 名 最多包含63个字符,且在全球AWS都必须是唯一的
  • 最佳实践是包含并符合DNS域名规范来对Bucket命名
  • 在靠近用户的区域创建Bucket以优化性能
  • 每用户最多可创建100个存储桶
  • 存储桶需要指定区域,但是不能指定可用区

对象 Object

  • 每一个存储在S3的实体或文件都是对象
  • 最大支持单个对象5TB
  • 对象由文件本身和元数据组成
  • 文件本身在S3看来只是一串字节流
  • 元数据包含了对象的名称和键值,系统元数据包括了MD5,上次修改日期等系统信息,用户元数据是用户的可选项
  • 获取对象使用的Request包头
    • x-amz-meta-
    • x-amz-storage-class
    • Content-MD5
    • Content-Length

数据结构

键(Key):可以认为是数据的名字
值(Value):表示数据本身
版本号(Version ID):对于启用了版本控制的存储桶来说很重要
元数据(Metadata):关于数据的描述,比如说数据的创建时间,更改时间,文件类型,文件大小等信息
访问控制信息:能管理对Bucket内文件的访问权限

Key

每个对象的标识,在存储桶内唯一
最大支持1024字节的UTF-8字符,可以包含斜杠等
存储桶名+Key 组成S3对象的唯一标识
最佳命名实践是利用/进行命名对对象进行逻辑组织,但记住这并不代表文件是被层次组织的,S3对象始终处于一个平面而不是一个真正的File System
S3对象可以基于其唯一标识通过Internet直接寻址访问,URL就是其唯一标识

对象标签

每个对象添加最多10个标签
用标签标记后可以用于IAM策略管理

S3 特性
S3 操作

基于REST API接口进行操作,将HTTP动词映射到CRUD操作
实际使用更高级的接口(如编程语言,SDK,CLI和控制台)来调用REST API

可用性和持久性

S3采用高度持久和可用的存储基础架构

持久性 = 11个9
可用性 = 4 个 9

建议采用版本控制、跨域区复制、MFA删除等方式来防止用户意外造成的逻辑错误

一致性

S3会自动在区域内对数据进行自动复制
S3是一个最终一致性系统,保证所有的获取都是一致的

为新对象PUTS 提供 先写后读一致性
为 Overwrite PUTS和DELETE提供最终一致性

S3 定价策略

存储容量
读取操作
数据传输

S3高级功能
存储级别

S3-Standard

提供高耐用、高可用、低延迟和高性能的存储对象

S3-Standard-IA

提供较低的高可用标准但仍然是多可用区部署的,但设计用于长期存取和访问频率较低的数据,
利用规模效应对存储超过30天以上的提供更低成本的选项,最小收费粒度128KB,最短使用30天。

S3-ONEZONE-IA

类似于Standard-IA,但是仅部署在一个可用区内提供高可用
用于非关键性和易重现数据,用于替代RRS

INTELLIGENT_TIERING

自动分层的数据,类似于IA的持久性和可用性
能够提供标准的读写性能但不是一致的,取决于读写请求频率
有额外的监控和自动分层的成本,最短使用30天,小于128K的对象没有资格进行自动分层但仍收费。

S3减少冗余存储 RRS

适用于非关键数据或易于重现的派生数据,支持低延迟访问,不支持高可用的(4个9持久性)
目前已经不再推荐,使用S3-ONEZONE-IA替代

Glacier

成本极低的归档数据存储,不需要实时数据访问

以上是关于AWS 存储服务的主要内容,如果未能解决你的问题,请参考以下文章

AWS 存储服务

基于AWS S3协议搭建个人云存储服务

笨办法学AWS:各类存储服务适用场景总结

笨办法学AWS:各类存储服务适用场景总结

笨办法学AWS:各类存储服务适用场景总结

AWS3 是一种面向网络的存储服务