第三章:AWS存储全家桶——S3、EBS、EFS与FSx的选型实战
大家好,我是老张。今天我们来聊聊AWS的存储体系。说实话,存储这块是云计算的基石,也是很多新手容易踩坑的地方。我见过不少团队,因为存储选型不当,导致性能瓶颈或者成本失控。嗯,今天我们就把它彻底讲透。
3.1 S3存储类与生命周期策略
S3,说白了就是对象存储。它不像你电脑上的硬盘,而是一个可以无限扩展的“大仓库”。我个人习惯把S3当作云上的“文件保险柜”,什么图片、视频、日志、备份,统统往里扔。
3.1.1 S3存储类详解
S3提供了多种存储类,每种都有不同的访问频率和成本。我刚开始用的时候,也搞混过。后来总结了一个口诀:热数据用标准,冷数据用冰川。
| 存储类 | 适用场景 | 访问频率 | 成本 |
|---|---|---|---|
| S3 Standard | 频繁访问的数据,比如网站图片、视频 | 高 | 较高 |
| S3 Intelligent-Tiering | 访问模式不确定的数据 | 自动优化 | 中等 |
| S3 Standard-IA | 不常访问但需要快速恢复的数据 | 低 | 较低 |
| S3 One Zone-IA | 可重建的非关键数据 | 低 | 更低 |
| S3 Glacier | 归档数据,比如审计日志 | 极少 | 极低 |
| S3 Glacier Deep Archive | 长期保存的合规数据 | 几乎不访问 | 最低 |
3.1.2 生命周期策略
生命周期策略,就是给数据定一个“退休计划”。你可以设置规则,让数据在30天后自动转到IA,90天后转到Glacier,365天后自动删除。
举个例子,假设你有一个日志桶:
# 生命周期规则示例
{
"Rules": [
{
"Id": "LogRetention",
"Status": "Enabled",
"Filter": {
"Prefix": "logs/"
},
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 90,
"StorageClass": "GLACIER"
}
],
"Expiration": {
"Days": 365
}
}
]
}
3.2 EBS卷类型与快照
EBS,就是云上的虚拟硬盘。它挂载在EC2实例上,就像你电脑里的C盘、D盘。但EBS有很多种类型,选错了,性能可能差10倍。
3.2.1 EBS卷类型
EBS主要分两类:SSD和HDD。SSD适合数据库、高IOPS场景;HDD适合日志、大数据处理。
| 类型 | 最大IOPS | 最大吞吐量 | 适用场景 |
|---|---|---|---|
| gp3 (通用型SSD) | 16,000 | 1000 MB/s | 大多数工作负载,性价比高 |
| io2 (高IOPS SSD) | 256,000 | 4000 MB/s | 数据库、延迟敏感应用 |
| st1 (吞吐优化HDD) | 500 | 500 MB/s | 大数据、日志处理 |
| sc1 (冷存储HDD) | 250 | 250 MB/s | 冷数据、备份 |
3.2.2 快照与备份
快照,就是EBS卷的“照片”。你可以随时拍一张,以后可以恢复到任意时间点。我个人习惯每天自动拍一次快照,保留7天。
# 创建快照的命令
aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description "Daily backup"
3.3 EFS与FSx文件系统选型
文件系统,就是多个服务器可以共享的存储。比如,你的Web服务器集群需要共享一个目录,那就用EFS或FSx。
3.3.1 EFS(弹性文件系统)
EFS是AWS自家的NFS文件系统。它最大的特点就是弹性扩展——你不需要提前规划容量,用多少算多少。我特别喜欢它的一点是,多个EC2实例可以同时挂载同一个EFS,数据实时同步。
适用场景:
- Web服务器共享静态文件
- 大数据分析(如Spark)
- 容器化应用的持久化存储
3.3.2 FSx(托管文件系统)
FSx是AWS提供的托管文件系统家族。它支持多种协议,比如Windows的SMB、Lustre(高性能计算)、NetApp ONTAP等。
| 类型 | 协议 | 适用场景 |
|---|---|---|
| FSx for Windows | SMB | Windows应用、Active Directory集成 |
| FSx for Lustre | Lustre | 高性能计算、机器学习训练 |
| FSx for NetApp ONTAP | NFS/SMB | 企业级存储迁移、混合云 |
| FSx for OpenZFS | NFS | 数据库、开发测试环境 |
3.4 选型总结
好了,我们来总结一下。选存储,其实就三个问题:
- 数据是对象还是文件? 对象用S3,文件用EFS/FSx。
- 性能要求高不高? 高IOPS用EBS io2,高吞吐用FSx Lustre。
- 成本敏感吗? 冷数据用S3 Glacier,热数据用S3 Standard。
你想想看,是不是很简单?其实AWS的存储体系,说白了就是“按需选择”。没有最好的,只有最合适的。
好了,今天就聊到这里。下一章,我们聊聊网络与安全。记得关注公众号:蓝海资料掘金营,微信deep3321,我们下期见。