Amazon EC2 实例存储
实例存储 为您的实例提供临时性块级存储。此存储位于已物理附加到主机的磁盘上。实例存储非常适合临时存储频繁更改的信息,例如缓冲区、缓存、Scratch 数据和其他临时内容。它还可用于存储您在一组实例中复制的临时数据,例如负载均衡的 Web 服务器池。
实例存储由一个或多个显示为块储存设备的实例存储卷组成。实例存储的大小以及可用设备的数量因实例类型和实例大小而异。有关更多信息,请参阅 实例存储卷。
实例存储卷的虚拟设备为 ephemeral[0-23]
。支持一个实例存储卷的实例类型具有 ephemeral0
。支持两个或多个实例存储卷的实例类型有 ephemeral0
和 ephemeral1
等。
实例存储定价
实例存储卷包含在实例使用成本中。
实例存储卷和数据生命周期
实例存储卷的数量、大小和类型根据实例类型和实例大小决定。有关更多信息,请参阅 实例存储卷。
只有在实例启动时才会附加实例存储卷。无法在启动实例后附加实例存储卷。您无法将实例存储卷与一个实例分离并将该卷附加到另一个实例。
实例存储卷仅在其连接的实例的生命周期内存在。您无法将实例存储卷的生命周期配置为在其关联实例的生命周期之后保留。
即使实例重启,实例存储卷上的数据仍会保留。但是,如果实例停止、休眠或终止,则数据不会保留。当实例停止、休眠或终止后,实例存储卷的每个块都会通过加密方式删除。
因此,切勿依赖实例存储卷来存储珍贵且需要长期保存的数据。如果您需要在实例的生命周期之后保留存储在实例存储卷上的数据,需要手动将该数据复制到更持久的存储中,例如 Amazon EBS 卷、Amazon S3 存储桶或 Amazon EFS 文件系统。
有些事件可能导致数据无法在实例的整个生命周期内持续存在。下表显示了虚拟化实例和裸机实例的实例存储卷上的数据在特定事件期间是否会永久保存。
事件 | 您的数据会如何处理? |
---|---|
用户启动的实例生命周期事件 | |
实例重启 | The data persists |
实例停止 | The data does not persist |
实例休眠 | The data does not persist |
实例终止 | The data does not persist |
实例类型更改 | The data does not persist * |
从实例创建 Windows AMI | The data does not persist in the created AMI ** |
从实例创建 EBS 支持的 AMI | The data does not persist in the created AMI ** |
从实例创建实例存储支持的 AMI | The data persists in the AMI bundle uploaded to Amazon S3 *** |
用户启动的操作系统事件 | |
A shutdown is initiated | The data does not persist † |
A restart is initiated | The data persists |
Amazon 计划的事件 | |
实例停止 | The data does not persist |
实例重启 | The data persists |
系统重启 | The data persists |
实例指令引退 | The data does not persist |
计划外事件 | |
简化的自动恢复 | The data does not persist |
CloudWatch 基于操作的恢复 | The data does not persist |
The underlying disk fails | The data on the failed disk does not persist |
Power failure | The data persists upon reboot |
* 如果新实例类型支持实例存储,该实例将获得新实例类型支持的实例存储卷数,但数据不会传输到新实例。如果新的实例类型不支持实例存储,实例将无法获得实例存储卷。
** 数据不包含在 EBS 支持的 AMI 中,也不包含在连接到从该 AMI 启动的实例的实例存储卷中。
*** 数据会包含在上传至 Amazon S3 的 AMI 捆绑包中。当您从该 AMI 启动实例时,该实例会将实例存储卷与创建 AMI 时它们所包含的数据捆绑在 AMI 中。
† 终止保护和停止保护不能让实例避免因实例上操作系统启动的关机引起的实例停止或终止。存储在实例存储卷上的数据不会在实例停止和终止事件中持续存在。
实例存储卷
实例存储卷的数量、大小和类型根据实例类型和实例大小决定。某些实例类型(例如,M6、C6 和 R6)不支持实例存储卷,而其他实例类型(例如,M5d、C6gd 和 R6gd)可支持实例存储卷。您向实例附加的实例存储卷不能超过其实例类型所支持的数量。对于支持实例存储卷的实例类型,实例存储卷的数量和大小因实例大小而异。例如,m5d.large
支持 1 x 75 GB 的实例存储卷,而 m5d.24xlarge
支持 4 x 900GB 的实例存储卷。
对于具有 NVMe 实例存储卷的实例类型,所有支持的实例存储卷都会在启动时自动连接到实例。对于具有非 NVMe 实例存储卷的实例类型(例如,C1、C3、M1、M2、M3、R3、D2、H1、I2、X1 和 X1e),您必须在启动时为要连接的实例存储卷手动指定块设备映射。然后,在实例启动后,必须先格式化并装载连接的实例存储卷,然后才能使用它们。无法在启动实例后附加实例存储卷。
某些实例类型使用基于 NVMe 或 SATA 的固态硬盘(SSD),而其他实例类型使用基于 SATA 的硬盘驱动器(HDD)。SSD 提供高随机 I/O 性能,且延迟非常低;但实例终止时不需要保留数据,或者可以利用容错架构。有关更多信息,请参阅 SSD 实例存储卷。
NVMe 实例存储卷和某些 HDD 实例存储卷上的数据采用静态加密。有关更多信息,请参阅 Amazon EC2 中的数据保护。
可用的实例存储卷
《Amazon EC2 实例类型指南》提供每种支持的实例类型可以使用的实例存储卷的数量、大小、类型和性能优化。有关更多信息,请参阅下列内容:
使用 Amazon CLI 检索实例存储卷信息
您可以使用 describe-instance-types Amazon CLI 命令来显示有关实例类型的信息,例如其实例存储卷。以下示例显示了包含实例存储卷的所有 R5 实例的实例存储总大小。
aws ec2 describe-instance-types \ --filters "Name=instance-type,Values=r5*" "Name=instance-storage-supported,Values=true" \ --query "InstanceTypes[].[InstanceType, InstanceStorageInfo.TotalSizeInGB]" \ --output table
示例输出
---------------------------
| DescribeInstanceTypes |
+----------------+--------+
| r5ad.24xlarge | 3600 |
| r5ad.12xlarge | 1800 |
| r5dn.8xlarge | 1200 |
| r5ad.8xlarge | 1200 |
| r5ad.large | 75 |
| r5d.4xlarge | 600 |
. . .
| r5dn.2xlarge | 300 |
| r5d.12xlarge | 1800 |
+----------------+--------+
以下示例显示指定实例类型的完整实例存储详细信息。
aws ec2 describe-instance-types \ --filters "Name=instance-type,Values=r5d.4xlarge" \ --query "InstanceTypes[].InstanceStorageInfo"
示例输出显示,此实例类型有两个 300 GB 的 NVMe SSD 卷,总共 600 GB 的实例存储空间。
[
{
"TotalSizeInGB": 600,
"Disks": [
{
"SizeInGB": 300,
"Count": 2,
"Type": "ssd"
}
],
"NvmeSupport": "required"
}
]