导入
S3 - 简单存储服务
了解 S3(简单存储服务)及其使用方法。
从根本上讲,存储分为两种类型:
- 基于对象的存储
- 基于块的存储
简单存储服务(S3)——基于对象的存储
S3 为开发者和 IT 团队提供安全、持久、高度可扩展的对象存储。通过简单的网页界面,可以随时随地存储和检索任意数量的数据。
它是用于在 AWS 上存放文件的地方,数据会分布在多个设备和设施中。
将 S3 想象成存放照片或文件的仓库:
- 基于对象的存储
- 无限容量
- 文件存储在存储桶(Bucket)或文件夹中
- 名称必须在全球范围内唯一
- 每次成功上传后都会返回 HTTP 200 状态码
S3 主要用于:
- 存储与备份
- 应用程序文件托管
- 媒体内容托管
- 软件分发
- 存储 AMI 和快照
S3 的数据一致性模型
S3 的数据一致性模型为 S3 存储桶中的对象提供强一致性读写保证,适用于 PUT 和 DELETE 请求。
对象包含以下内容:
- 键(Key) —— 即对象的文件名。
- 值(Value) —— 实际数据,由字节序列组成。
- 版本控制(Versioning) —— 当前是哪个版本的对象。
- 元数据(Metadata) —— 存储数据文件的附加信息。
例如,如果你存储一首音乐作品,其元数据可能包括歌手信息、发行年份、专辑名称等。
子资源
- 访问控制列表(ACL) —— 决定是否可以访问 S3 中的文件,可在文件级别或存储桶级别设置。
- Torrent —— 支持 BitTorrent 协议。
- 设计目标为实现 99.99% 的可用性。
- 持久性保证达 99.999999999%(11 个 9)。
- 分层存储可用性。
- 生命周期管理。
- 版本控制。
- 加密功能。
- 通过访问控制列表和存储桶策略保护数据。
S3 - IA(不频繁访问)
适用于访问频率较低但需要快速获取的数据。相比标准 S3 成本更低,但需对数据检索收取费用。
S3 - RRS(降低冗余存储)
提供较低的持久性,但保持相同的可用性水平。
例如,适用于可重新生成的数据,如税务计算结果或工资单。这类数据成本更低。
假设你为所有图片生成缩略图,如果某个缩略图丢失,也可以随时重新生成。
在选择存储方案时,请综合考虑各种选项的优缺点:你是在优化持久性、访问频率,还是可用性?
对比不同 S3 类型的示意图

different types of S3.PNG.jpeg
计费模式
- 存储费用
- 请求次数
- 存储管理定价
- 添加元数据以查看使用情况指标
传输加速(Transfer Acceleration)
支持跨长距离快速、简便且安全地传输文件,从终端用户到 S3 存储桶。
该功能利用 Amazon CloudFront 全球分布的边缘节点。当数据到达边缘节点后,将通过优化网络路径传输至 Amazon S3。
可将传输加速理解为 S3 与 CDN 功能的原生结合。每个用户都会被引导至最近的边缘节点,再由该节点连接到实际的 S3 存储桶。
回顾 —— S3
S3 存储类别
- S3(持久、立即可用、频繁访问)
- S3 - IA(持久、立即可用、不频繁访问)
- S3 降低冗余存储(适用于可轻易重生成的数据,如缩略图)
S3 对象的核心要素
- 键(Key):对象的名称,按字母顺序存储
- 值(Value):数据本身
- 版本 ID:对象的版本号
- 元数据:数据的各种属性
子资源
- ACL:访问控制列表
- Torrent:BitTorrent 协议支持
跨区域复制
开启此功能后,AWS 会自动将指定存储桶的内容同步到两个或更多区域。
亚马逊 S3 托管网站架构示例

S3 Hosted Architecture.png
保护你的 S3 存储桶
- 默认情况下,所有存储桶均为私有
- 可根据需求配置访问权限
- 存储桶策略
- 访问控制列表(ACL)
- 可配置存储桶以生成访问日志
S3 加密方式
- 传输中加密
- 使用 SSL/TLS(通过 HTTPS)
- 静态数据加密
- 服务器端加密
- S3 管理的密钥 —— SSE-S3
- 密钥管理服务 —— 管理的密钥(SSE-KMS)
- 客户端加密
- 服务器端加密