一句话先记住
EBS = 给一台 EC2 用的硬盘
EFS = 多台 EC2 共享的文件系统
S3 = 不挂载服务器的对象存储
一、EBS(Elastic Block Store)
本质
EC2 的“外接硬盘”
核心特点
一块卷 ≈ 一台 EC2
低延迟、高 IOPS
操作系统、数据库首选
生命周期独立于 EC2
适合场景:操作系统启动盘、数据库(MySQL / PostgreSQL / MongoDB)、企业应用、需要频繁随机 I/O 的系统
不适合:多台 EC2 共享同一份数据、海量静态文件
二、EFS(Elastic File System)
本质
云上的 NFS(共享文件系统)
核心特点
多台 EC2 / ECS / Lambda 可同时挂载
自动扩缩容
POSIX 文件系统
文件锁、目录结构完整
适合场景:多实例共享代码或数据、Web 服务器共享上传目录、CI/CD、用户 home 目录
不适合:超低延迟数据库、单机性能敏感应用
三、S3(Simple Storage Service)
本质
对象存储 + HTTP 访问
核心特点
不挂载
不在 VPC 里
无限容量
高耐久(11 个 9)
适合场景:图片 / 视频 / 音频、静态网站资源、备份 / 日志、大数据 / 数据湖
不适合:需要文件锁的应用、需要随机小写入的数据库
四、一个“秒选存储”的判断口诀(非常好用)
需要像硬盘一样用 → EBS
需要多台机器共享文件 → EFS
需要存很多文件、不关心目录 → S3
五、和传统数据中心的类比(帮助理解)
AWS 传统
EBS DAS / SAN
EFS NAS
S3 (云原生对象存储)
六、真实架构中常见组合(加深理解)
Web 应用
EC2 Root Disk → EBS
用户上传文件 → S3
多实例共享配置 → EFS
数据库
数据文件 → EBS
备份 → S3
Serverless
数据 → S3
状态 → DynamoDB(不是 EBS / EFS)
七、最容易被问的“误区澄清”
❌ EFS 能不能替代 EBS?
答案是不能
性能模型完全不同
❌ S3 能不能当硬盘用?
不能,没有文件系统语义
❌ EBS 能不能跨 AZ 共享?
不能,卷固定在一个 AZ
八、一句话“架构师级总结”
EBS 提供性能与控制,EFS 提供共享与协作,S3 提供规模与弹性;它们解决的是完全不同层次的问题,选错存储,系统一定会出问题。
