Amazon EC2 实例计划停用时,我需要了解什么?
上次更新时间:2020 年 4 月 20 日
我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例已计划停用。这是什么意思?
简短描述
当 Amazon Web Services (AWS) 检测到托管实例的基础设施发生无法修复的故障时,该 EC2 实例将会计划停用。
可能导致实例计划停用的问题包括:
- 发生无法恢复的软件相关问题,必须更换软件。
- 发生需要更换硬件的硬件故障,例如电源故障、硬盘故障或其他服务器组件故障。
注意:在计划的事件时间到来前,可能会在您的 Personal Health Dashboard 上显示一条停用通知。您还可以从 Amazon EC2 控制台的计划事件下查看实例的计划事件。您也可使用以下命令来查看实例的计划事件:
在 AWS 命令行界面 (AWS CLI) 中:
describe-instance-status
注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI。
从 AWS Tools for Windows PowerShell 中:
Get-EC2InstanceStatus
解决方法
要在实例停用日期前采取的行动
您必须在实例停用日期前的某个适当时间停止并重新启动该实例。停止并重启实例会将该实例移动到其他运行状况正常的主机。
警告:停止实例之前,您需要注意以下事项:
- 如果您没有使用弹性 IP 地址,则当您停止实例时,将会释放公有 IP 地址。
- 如果此实例具有实例存储卷,当实例停止时,实例上的任何数据都将丢失。有关更多信息,请参阅停止挂载了实例存储卷的实例部分。
注意(仅适用于 Windows 实例):实例存储卷在实例上的“我的计算机”中标记为“临时存储”。 - 如果实例关闭行为设置为终止,则实例停止时将会终止。
- 如果您的实例是 Amazon EC2 Auto Scaling 组的一部分,或者您的实例由使用 AWS Auto Scaling 的服务(例如 Amazon EMR、AWS CloudFormation、AWS Elastic Beanstalk 等)启动,则停止实例可能会导致实例终止。在这种情况下,是否会发生实例终止取决于您的 Auto Scaling 组的实例缩减保护设置。如果您的实例是 Auto Scaling 组的一部分,请在开始执行这些解决步骤之前,临时从 Auto Scaling 组中删除实例。
- 请注意,AWS 不保证按需实例的容量一定可用。按需实例的容量会动态变化,因此当您尝试启动已停止的实例时,您可能会收到 InsufficientInstanceCapacity 错误。要避免此错误,您可以使用按需容量预留。
要防止意外停机和数据丢失,应在实例停用日期前采取行动做好准备。需要的操作取决于实例的根设备类型。有关更多信息,以及要确定您的实例根设备属于 Amazon Elastic Block Store (Amazon EBS) 卷还是实例存储卷,请参阅:
停止和启动 EBS 支持的实例
收到实例停用通知时,底层主机已经进入阻止在硬件上再次启动实例的状态。停止并重启操作会将您的实例移动到新的底层硬件,无需您采取任何进一步的操作。您无需担心会丢失数据。停止并重新启动您的实例时,存储在 EBS 卷上的数据会持久存在。
由于底层硬件降级,EBS 支持的实例可能会卡在“正在停止”状态。您可以使用控制台或 AWS 命令行界面 (AWS CLI) 强制停止实例。此操作最多可能需要 10 分钟。有关更多信息,请参阅排查实例的停止问题。
停止挂载了实例存储卷的实例
实例停止时,实例存储卷上的数据将不再保留。要防止数据丢失,请使用远程桌面协议 (RDP) 连接到您的实例。然后,将实例存储卷上的数据移动到挂载的 EBS 卷中。有关更多信息,请参阅实例存储生命周期。如果实例的根设备属于实例存储卷,则实例将在其停止时终止,且无法再次使用。
构建容错型架构
通过构建容错型架构来减少甚至消除停机时间。有关更多信息,请参阅 AWS Well-Architected。
在停用日期前已经无法连接的实例
由于实例停用往往是因意外的软件或硬件故障所导致,底层主机可能会在计划停用日期之前已经无法访问。AWS 会努力在规定的日期之前保持实例可以访问,并且在某些情况下,可能会将主机恢复正常工作。
要将实例迁移到运行正常的新主机,您可以停止并重启实例。在停止并重启后,实例停用将不再适用,也无需采取进一步措施。
有关更多信息,请参阅我收到一则通知,指出 Amazon EC2 检测到托管我的 EC2 实例的基础硬件性能出现降级。我需要怎么做?