您的執行個體的排程事件 - Amazon Elastic Compute Cloud

您的執行個體的排程事件

AWS 可為您的執行個體排程事件,例如重新開機、停止/啟動或淘汰。這些事件不會頻繁發生。若您其中一個執行個體受到排程事件影響,AWS 會在排程事件之前傳送電子郵件到與您 AWS 帳戶相關聯的電子郵件地址。此電子郵件提供事件的詳細資訊,包括開始和結束日期。根據事件,您可能可以採取動作,以控制事件的時機。AWS 還會傳送 AWS Health 事件,您可以使用 Amazon CloudWatch Events 對此進行監控和管理。如需有關使用 CloudWatch 監控 AWS Health 事件的詳細資訊,請參閱使用 CloudWatch Events 監控 AWS Health 事件

排定的事件是由 AWS 管理;您無法為執行個體排定事件。您可以檢視 AWS 排定的事件、自訂排定的事件通知以在電子郵件通知中包含或移除標籤、在執行個體已排定重新啟動、淘汰或停止時執行動作。

若要更新您帳戶的聯絡資訊,確保您會收到排程事件的通知,請前往帳戶設定頁面。

注意

當執行個體受到排程事件的影響,並且屬於 Auto Scaling 群組時,Amazon EC2 Auto Scaling 最終會在運作狀態檢查期間將其取代,而您無需採取任何進一步動作。如需 Amazon EC2 Auto Scaling 執行運作狀態檢查的詳細資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的 Auto Scaling 執行個體的運作狀態檢查

排程事件類型

Amazon EC2 可建立以下類型的執行個體事件,其中事件會在排程的時間發生:

  • Instance stop (執行個體停止):在排程時間,執行個體停止。當您再次啟動時,它會遷移到新的主機。只適用於 Amazon EBS 後端執行個體。

  • Instance retirement (執行個體淘汰):在排程時間,如果執行個體由 Amazon EBS 支援,會將其停止;若由執行個體存放區支援,則會將其終止。

  • Instance reboot (執行個體重新開機):在排程時間,執行個體重新開機。

  • System reboot (系統重新開機):在排程時間,執行個體的主機重新開機。

  • System maintenance (系統維護):在排程時間,執行個體可能會因網路維護或電源維護而暫時受到影響。

檢視排程事件

除了在電子郵件中接收排程事件的通知,您可以使用以下其中一個方法檢查排程事件。

New console

使用主控台檢視您執行個體的排程事件

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 您可以在下列畫面中檢視排程事件:

    • 在導覽窗格中,選擇 Events (事件)。此時會顯示任何與事件相關聯的資源。您可以依 Resource ID (資源 ID)Resource type (資源類型)Availability zone (可用區域)Event status (事件狀態)Event type (事件類型) 進行篩選。

      
                                                使用 Events (事件) 頁面檢視事件。
    • 或者,在導覽窗格中,選擇 EC2 Dashboard (EC2 儀表板)。此時會在排程事件下方顯示任何與事件相關聯的資源。

      
                                                使用儀表板檢視事件。
Old console

使用主控台檢視您執行個體的排程事件

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 您可以在下列畫面中檢視排程事件:

    • 在導覽窗格中,選擇 Events (事件)。此時會顯示任何與事件相關聯的資源。您可以依資源類型或特定事件類型篩選。您可以選取資源,檢視詳細資訊。

      
                                                使用 Events (事件) 頁面檢視事件。
    • 或者,在導覽窗格中,選擇 EC2 Dashboard (EC2 儀表板)。此時會在 Scheduled Events (排程事件) 下方顯示任何與事件相關聯的資源。

      
                                                使用儀表板檢視事件。
    • 也會為受到影響的資源顯示某些事件。例如,在導覽窗格中,選擇 Instances (執行個體),並選取某個執行個體。若執行個體具有關聯的執行個體停止或執行個體淘汰事件,它便會顯示在較下方的窗格中。

      
                                                在執行個體詳細資訊中檢視事件。
AWS CLI

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

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

您可以使用 AWS Health Dashboard 來了解可能影響執行個體事件。AWS Health Dashboard 將問題分成三類:開放問題、排定的變更、其他通知。排定的變更包含進行中或即將進行的項目。

如需詳細資訊,請參閱 AWS Health 使用者指南中的 AWS Health Dashboard 入門

自訂排程的事件通知

您可以自訂排程事件通知,以便在電子郵件通知中包含標籤。如此可以更輕鬆地識別受影響的資源 (執行個體或 專用執行個體),並為即將到來的事件排定動作的優先順序。

當您自訂事件通知以包含標籤時,您可以選擇包含:

  • 與受影響資源關聯的所有標籤

  • 僅與受影響資源關聯的特定標籤

例如,假設您將 applicationcostcenterproject,和 owner 標籤指派給所有執行個體。您可以選擇在事件通知中包含所有標籤。或者,如果您只想在事件通知中看到 ownerproject 標籤,則可以選擇只包含這些標籤。

選取要包含的標籤之後,事件通知將包含資源 ID (執行個體 ID 或 專用執行個體 ID),以及與受影響資源關聯的標籤金鑰和值組。

在事件通知中包含標籤

您選擇要包含的標籤會套用至所選區域的所有資源 (執行個體和 專用執行個體)。若要自訂其他區域中的事件通知,請先選取所需的區域,然後執行下列步驟。

您可以使用下列其中一種方法在事件通知中包含標籤。

New console

在事件通知中包含標籤

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 選擇 Actions (動作)Manage event notifications (管理事件通知)

  4. 選取 Include resource tags in event notifications (在事件通知中包含資源標籤)

  5. 根據您要包含在事件通知中的標籤,執行下列其中一項動作:

    • 若要包含與受影響執行個體或 專用執行個體 相關聯的所有標籤,請選取 Include all resource tags (包含所有資源標籤)

    • 若要手動選取要包含的標籤,請選取 Choose the tags to include (選擇要包含的標籤),然後在 Choose the tags to include (選擇要包含的標籤) 中輸入標籤金鑰並按下 Enter (輸入)

  6. 選擇 Save (儲存)。

AWS CLI

在事件通知中包含所有標籤

使用 register-instance-event-notification-attributes AWS CLI 命令並設 IncludeAllTagsOfInstance 參數為 true

aws ec2 register-instance-event-notification-attributes --instance-tag-attribute "IncludeAllTagsOfInstance=true"

在事件通知中包含特定標籤

使用 register-instance-event-notification-attributes AWS CLI 命令,並使用 InstanceTagKeys 參數指定要包含的標籤。

aws ec2 register-instance-event-notification-attributes --instance-tag-attribute 'InstanceTagKeys=["tag_key_1", "tag_key_2", "tag_key_3"]'

從事件通知中移除標籤

您可以使用下列其中一種方法將標籤從事件通知中移除。

New console

從事件通知中移除標籤

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 選擇 Actions (動作)Manage event notifications (管理事件通知)

  4. 根據您要從事件通知中移除的標籤,執行下列其中一項動作。

    • 若要從事件通知中移除所有標籤,請清除 Include resource tags in event notifications (在事件通知中包含資源標籤)

    • 若要從事件通知中移除特定標籤,請對列於 Choose the tags to include (選擇要包含的標籤) 欄位下方的標籤選擇 Remove (移除) (X)。

  5. 選擇 Save (儲存)。

AWS CLI

從事件通知中移除所有標籤

使用 deregister-instance-event-notification-attributes AWS CLI 命令,並設 IncludeAllTagsOfInstance 參數為 false

aws ec2 deregister-instance-event-notification-attributes --instance-tag-attribute "IncludeAllTagsOfInstance=false"

從事件通知中移除特定標籤

使用 deregister-instance-event-notification-attributes AWS CLI 命令,並使用 InstanceTagKeys 參數指定要移除的標籤。

aws ec2 deregister-instance-event-notification-attributes --instance-tag-attribute 'InstanceTagKeys=["tag_key_1", "tag_key_2", "tag_key_3"]'

檢視要包含在事件通知中的標籤

您可以使用下列其中一種方法來檢視要包含在事件通知中的標籤。

New console

檢視要包含在事件通知中的標籤

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 選擇 Actions (動作)Manage event notifications (管理事件通知)

AWS CLI

檢視要包含在事件通知中的標籤

使用 describe-instance-event-notification-attributes AWS CLI 命令。

aws ec2 describe-instance-event-notification-attributes

使用已排程停止或淘汰的執行個體

當 AWS 偵測到您執行個體的基礎主機有無法修復的故障時,它會根據執行個體根設備的類型,排程執行個體停止或終止。若根設備為 EBS 磁碟區,則執行個體會排程停止。若根設備為執行個體存放區磁碟區,則執行個體會排程終止。如需詳細資訊,請參閱 執行個體淘汰

重要

任何存放在執行個體存放區磁碟區的資料都會在執行個體停止、休眠或終止時遺失。這包含連接到根設備為 EBS 磁碟區之執行個體的執行個體存放區磁碟區。請確認您已在執行個體停止、休眠或終止前,從您的執行個體存放區磁碟區儲存您稍後需要的資料。

Amazon EBS 後端執行個體動作

您可以等待執行個體依照排程停止。或者,您也可以自行停止並啟動執行個體,這會將它遷移到新的主機。如需停止執行個體的詳細資訊 (除了在停止時執行個體組態有何變更的資訊),請參閱停止和啟動執行個體

您可以將立即停止並啟動的作業自動化,以回應排程的執行個體停止事件。如需詳細資訊,請參閱 AWS Health 使用者指南中的自動化 EC2 執行個體的動作

執行個體存放區後端執行個體的動作

我們建議您在執行個體排程終止之前,從您最近的 AMI 啟動取代用執行個體,並將所有必要的資料遷移到取代用執行個體。接著,您便可以終止原始執行個體,或是等待執行個體依照排程終止。

使用已排程重新開機的執行個體

當 AWS 必須執行像是安裝更新或維護基礎主機的任務時,它可排程執行個體或基礎主機重新開機。您可以重新排程大部分重新開機事件,讓您的執行個體在適合您的特定日期和時間重新開機。

如果您停止連結的 EC2-Classic 執行個體,即會自動從 VPC 解除連結,VPC 安全群組也不會再與該執行個體保持關聯。重新啟動您的執行個體之後,您就可以再次將其連結至 VPC。

檢視重新開機事件類型

您可以使用下列其中一種方法,檢視重新開機事件是執行個體重新開機還是系統重新開機。

New console

使用主控台檢視排程重新開機事件

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 從篩選清單中選擇 Resource type: instance (資源類型:執行個體)

  4. 對於每個執行個體,檢視 Event type (事件類型) 欄中的值。此值為 system-rebootinstance-reboot

Old console

使用主控台檢視排程重新開機事件

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 從篩選條件清單選擇 Instance resources (執行個體資源)

  4. 對於每個執行個體,檢視 Event Type (事件類型) 欄中的值。此值為 system-rebootinstance-reboot

AWS CLI

使用 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 啟動取代用執行個體,在排程維護時段視窗前將所有必要資料遷移到取代用執行個體,然後終止原始執行個體。

使用已排程維護的執行個體

當 AWS 必須維護執行個體的基礎主機時,它會排程執行個體進行維護。有兩種維護事件類型:網路維護及電源維護。

在網路維護期間,排程執行個體會暫時遺失網路連線能力。維護完成後,便會還原您執行個體的一般網路連線能力。

在電源維護期間,排程執行個體會暫時離線,然後重新開機。當執行重新開機時,會保留所有您執行個體的組態設定。

在您的執行個體重新開機後 (通常需要數分鐘),確認您的應用程式正以預期的方式正常運作。此時,您的執行個體應該不會再有任何相關聯的排程事件,或若是如此,則排程事件描述的開頭為 [Completed] ([已完成])。有時需要最多 1 個小時,才會更新執行個體狀態描述。完成的維護事件會在 Amazon EC2 主控台儀表板上顯示最多一週。

Amazon EBS 後端執行個體動作

您可以等待維護依照排程執行。或者,您可以停止並啟動執行個體,這會將它遷移到新的主機。如需停止執行個體的詳細資訊 (除了在停止時執行個體組態有何變更的資訊),請參閱停止和啟動執行個體

您可以將立即停止並啟動的作業自動化,以回應排程的維護事件。如需詳細資訊,請參閱 AWS Health 使用者指南中的自動化 EC2 執行個體的動作

執行個體存放區後端執行個體的動作

您可以等待維護依照排程執行。或者,若您希望在排程維護視窗期間維持一般操作,您可以從您最近的 AMI 啟動取代用執行個體,在排程維護視窗前將所有必要資料遷移到取代用執行個體,然後終止原始執行個體。

重新安排排定的事件

您可以重新排程事件,使其發生在適合您的特定日期和時間。只有具有截止日期的活動才能重新排程。有其他重新排程事件的限制

您可以使用下列其中一種方法來重新排程事件。

New console

使用主控台重新排程事件

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 從篩選清單中選擇 Resource type: instance (資源類型:執行個體)

  4. 選取一或多個執行個體,然後選擇 Actions (動作)Schedule event (排程事件)

    只能重新排程有事件截止日期 (由 Deadline (截止日期) 的值指出) 的事件。如果其中一個選取的事件沒有截止日期,則會停用 Actions (動作)Schedule event (排程事件)

  5. 對於 New start time (新增開始時間),輸入事件的新日期和時間。新的日期和時間必須發生在 Event deadline (事件截止日期) 之前。

  6. 選擇 Save (儲存)。

    可能需要 1-2 分鐘,更新的事件開始時間才會反映在主控台中。

Old console

使用主控台重新排程事件

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon 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

使用 AWS 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

    可能需要 1-2 分鐘,describe-instance-status 命令才會傳回更新的 not-before 參數值。

限制

  • 只能重新排程有事件截止日期的事件。事件最晚可以重新排程到事件截止日期。主控台的 Deadline (截止日期) 欄和 NotBeforeDeadline 中的 AWS CLI 欄位指出事件是否有截止日期。

  • 只能重新排程尚未開始的事件。主控台中的 Start time (開始時間) 欄和 NotBefore 中的 AWS CLI 欄位指出事件開始時間。已排程在接下來 5 分鐘內開始的事件不能重新排程。

  • 新的事件開始時間與目前時間至少必須相隔 60 分鐘。

  • 如果您使用主控台重新排程多個事件,則由具有最早事件截止日期的事件決定事件截止日期。