aws-doc/课程/第二阶段-核心服务/第12天-S3对象存储.md
2026-05-08 10:24:39 +08:00

6.4 KiB
Raw Blame History

第12天S3 对象存储——AWS 的万能仓库

今天你将学到什么

S3Simple Storage Service是 AWS 最早的服务2006 年上线),也是用途最广的服务。从存一张图片到建一个数据湖,它几乎无处不在。

今天学完你会明白S3 是什么、怎么用、怎么省钱、怎么保护数据安全。


S3 是什么

S3 是一个对象存储服务。

"对象存储"是什么意思?先和你熟悉的东西对比:

存储类型 类比 特点
块存储EBS 电脑硬盘 挂载到一台电脑上,可以装操作系统
文件存储EFS 共享文件夹 多台电脑可以同时访问
对象存储S3 网盘/云盘 通过网络上传下载,无限容量

S3 的核心特点

  • 无限容量:想存多少存多少,没有上限
  • 极高耐久性99.999999999%11 个 9的数据不丢失概率。意味着如果你存了 1000 万个文件,平均 1 万年才可能丢 1 个。
  • 通过网络访问:用 URL 或 API 上传下载,不是挂载为磁盘
  • 按量付费:存了多少 GB 付多少钱

核心概念

Bucket

桶是存放文件的"容器",类似于你电脑上的一个顶级文件夹。

重要规则

  • 桶的名字全球唯一——全世界所有 AWS 用户共享一个命名空间。如果有人用了 my-photos,你就不能再用这个名字了。
  • 创建桶时要选择一个 Region你的数据就存在那个 Region 里。
  • 一个 AWS 账户最多 100 个桶(可以申请增加)。

命名建议:用有意义的前缀,比如 公司名-项目名-用途

  • mycompany-webapp-images
  • mycompany-logs-2024

对象Object

对象就是你存进去的文件。每个对象由三部分组成:

  • Key:文件的"路径名",比如 photos/2024/vacation/beach.jpg
  • Value:文件的实际内容(最大 5TB
  • Metadata元数据:关于文件的附加信息(类型、大小、创建时间等)

注意:虽然 Key 里有 /,看起来像文件夹结构,但 S3 实际上是扁平的——没有真正的文件夹。控制台显示的"文件夹"只是为了方便你浏览。


S3 能用来做什么

S3 的用途广得超乎想象:

用途 说明
静态网站托管 把 HTML/CSS/JS 放在 S3 上,直接当网站用
图片/视频存储 APP 的用户头像、上传的视频
备份 数据库备份、服务器快照
日志存储 各种服务的运行日志
大数据湖 集中存储所有原始数据,供分析使用
软件分发 存放安装包、更新文件
灾难恢复 跨 Region 复制关键数据

存储类别——同样的文件,不同的价格

S3 有多种存储类别,核心逻辑是:访问越频繁的数据越贵,访问越少的数据越便宜。

用仓库来类比:

  • 经常用的东西放在手边的架子上(贵,但拿取方便)
  • 偶尔用的东西放在仓库深处(便宜,但找起来费时间)
  • 几年不用的东西放在异地仓库(最便宜,但取回来要等很久)
存储类别 适合什么数据 存储费用 取回速度
Standard标准 经常访问的数据 最高 即时
Standard-IA低频访问 每月访问一两次 较低 即时
Glacier Instant 每季度访问一次 更低 即时
Glacier Flexible 每年访问一两次 很低 分钟到小时
Glacier Deep Archive 几年才访问一次 最低 12-48 小时
Intelligent-Tiering 不确定访问频率 自动优化 即时

举个具体的价格对比us-east-1存 1TB 数据一个月):

  • Standard$23/月
  • Standard-IA$12.5/月
  • Glacier Deep Archive$1/月

差距巨大!所以把不常用的数据移到便宜的层级,能省很多钱。

Intelligent-Tiering智能分层

如果你不确定数据的访问频率,选这个最省心:

  • S3 自动监控每个文件的访问频率
  • 30 天没访问 → 自动移到低频层
  • 90 天没访问 → 自动移到归档层
  • 再次访问时 → 自动移回高频层

你不需要做任何事情S3 帮你自动优化成本。


生命周期规则——自动管理数据

你可以设置规则,让 S3 自动帮你管理数据的"一生"

例子:日志文件的生命周期

上传Standard
    → 30 天后自动转为 Standard-IA不常看了
    → 90 天后自动转为 Glacier归档保存
    → 365 天后自动删除(不需要了)

设置一次,永远自动执行。不用你记着去手动清理。


数据安全

默认私有

S3 的数据默认是私有的——只有你自己能访问。别人既看不到也下载不了。

加密

  • 传输加密数据在网络上传输时自动加密HTTPS
  • 存储加密:数据存在磁盘上时也是加密的(默认启用)

版本控制

开启版本控制后S3 会保留文件的所有历史版本:

  • 不小心覆盖了文件?可以恢复到之前的版本
  • 不小心删除了文件?可以找回来(删除只是加了个标记)

就像文档的"历史版本"功能——你可以回到任何一个时间点的状态。

防止公开访问

AWS 提供了一个总开关叫 "Block Public Access"(阻止公开访问):

  • 默认开启
  • 即使你不小心设置了公开权限,这个开关也会阻止
  • 除非你明确需要公开(比如托管静态网站),否则不要关闭它

今天的小测验

  1. S3 的"桶名全球唯一"是什么意思?
  2. 如果你有一批日志文件,前 7 天经常查看之后很少看1 年后可以删除,应该怎么设置生命周期规则?
  3. S3 Standard 和 Glacier Deep Archive 的价格差多少倍?各自适合什么数据?
  4. 为什么说 S3 没有真正的"文件夹"

延伸阅读


明天预告

明天学习 EBS 和 EFS——块存储和文件存储。搞清楚它们和 S3 的区别:什么时候用"硬盘",什么时候用"共享文件夹",什么时候用"网盘"。