Amazon Elastic Compute Cloud
用户指南(适用于 Linux 实例)

实例的计划事件

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

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

计划事件的类型

Amazon EC2 为您的实例支持下列类型的计划事件:

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

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

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

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

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

查看计划的事件

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

使用控制台查看实例的计划事件

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Events。将显示与事件关联的所有资源。您可按资源类型或按特定事件类型进行筛选。您可选择资源来查看详细信息。

    
                             使用“Events”页查看事件。
  3. 或者,在导航窗格中,选择 EC2 DashboardScheduled Events 下将显示与事件关联的所有资源。

    
                             使用控制面板查看事件。
  4. 还将显示受影响资源的一些事件。例如,在导航窗格中,选择 Instances (实例),然后选择一个实例。如果所选实例具有关联的实例停止或实例停用事件,则该事件将显示在底部窗格中。

    
                             在实例详细信息中查看事件。

使用 AWS 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" } ] ]

使用 适用于 Windows PowerShell 的 AWS 工具 查看实例的计划事件

  • 使用以下 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

使用实例元数据查看实例的计划事件

  • 您可以从实例元数据中检索有关实例的活动维护事件的信息,如下所示。

    [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" } ]

使用实例元数据查看有关实例的已完成或已取消事件的事件历史记录

  • 您可以从实例元数据中检索有关实例的已完成或已取消事件的信息,如下所示。

    [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" } ]

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

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

重要

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

Amazon EBS 支持的实例操作

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

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

实例存储支持的实例操作

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

使用计划为重启的实例

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

查看重启事件类型

您可以使用 AWS 管理控制台、AWS CLI, 或 Amazon EC2 API 来查看某个重启事件是实例重启还是系统重启。

查看计划的重启事件的类型(控制台)

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

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

  3. 从筛选器列表中选择 Instance resources (实例资源)

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

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

重新计划重启事件

您可以重新计划大部分重启事件,以便您的实例在适合您的特定日期和时间重启。

重新计划重启事件(控制台)

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

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

  3. 从筛选器列表中选择 Instance resources (实例资源)

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

    注意

    只有具有事件截止日期(由 Event Deadline (事件截止期限) 的值指示)的事件才可以重新计划。

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

  6. 选择 Schedule Event (计划事件)

    注意

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

重新计划重启事件(AWS CLI)

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

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

    以下示例输出显示因 NotBeforeDeadline 包含值而可以重新计划的 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" } ] ]
  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 参数值之前可能需要 1-2 分钟。

对重启事件的限制

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

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

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

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

使用计划为维护的实例

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

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

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

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

Amazon EBS 支持的实例操作

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

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

实例存储支持的实例操作

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