AWS 存储可以按访问模型分成块存储、对象存储和文件存储。
块存储
块存储像硬盘,适合频繁更新和低延迟访问。
EC2 Instance Store 是临时本地存储。性能高,但实例停止或终止后数据可能丢失。
EBS 是持久块存储,常挂载给一个 EC2 实例使用。
EBS 快照是时间点备份:
- 增量保存变化的数据块
- 存储在 S3 中
- 可用于恢复、迁移、扩容和克隆
对象存储:S3
S3 存储对象,对象由数据、元数据和唯一 key 组成。S3 没有真正的文件夹,a/b/c.png 只是对象 key 看起来像路径。
S3 适合:
- 图片和静态资源
- 日志
- 备份
- 数据湖
- 大文件归档
S3 存储类
S3 Standard:默认选择,多 AZ,高可用,适合频繁访问。
S3 Express One Zone:单 AZ,低延迟,适合可重建的高速数据。
S3 Standard-IA:不频繁访问,但需要秒级取回,多 AZ。
S3 One Zone-IA:更便宜,单 AZ,适合可重建数据。
S3 Intelligent-Tiering:访问模式不确定时自动分层。
S3 Glacier Instant Retrieval:很少访问但需要毫秒级取回。
S3 Glacier Flexible Retrieval:分钟到小时级取回,适合备份和灾备。
S3 Glacier Deep Archive:最低成本,取回通常 12 小时以上,适合长期合规留存。
生命周期策略
生命周期策略可以自动转换存储类或删除过期对象。
例如:
- 30 天后转 Standard-IA
- 180 天后转 Glacier
- 7 年后删除
文件存储
EFS 是托管 NFS 文件系统,多个 EC2 可以同时挂载,容量自动伸缩。
FSx 提供特定文件系统能力:
- FSx for Windows
- FSx for Lustre
- FSx for ONTAP
- FSx for OpenZFS
Storage Gateway
Storage Gateway 是混合云存储服务,让本地系统访问云存储。常用于备份、归档、灾备和本地缓存。
延伸理解
复习这篇时,不要只记住名词,要把重点放在 S3、EBS、EFS、生命周期策略、存储类别和成本/性能/访问模式权衡。这类知识如果只停留在定义层面,很容易在面试或项目中答得很散。更好的理解方式是把它放进一个具体场景:谁在调用它,输入从哪里来,失败后谁负责恢复,数据或状态会不会被重复处理。
- AWS 复习不能只背服务名,要把服务放进真实架构:入口、计算、网络、存储、权限、监控和成本。
- 每个服务都应该问三个问题:解决什么问题、由谁运维、失败时影响范围是什么。
- 考试和实际项目都很重视边界:Region 与 AZ、托管服务与自管理服务、有状态与无状态资源。
在真实项目中,可以把它当成一个判断框架:先确认输入、约束、失败场景和可观测性,再决定具体工具或写法。 如果一个方案看起来很简单,要继续追问它在规模扩大、权限变化、异常恢复和团队协作下是否仍然成立。
实践检查清单
- 明确这个知识点在系统中的位置:是开发时约束、运行时能力、基础设施能力,还是协作流程。
- 写出一个最小可运行例子,并补一个失败例子;只会写 happy path 说明理解还不够稳。
- 记录常见误用:例如边界条件、权限假设、性能假设、同步/异步差异或环境差异。
- 把概念和项目经历关联起来:如果面试被追问,可以用自己的项目说明为什么这样选。
- 最后用一句话总结取舍:它牺牲了什么,换来了什么。
自测问题
- 这个主题解决的核心问题是什么?
- 如果不用当前方案,还有哪些替代方案?代价是什么?
- 最容易出错的边界条件在哪里?
- 如何在代码、测试或监控中验证它真的可靠?
项目化应用场景
可以把这类知识放到一个小型 SaaS 部署场景里理解:用户通过域名访问 CloudFront 或 Load Balancer,请求进入公有子网,应用运行在 EC2、ECS 或 Lambda,数据库和缓存放在私有子网,日志进入 CloudWatch,权限由 IAM 控制,静态文件放在 S3。复习每个 AWS 服务时,都要问它在这条链路中的位置是什么:入口、计算、网络、存储、安全、监控还是成本控制。这样比孤立背服务定义更容易判断选型。
常见误区:
- 只背服务名,不能画出请求链路。
- 忽略默认网络边界,把数据库放到公网。
- 没有估算成本和失败影响范围。