实例的计划事件 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

实例的计划事件

Amazon 可为您的实例计划事件,例如重启、停止/启动或停用。这些事件不会频繁发生。如果您的一个实例将受某计划事件影响,则 Amazon 将在该计划事件发生之前向与您的 Amazon 账户关联的电子邮件地址发送电子邮件。该电子邮件将提供有关该事件的详细信息,包括开始和结束日期。根据事件的不同,您也许能够采取操作来控制事件的发生时间。Amazon 还会发送 Amazon Health 事件,您可以使用 Amazon CloudWatch Events 对该事件进行监控和管理。有关使用 CloudWatch 监控 Amazon Health 事件的详细信息,请参阅使用 CloudWatch Events 监控 Amazon Health 事件

计划的事件由 Amazon 管理;您无法为实例计划事件。您可以查看由 Amazon,在计划重新启动、停用或停止实例时执行操作。

要更新账户的联系人信息以确保获得有关计划事件的通知,请转至 Account Settings 页。

注意

当实例受计划事件的影响并且它属于自动扩缩组的一部分时,Amazon EC2 Auto Scaling 最终将其替换为其运行状况检查的一部分,您无需采取进一步措施。有关由 Amazon EC2 Auto Scaling 执行的运行状况检查的更多信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的 Auto Scaling 实例的运行状况检查

计划的事件类型

Amazon EC2 可以创建以下类型的实例事件,其中事件在计划的时间发生:

  • 实例停止:实例在计划的时间停止。再次启动实例时,实例会迁移至新主机。仅适用于 Amazon EBS 支持的实例。

  • 实例停用:在计划的时间,由 Amazon EBS 支持的实例将停止;由实例存储支持的实例将终止。

  • 实例重启:在计划的时间实例重启。

  • 系统重启:在计划的时间实例的主机重启。

  • 系统维护:在计划的时间,实例可能会因网络维护或电源维护受到暂时的影响。

查看计划的事件

除了通过电子邮件接收计划事件的通知外,您还可使用以下方法之一查看计划的事件。

Console
查看实例的计划事件
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 控制面板的计划的事件下将显示与事件关联的所有资源。

    
                                         使用控制面板查看事件。
  3. 有关更多详细信息,在导航窗格中,选择事件。将显示与事件关联的所有资源。您可以按事件类型、资源类型和可用区等特征进行筛选。

    
                                         使用“Events”页查看事件。
Amazon CLI
查看实例的计划事件

使用 describe-instance-status 命令。

aws ec2 describe-instance-status \ --instance-id i-1234567890abcdef0 \ --query "InstanceStatuses[].Events"

以下示例输出显示重启事件:

[ "Events": [ { "InstanceEventId": "instance-event-0d59937288b749b32", "Code": "system-reboot", "Description": "The instance is scheduled for a reboot", "NotAfter": "2019-03-15T22:00:00.000Z", "NotBefore": "2019-03-14T20:00:00.000Z", "NotBeforeDeadline": "2019-04-05T11:00:00.000Z" } ] ]

以下示例输出显示实例停用事件。

[ "Events": [ { "InstanceEventId": "instance-event-0e439355b779n26", "Code": "instance-stop", "Description": "The instance is running on degraded hardware", "NotBefore": "2015-05-23T00:00:00.000Z" } ] ]
PowerShell
使用 Amazon Tools for Windows PowerShell 查看实例的计划事件

使用以下 Get-EC2InstanceStatus 命令。

PS C:\> (Get-EC2InstanceStatus -InstanceId i-1234567890abcdef0).Events

以下示例输出显示实例停用事件。

Code : instance-stop Description : The instance is running on degraded hardware NotBefore : 5/23/2015 12:00:00 AM
Instance metadata
使用实例元数据查看实例的计划事件

您可以使用实例元数据服务版本 2 或实例元数据服务版本 1 从实例元数据中检索有关实例的活动维护事件的信息。

IMDSv2

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/events/maintenance/scheduled

IMDSv1

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/maintenance/scheduled

以下是 JSON 格式的计划系统重启事件信息的示例输出。

[ { "NotBefore" : "21 Jan 2019 09:00:43 GMT", "Code" : "system-reboot", "Description" : "scheduled reboot", "EventId" : "instance-event-0d59937288b749b32", "NotAfter" : "21 Jan 2019 09:17:23 GMT", "State" : "active" } ]
使用实例元数据查看有关实例的已完成或已取消事件的事件历史记录

您可以使用实例元数据服务版本 2 或实例元数据服务版本 1 从实例元数据中检索有关已完成或已取消的事件的信息。

IMDSv2

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/events/maintenance/history

IMDSv1

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/maintenance/history

以下是 JSON 格式的已取消和已完成系统重启事件相关信息的示例输出。

[ { "NotBefore" : "21 Jan 2019 09:00:43 GMT", "Code" : "system-reboot", "Description" : "[Canceled] scheduled reboot", "EventId" : "instance-event-0d59937288b749b32", "NotAfter" : "21 Jan 2019 09:17:23 GMT", "State" : "canceled" }, { "NotBefore" : "29 Jan 2019 09:00:43 GMT", "Code" : "system-reboot", "Description" : "[Completed] scheduled reboot", "EventId" : "instance-event-0d59937288b749b32", "NotAfter" : "29 Jan 2019 09:17:23 GMT", "State" : "completed" } ]
Amazon Health

您可以使用 Amazon Health Dashboard 了解可能影响您的实例的事件。Amazon Health Dashboard 会分三组管理问题:未处理问题、已计划更改和其他通知。已计划更改组包含正在进行或即将进行的项目。

有关更多信息,请参阅 Amazon Health 用户指南中的 Amazon Health Dashboard 入门

使用计划停止或停用的实例

当 Amazon 检测到您的实例的基础主机存在无法修复的故障时,它将计划实例停止或终止,这取决于实例根设备的类型。如果根设备为 EBS 卷,则将计划实例停止。如果根设备为实例存储卷,则将计划实例终止。有关更多信息,请参阅实例指令引退

重要

实例停止、休眠或终止后,实例存储卷上存储的所有数据都会丢失。这包括附加到使用 EBS 卷作为根设备的实例的实例存储卷。在实例停止、休眠或终止之前,请务必保存实例存储卷中以后可能需要的数据。

Amazon EBS 支持的实例操作

您可等待实例按计划停止。您也可自行停止并启动实例,这会将实例迁移至新的主机。有关停止实例的更多信息,以及有关实例停止时的实例配置更改的信息,请参阅 停止和启动您的实例

您可以自动化立即停止并启动以响应计划的实例停止事件。有关更多信息,请参阅《Amazon Health 用户指南》中的自动化 Amazon EC2 实例的操作

实例存储支持的实例的操作

建议您在实例按计划终止之前,从最新的 AMI 启动替代实例并将所有必需数据迁移至替代实例。然后,您可终止原始实例,或等待其按计划终止。

使用计划重启的实例

当 Amazon 必须执行安装更新或维护基础主机等任务时,它可计划实例或基础主机进行重启。您可以重新计划大部分重启事件,以便您的实例在适合您的特定日期和时间重启。

查看重启事件类型

您可以使用以下方法之一来查看某个重启事件是实例重启还是系统重启。

Console
查看计划重启事件的类型
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Events

  3. 从筛选器列表中选择 Resource type: instance (资源类型:实例)

  4. 对于每个实例,查看 Event Type (事件类型) 列中的值。该值为 system-rebootinstance-reboot

Amazon CLI
查看计划重启事件的类型

使用 describe-instance-status 命令。

aws ec2 describe-instance-status \ --instance-id i-1234567890abcdef0

对于计划的重启事件, Code 的值是 system-rebootinstance-reboot。以下示例输出显示 system-reboot 事件。

[ "Events": [ { "InstanceEventId": "instance-event-0d59937288b749b32", "Code": "system-reboot", "Description": "The instance is scheduled for a reboot", "NotAfter": "2019-03-14T22:00:00.000Z", "NotBefore": "2019-03-14T20:00:00.000Z", "NotBeforeDeadline": "2019-04-05T11:00:00.000Z" } ] ]
实例重启操作

您可以等待实例重启在计划的维护时段进行,或者重新计划实例重启在适合您的日期和时间进行,或者在您方便的时间自行重新启动实例。

在实例重启之后,将清除计划的事件并更新事件说明。底层主机上的所有挂起维护都会完成,并且在实例完全启动后,即可再次开始使用您的实例。

系统重启操作

您无法自行重启系统。您可以等待系统重启在计划的维护时段进行,或者您可以重新计划系统重启在适合您的日期和时间进行。系统重启通常在几分钟内完成。在系统重启之后,实例将保留其 IP 地址和 DNS 名称,并且本地实例存储卷上的任何数据将会得到保留。在系统重启完成之后,将清除实例的计划事件,并且您可验证实例上的软件是否按预期运行。

或者,如果有必要在其他时间维护实例,并且您无法重新计划系统重启,则您可以停止并启动 Amazon EBS 支持的实例,这会将它迁移到新主机。但是,本地实例存储卷上的数据将不会保留。您也可以自动化立即停止并启动实例以响应计划的系统重启事件。有关更多信息,请参阅 Amazon Health 用户指南中的自动化 EC2 实例的操作。对于由实例存储支持的实例,如果您无法重新计划系统重启,可在计划的维护时段之前从最新的 AMI 启动替代实例,并将所有必需数据迁移至替代实例,然后终止原始实例。

使用计划维护的实例

当 Amazon 必须维护实例的基础主机时,它将计划实例的维护。维护事件有两种:网络维护和电源维护。

在网络维护期间,计划的实例会在短时间内失去网络连接。在维护完成后,将恢复与实例的正常网络连接。

在电源维护期间,计划的实例将短时间脱机,然后重启。执行重启后,将保留您的所有实例的配置设置。

在实例重启后 (这通常需要几分钟),验证您的应用程序是否按预期运行。此时,您的实例应该不再具有与之关联的计划事件,或者如果有,该计划事件的描述应该以 [Completed] 开头。实例状态说明的刷新有时需要长达 1 个小时。已完成的维护事件将在 Amazon EC2 控制台面板上显示长达一周时间。

Amazon EBS 支持的实例操作

您可等待维护按计划进行。您也可停止并启动实例,这会将实例迁移至新的主机。有关停止实例的更多信息,以及有关实例停止时的实例配置更改的信息,请参阅 停止和启动您的实例

您可以自动化立即停止并启动以响应计划维护事件。有关更多信息,请参阅 Amazon Health 用户指南中的自动化 EC2 实例的操作。

实例存储支持的实例的操作

您可等待维护按计划进行。或者,如果您想在计划的维护时间段内保持正常操作,可在计划的维护时间段之前从最新的 AMI 启动替代实例,并将所有必需数据迁移至替代实例,然后终止原始实例。

重新安排计划的事件

您可以重新安排一个事件,以便它在适合您的特定日期和时间发生。只有具有截止期限的事件才可以重新计划。重新计划事件还有其他限制

您可以使用以下方法之一重新计划事件。

Console
重新安排事件
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Events

  3. 从筛选器列表中选择 Resource type: instance (资源类型:实例)

  4. 选择一个或多个实例,然后依次选择 Actions (操作)Schedule Event (计划事件)

    只有具有事件截止期限(由 Deadline (截止期限) 值指示)的事件才可以重新计划。如果某个选定的事件没有截止期限,则会禁用 Actions (操作) 下的 Schedule Event (计划事件)

  5. 对于 New start time (新的开始时间),为事件输入新的日期和时间。新的日期和时间必须早于 Event deadline (事件截止期限)

  6. 选择保存

    更新的事件开始时间可能需要一两分钟才会反映在控制台中。

Amazon CLI
重新安排事件
  1. 只有具有事件截止日期(由 NotBeforeDeadline 的值指示)才可以重新计划。使用 describe-instance-status 命令查看 NotBeforeDeadline 参数值。

    aws ec2 describe-instance-status \ --instance-id i-1234567890abcdef0

    以下示例输出显示因 system-reboot 包含值而可以重新计划的 NotBeforeDeadline 事件。

    [ "Events": [ { "InstanceEventId": "instance-event-0d59937288b749b32", "Code": "system-reboot", "Description": "The instance is scheduled for a reboot", "NotAfter": "2019-03-14T22:00:00.000Z", "NotBefore": "2019-03-14T20:00:00.000Z", "NotBeforeDeadline": "2019-04-05T11:00:00.000Z" } ] ]
  2. 若要重新计划事件,应使用 modify-instance-event-start-time 命令。使用 not-before 参数指定新的事件开始时间。新的事件开始时间必须早于 NotBeforeDeadline

    aws ec2 modify-instance-event-start-time \ --instance-id i-1234567890abcdef0 \ --instance-event-id instance-event-0d59937288b749b32 \ --not-before 2019-03-25T10:00:00.000

    describe-instance-status 命令返回更新的 not-before 参数值之前可能需要一两分钟。

限制

  • 只有具有事件截止日期的事件才可以重新计划。可以将事件重新计划到事件截止日期之前的日期。控制台中的 Deadline (截止期限) 列和 NotBeforeDeadline 中的 Amazon CLI 字段指示了事件是否具有截止期限。

  • 只有尚未开始的事件才可以重新计划。控制台中的 Start time (开始时间) 列和 NotBefore 中的 Amazon CLI 字段指示了事件的开始时间。还有 5 分钟便要按计划开始的事件无法重新计划。

  • 新的事件开始时间离当前时间必须至少有 60 分钟。

  • 如果您使用控制台重新计划多个事件,则事件截止期限由具有最早的事件截止期限的事件决定。