Logo
Section 1 / 6

S3 - 简单存储服务

了解 S3(简单存储服务)及其使用方法。

导入

S3 - 简单存储服务

了解 S3(简单存储服务)及其使用方法。

从根本上讲,存储分为两种类型:

  1. 基于对象的存储
  2. 基于块的存储

简单存储服务(S3)——基于对象的存储

S3 为开发者和 IT 团队提供安全、持久、高度可扩展的对象存储。通过简单的网页界面,可以随时随地存储和检索任意数量的数据。

它是用于在 AWS 上存放文件的地方,数据会分布在多个设备和设施中。

将 S3 想象成存放照片或文件的仓库:

  1. 基于对象的存储
  2. 无限容量
  3. 文件存储在存储桶(Bucket)或文件夹中
  4. 名称必须在全球范围内唯一
  5. 每次成功上传后都会返回 HTTP 200 状态码

S3 主要用于:

  1. 存储与备份
  2. 应用程序文件托管
  3. 媒体内容托管
  4. 软件分发
  5. 存储 AMI 和快照

S3 的数据一致性模型

S3 的数据一致性模型为 S3 存储桶中的对象提供强一致性读写保证,适用于 PUT 和 DELETE 请求。

对象包含以下内容:

  1. 键(Key) —— 即对象的文件名。
  2. 值(Value) —— 实际数据,由字节序列组成。
  3. 版本控制(Versioning) —— 当前是哪个版本的对象。
  4. 元数据(Metadata) —— 存储数据文件的附加信息。

例如,如果你存储一首音乐作品,其元数据可能包括歌手信息、发行年份、专辑名称等。

子资源

  1. 访问控制列表(ACL) —— 决定是否可以访问 S3 中的文件,可在文件级别或存储桶级别设置。
  2. Torrent —— 支持 BitTorrent 协议。
  3. 设计目标为实现 99.99% 的可用性。
  4. 持久性保证达 99.999999999%(11 个 9)。
  5. 分层存储可用性。
  6. 生命周期管理。
  7. 版本控制。
  8. 加密功能。
  9. 通过访问控制列表和存储桶策略保护数据。

S3 - IA(不频繁访问)

适用于访问频率较低但需要快速获取的数据。相比标准 S3 成本更低,但需对数据检索收取费用。

S3 - RRS(降低冗余存储)

提供较低的持久性,但保持相同的可用性水平。

例如,适用于可重新生成的数据,如税务计算结果或工资单。这类数据成本更低。
假设你为所有图片生成缩略图,如果某个缩略图丢失,也可以随时重新生成。

在选择存储方案时,请综合考虑各种选项的优缺点:你是在优化持久性、访问频率,还是可用性?

对比不同 S3 类型的示意图

different types of S3.PNG.jpeg
different types of S3.PNG.jpeg

计费模式

  1. 存储费用
  2. 请求次数
  3. 存储管理定价
  4. 添加元数据以查看使用情况指标

传输加速(Transfer Acceleration)
支持跨长距离快速、简便且安全地传输文件,从终端用户到 S3 存储桶。

该功能利用 Amazon CloudFront 全球分布的边缘节点。当数据到达边缘节点后,将通过优化网络路径传输至 Amazon S3。

可将传输加速理解为 S3 与 CDN 功能的原生结合。每个用户都会被引导至最近的边缘节点,再由该节点连接到实际的 S3 存储桶。

回顾 —— S3

S3 存储类别

  1. S3(持久、立即可用、频繁访问)
  2. S3 - IA(持久、立即可用、不频繁访问)
  3. S3 降低冗余存储(适用于可轻易重生成的数据,如缩略图)

S3 对象的核心要素

  1. 键(Key):对象的名称,按字母顺序存储
  2. 值(Value):数据本身
  3. 版本 ID:对象的版本号
  4. 元数据:数据的各种属性

子资源

  1. ACL:访问控制列表
  2. Torrent:BitTorrent 协议支持

跨区域复制
开启此功能后,AWS 会自动将指定存储桶的内容同步到两个或更多区域。

亚马逊 S3 托管网站架构示例

S3 Hosted Architecture.png
S3 Hosted Architecture.png

保护你的 S3 存储桶

  1. 默认情况下,所有存储桶均为私有
  2. 可根据需求配置访问权限
  3. 存储桶策略
  4. 访问控制列表(ACL)
  5. 可配置存储桶以生成访问日志

S3 加密方式

  1. 传输中加密
    • 使用 SSL/TLS(通过 HTTPS)
  2. 静态数据加密
    • 服务器端加密
      • S3 管理的密钥 —— SSE-S3
      • 密钥管理服务 —— 管理的密钥(SSE-KMS)
    • 客户端加密

AWS:计算服务

弹性块存储(EBS)