休眠中断的竞价型实例
您可以指定 Amazon EC2 在竞价型实例中断时将其休眠。有关更多信息,请参阅指定中断行为。
当 Amazon EC2 休眠竞价型实例时,会出现以下情况:
-
在实例从 Amazon EC2 收到信号时,该代理将提示操作系统休眠。如果未安装该代理,或底层操作系统不支持休眠,或者没有足够的卷空间以保存实例内存,休眠将失败并且 Amazon EC2 停止该实例。
-
实例内存 (RAM) 保留在根卷上。
-
将会保留实例的 EBS 卷和私有 IP 地址。
-
不会保留实例存储卷和公有 IP 地址(非弹性 IP 地址)。
有关将按需实例休眠的信息,请参阅休眠 Linux 按需型实例。
注意事项
-
只有 Amazon EC2 才能让竞价型实例休眠。您无法手动让竞价型实例休眠。
-
只有 Amazon EC2 才能恢复休眠的竞价型实例。您无法手动恢复休眠的竞价型实例。
-
当有容量可用时,Amazon EC2 会恢复实例。
-
当 Amazon EC2 休眠竞价型实例时,休眠立即开始。您将收到一条中断通知,但不会在竞价型实例中断之前留出两分钟的时间。
-
在实例进行休眠过程中,实例运行状况检查可能会失败。
-
在休眠过程完成时,实例状态为
stopped
。 -
在实例休眠时,仅向您收取 EBS 卷费用。对于 EC2 实例集和 Spot 实例集,如果具有很多休眠的实例,则可能会超出您的账户的 EBS 卷数限制。
-
确保您熟知休眠实例的影响。有关实例休眠可能会发生情况的更多信息,请参阅 重启、停止、休眠和终止之间的区别。
先决条件
要使竞价型实例休眠,必须满足以下先决条件:
- 竞价型请求类型
-
竞价型实例请求类型 – 必须为
persistent
。您不能在竞价型实例请求中指定启动组。EC2 机群或竞价型实例集请求类型 – 必须为
maintain
。 - 支持的 Linux AMI
-
以下支持 AMI 包含休眠代理。要使用以下 AMI 的早期版本,您必须安装休眠代理。
-
Amazon Linux 2 2019.08.29 或更高版本
-
Amazon Linux AMI 2017.09.1 或更高版本
-
Ubuntu Xenial 16.04 20171121 或更高版本 ¹
¹ 要使用早期版本的 Ubuntu Xenial AMI,它必须具有由 Amazon 调优的高于 4.4.0-1041 的 Ubuntu 内核版本(
linux-aws
)。有关支持的 Windows AMI 的信息,请参阅 Amazon EC2 用户指南(适用于 Windows 实例)中的先决条件。
-
- 启动休眠代理
-
我们建议您使用用户数据在实例启动时启动该代理。或者,您也可以手动启动该代理。有关更多信息,请参阅在启动时启动休眠代理。
- 支持的实例系列
-
C3、C4、C5、M4、M5、R3、R4
- 实例 RAM 大小
-
必须小于 100GB。
- 根卷类型
-
必须是 EBS 卷,而不是实例存储卷。
- EBS 根卷大小
-
必须足够大以在休眠期间存储实例内存 (RAM)。
- EBS 根卷加密 – 推荐但不是竞价型实例休眠的先决条件
-
我们强烈建议您将加密的 EBS 卷作为根卷,因为在休眠期间实例内存存储在根卷上。这确保在卷上静态存储数据以及在实例和卷之间移动数据时,将加密内存 (RAM) 内容。
可以使用以下三个选项之一,以确保根卷是加密的 EBS 卷:
-
EBS encryption by default(EBS 原定设置加密) - 您可以启用 EBS 原定设置加密,以确保对在您的 Amazon 账户中创建的所有新 EBS 卷进行加密。这样,您就可以为实例启用休眠,而无需在实例启动时指定加密意图。有关更多信息,请参阅默认加密。
-
EBS "single-step" encryption(EBS“单步”加密) - 您可以从未加密的 AMI 中启动 EBS 支持的加密 EC2 实例,并且还可以同时启用休眠。有关更多信息,请参阅将加密与 EBS 支持的 AMI 结合使用。
-
Encrypted AMI(加密的 AMI) - 您可以使用加密的 AMI 启动实例以启用 EBS 加密。如果 AMI 没有加密的根快照,则可以将其复制到新的 AMI 并请求加密。有关更多信息,请参阅 在复制过程中将未加密映像加密 和 复制 AMI。
-
在您的 Linux AMI 上安装休眠代理
您必须在您的 AMI 上安装休眠代理,除非您计划使用已包含该代理的 AMI。
以下说明介绍了如何在 Linux AMI 上安装休眠代理。有关在 Windows AMI 上安装休眠代理的说明,请参阅 Amazon EC2 用户指南(适用于 Windows 实例)中的在您的 Windows AMI 上安装休眠代理。
要在 Amazon Linux AMI 上安装休眠代理
-
确认您的内核支持休眠,并在必要时更新内核。
sudo yum update kernel
-
如果您的 AMI 不包含该代理,请安装该代理。
sudo yum update; sudo yum install hibagent
要在 Ubuntu AMI 上安装休眠代理
如果您的 AMI 不包含该代理,请安装该代理。休眠代理仅在 Ubuntu 16.04 或更高版本上可用。
sudo apt-get install hibagent
在启动时启动休眠代理
休眠代理必须在实例启动时运行,无论该代理是包含在您的 AMI 中,还是您自行安装的。
以下说明介绍了如何在 Linux 实例上启动休眠代理。有关在 Windows AMI 上启动休眠代理的说明,请参阅 Amazon EC2 用户指南(适用于 Windows 实例)中的在启动时启动休眠代理。
在竞价型实例上启动休眠代理
按照以下步骤使用您的首选启动方法请求一个竞价型实例,然后将以下内容添加到用户数据中。
#!/bin/bash /usr/bin/enable-ec2-spot-hibernation