EC2 存储:实例存储与 EBS
了解何时使用临时实例存储而不是持久性 EBS 卷,并学习如何选择合适的 EBS 卷类型。
EC2 存储:实例存储与 EBS 是 CoddyKit 上的免费 AWS Solutions Architect 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AWS Solutions Architect 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AWS Solutions Architect 课程共包含 4 节课。
EC2 存储选项概述
EC2 实例可以使用两种类型的本地存储:Instance Store和Amazon EBS (Elastic Block Store)。Instance Store 物理附加在主机服务器上,可提供非常高的 IOPS 和吞吐量,但有一个关键限制:当实例停止或终止时,数据会丢失。EBS 提供持久的网络附加块存储,可在实例停止、启动或终止后继续保留。了解何时使用每种存储是 SAA-C03 考试中反复出现的主题。
Instance Store:临时存储
Instance Store(也称为临时存储)由物理附加到运行您 EC2 实例的主机硬件上的 NVMe SSD 构成。只要实例被停止、休眠或终止,或者底层硬件发生故障,实例存储中的数据就会丢失。但是,数据会在重启后保留。Instance Store 非常适合:缓冲区/缓存/临时数据、临时文件,以及在集群中复制的数据(例如 Cassandra 节点)。并非所有实例类型都包含 Instance Store;请查找 d 后缀(例如 i3.xlarge、m5d.large)。
# List NVMe block devices on an Instance Store instance
lsblk
# Example output:
# NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
# nvme0n1 259:0 0 500G 0 disk /
# nvme1n1 259:1 0 900G 0 disk <- instance storeAmazon EBS:持久块存储
Amazon EBS 卷是独立于 EC2 实例生命周期持续存在的网络附加存储。EBS 卷位于特定的可用区中,一次只能附加到一个 EC2 实例(io1/io2 多重附加除外)。当您停止并重新启动实例时,EBS 卷会保留所有数据。您可以将其从一个实例分离并附加到同一 AZ 中的另一个实例,或者创建快照以将其复制到其他 AZ 或区域。
# Create an EBS volume and attach it to an instance
aws ec2 create-volume \
--size 100 \
--volume-type gp3 \
--availability-zone us-east-1a
aws ec2 attach-volume \
--volume-id vol-0abcdef1234567890 \
--instance-id i-0abcdef1234567890 \
--device /dev/xvdfEBS 卷类型:SSD 选项
AWS 提供四种 EBS 卷类型。gp3(通用型 SSD):基准性能为 3,000 IOPS 和 125 MB/s,可独立配置,最高可达 16,000 IOPS 和 1,000 MB/s——这是大多数工作负载的默认且最具成本效益的选择。gp2:较旧的通用型 SSD,IOPS 随容量扩展(每 GB 3 IOPS,最高 16,000)——目前正逐步被 gp3 取代。io2 Block Express:预配置 IOPS 的 SSD,最高可达 256,000 IOPS 和 4,000 MB/s——适用于 SAP HANA 或 Oracle 等 I/O 密集型数据库。io1:旧版预配置 IOPS SSD。
EBS 卷类型:HDD 选项
两种基于 HDD 的 EBS 类型针对吞吐量进行了优化,而不是 IOPS。st1(吞吐量优化型 HDD):基准性能为 40 MB/s/TB,突发性能可达 250 MB/s/TB——非常适合大数据、日志处理,以及包含大量顺序读取操作的数据仓库。sc1(低温 HDD):基准性能为 12 MB/s/TB,突发性能可达 80 MB/s/TB——对于不经常访问的顺序数据,这是成本最低的 EBS 选项。HDD 卷不能用作启动卷(根设备)。只有在吞吐量比 IOPS 更重要,且数据访问模式以大量顺序读写为主时,才应选择 st1 或 sc1。
EBS 快照
EBS 快照是卷在某个时间点的备份,持久存储在 Amazon S3 中(不过您是通过 EC2 API 访问快照,而不是直接通过 S3 访问)。快照采用增量方式:第一个快照会捕获整个卷,后续快照只记录自上一个快照以来发生变化的数据块,从而降低存储成本。您可以从任意快照在同一 Region 内的任意 AZ 中创建新的 EBS 卷,也可以将快照复制到其他 Region,用于跨 Region 灾难恢复。
# Create a snapshot
aws ec2 create-snapshot \
--volume-id vol-0abcdef1234567890 \
--description 'Daily backup of prod DB volume'
# Copy snapshot to another region for DR
aws ec2 copy-snapshot \
--source-region us-east-1 \
--source-snapshot-id snap-0abcdef1234567890 \
--region eu-west-1 \
--description 'Cross-region DR copy'EBS 加密
EBS 卷和快照可以使用 AWS KMS keys 进行加密。加密对实例是透明的——数据在实例与卷之间传输时,以及存储在介质上静止时,都会经过加密。您可以启用账户级默认加密,这样账户中创建的每个新 EBS 卷都会自动加密,无需针对每个卷单独配置。要加密未加密的卷,需要先创建快照,再创建该快照的加密副本,最后从加密快照创建新卷。
# Enable default EBS encryption for the account
aws ec2 enable-ebs-encryption-by-default --region us-east-1
# Verify it is enabled
aws ec2 get-ebs-encryption-by-default --region us-east-1EBS 多重挂载
EBS Multi-Attach 允许将一个 io1 或 io2 卷同时挂载到最多 16 个 EC2 实例,且这些实例必须位于同一个 Availability Zone。所有已挂载的实例都拥有完整的读写权限。这适用于集群化 Linux 应用程序(例如 Oracle RAC 或 Teradata),此类应用程序使用支持集群的文件系统,在应用程序层管理并发。Multi-Attach 不能替代用于共享文件系统的 EFS——它专门用于由应用程序管理协调的集群化块级访问。
在实例存储和 EBS 之间进行选择
关键决策标准:是否需要持久性? → 使用 EBS。数据可以重新创建或已有副本? → 可以使用实例存储,并获得更高的性能。是否为包含关键数据的数据库? → 始终使用 EBS(配合快照和加密)。是否需要用于机器学习训练或排序操作的临时暂存空间? → 使用实例存储,以零额外成本获得最高吞吐量。考试中经常会给出一些场景,要求您判断某个工作负载适合使用临时存储还是持久性存储。
EBS 优化型实例
EBS 优化型实例在 EC2 实例与 EBS 之间提供专用网络带宽,并且与实例的一般网络带宽分离。这样可以避免应用程序流量与存储 I/O 之间发生网络争用。大多数当前代实例类型默认已针对 EBS 进行优化,且不收取额外费用。较旧的实例类型可能需要手动启用 EBS 优化(并额外支付按小时计费的费用)。对于高 I/O 数据库工作负载,请始终确认实例类型已针对 EBS 进行优化,以充分利用卷预配置的 IOPS。
Amazon 数据生命周期管理器
Amazon Data Lifecycle Manager (DLM) 可自动创建、保留和删除 EBS 快照及 AMI。您可以定义生命周期策略,指定要备份的卷(按标签筛选)、创建快照的频率(每 1、2、3、4、6、8 或 12 小时,或每天一次),以及要保留的快照数量。DLM 无需编写自定义备份脚本,并可与 CloudWatch 集成来监控策略运行状况。对于跨 Region 快照,请在同一个 DLM 定义中配置复制策略。
快速检查
测试您对本课 AWS Solutions Architect (SAA-C03) 概念的理解。
课程回顾
在本课中,您学习了:实例存储提供最高的本地 I/O 性能,但属于临时存储——实例停止或终止后数据会丢失;EBS 提供持久性的网络连接块存储,并提供四种针对 IOPS(gp3、io2)或吞吐量(st1、sc1)进行优化的卷类型;以及 EBS 快照支持存储在 S3 中的时间点备份,可用于跨 AZ 或跨 Region 恢复。接下来,我们将学习 S3 对象存储基础知识。
常见问题解答
「EC2 存储:实例存储与 EBS」课时是免费的吗?
是的 — 「EC2 存储:实例存储与 EBS」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AWS Solutions Architect 课程的其余内容,请升级到 CoddyKit PRO。 AWS Solutions Architect 课程共包含 4 节课。
「EC2 存储:实例存储与 EBS」这节课中我会学到什么?
了解何时使用临时实例存储而不是持久性 EBS 卷,并学习如何选择合适的 EBS 卷类型。 你通过在浏览器中直接运行的动手代码来练习 AWS Solutions Architect,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AWS Solutions Architect 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AWS Solutions Architect 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「EC2 存储:实例存储与 EBS」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AWS Solutions Architect 课中编写并运行代码吗?
能。每节 AWS Solutions Architect 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 启动您的第一个 EC2 实例
- 实例类型与定价模型
- 安全组与密钥对
- EC2 存储:实例存储与 EBS