# 第13天:EBS 与 EFS——块存储和文件存储 ## 今天你将学到什么 昨天学了 S3(对象存储),今天学另外两种存储:EBS(块存储)和 EFS(文件存储)。学完你就能搞清楚:什么时候用"硬盘",什么时候用"共享文件夹",什么时候用"网盘"。 --- ## 三种存储的区别——用办公室来理解 想象你在一个办公室工作: **EBS(块存储)= 你桌上的抽屉** - 只有你一个人能用(一个 EBS 卷通常只能挂载到一台 EC2) - 速度最快(就在手边) - 大小固定(抽屉就那么大,想换大的要买新的) - 电脑关机了抽屉还在(数据持久化) **EFS(文件存储)= 办公室的共享文件柜** - 所有人都能用(多台 EC2 可以同时访问) - 速度还行(要走几步路去文件柜) - 大小自动调整(文件多了自动加柜子,少了自动减) - 大家看到的是同一份文件 **S3(对象存储)= 公司的云盘** - 通过网络访问(打开浏览器上传下载) - 容量无限 - 不能直接当"硬盘"用(不能在上面安装软件或运行程序) - 适合存放不经常修改的文件 --- ## EBS(Elastic Block Store)详解 EBS 是 EC2 实例的"硬盘"。每台 EC2 至少需要一个 EBS 卷来存放操作系统。 ### EBS 的特点 - **持久化**:即使 EC2 实例停止了,EBS 上的数据还在(就像电脑关机了硬盘数据不会丢) - **同一 AZ**:EBS 卷和 EC2 实例必须在同一个可用区 - **可以扩容**:硬盘不够大了可以扩容(但不能缩小) - **可以做快照**:把当前状态"拍照"保存,以后可以从快照恢复 ### EBS 卷的类型 就像买硬盘有 SSD 和机械硬盘之分: | 类型 | 名称 | 速度 | 价格 | 适合场景 | |------|------|------|------|----------| | gp3 | 通用 SSD | 快 | 中等 | **大多数场景首选** | | io2 | 高性能 SSD | 最快 | 贵 | 数据库、对速度要求极高的应用 | | st1 | 吞吐优化 HDD | 中等 | 便宜 | 大数据、日志处理(顺序读写多) | | sc1 | 冷存储 HDD | 慢 | 最便宜 | 很少访问的数据 | **学习阶段选 gp3 就对了**,性价比最好。 ### EBS 快照(Snapshot) 快照就是给硬盘"拍照"——记录某一时刻的完整状态。 **用途**: - **备份**:定期给数据库的硬盘拍快照,万一数据损坏可以恢复 - **复制**:从快照创建新的 EBS 卷(可以跨可用区甚至跨 Region) - **创建 AMI**:把配置好的服务器做成模板,以后快速复制 **快照是增量的**:第一次拍全量,之后只保存变化的部分。所以不会占用太多空间。 ### EBS 的限制 - 通常只能挂载到**一台** EC2 实例(就像一块硬盘只能插在一台电脑上) - 必须和 EC2 在**同一个可用区**(不能跨 AZ 挂载) - 大小需要**预先指定**(虽然可以扩容,但不能缩小) --- ## EFS(Elastic File System)详解 EFS 是一个共享文件系统,多台 EC2 可以同时读写同一个文件系统。 ### 什么时候需要 EFS **场景一:Web 服务器集群共享文件** 你有 5 台 Web 服务器(通过 Auto Scaling 管理),它们都需要访问同一批用户上传的文件。 - 用 EBS?每台服务器有自己的硬盘,文件不同步。用户上传到服务器 A 的文件,服务器 B 看不到。 - 用 EFS?所有服务器挂载同一个文件系统,文件自动同步。用户上传一次,所有服务器都能看到。 **场景二:容器共享数据** 多个容器需要读写同一批配置文件或数据文件。 **场景三:机器学习训练** 多台训练机器需要读取同一个大型数据集。 ### EFS 的特点 - **自动伸缩**:不需要预设容量。存了 1GB 就占 1GB 的空间,存了 1TB 就占 1TB。用多少算多少。 - **多实例共享**:几百台 EC2 可以同时挂载同一个 EFS - **跨可用区**:数据自动在多个 AZ 间复制(高可用) - **标准文件系统接口**:对应用来说就像本地文件夹一样,不需要修改代码 ### EFS 的存储类别 和 S3 类似,EFS 也有分层存储来省钱: | 类别 | 说明 | 价格 | |------|------|------| | Standard | 经常访问的文件 | $0.30/GB/月 | | Infrequent Access | 不常访问的文件 | $0.025/GB/月 | 可以设置生命周期策略:30 天没访问的文件自动移到 IA 层,再次访问时自动移回来。 ### EFS vs EBS 对比 | 特性 | EBS | EFS | |------|-----|-----| | 类比 | 个人硬盘 | 共享文件柜 | | 访问方式 | 一台 EC2 独占 | 多台 EC2 共享 | | 容量 | 预设大小 | 自动伸缩 | | 跨 AZ | 不支持 | 支持 | | 速度 | 更快(本地挂载) | 稍慢(网络文件系统) | | 价格 | 较便宜 | 较贵 | | 适合 | 数据库、操作系统盘 | 共享内容、容器存储 | --- ## 怎么选择存储类型 遇到存储需求时,问自己这几个问题: ``` 需要当"硬盘"用(装系统、跑数据库)? → EBS 需要多台机器共享同一批文件? → EFS 通过 API/URL 上传下载,不需要挂载为磁盘? → S3 需要 Windows 文件共享(SMB 协议)? → FSx for Windows 需要超高性能的并行文件系统(HPC/机器学习)? → FSx for Lustre ``` --- ## 今天的小测验 1. EBS 和 EFS 最大的区别是什么? 2. 如果你有 3 台 Web 服务器需要访问同一批图片文件,应该用 EBS 还是 EFS?为什么? 3. EBS 快照有什么用?它是全量备份还是增量备份? 4. 为什么 EBS 不能跨可用区挂载? --- ## 延伸阅读 - [EBS 卷类型对比](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) - [EFS 用户指南](https://docs.aws.amazon.com/efs/latest/ug/) - [AWS 存储服务选择指南](https://aws.amazon.com/products/storage/) --- ## 明天预告 明天进入数据库领域:RDS(关系型数据库服务)。让 AWS 帮你管理 MySQL、PostgreSQL,你再也不用半夜被叫起来修数据库了。