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

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

您的執行個體的排程事件

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

排程事件由管理 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 (系統維護):在排程時間,執行個體可能會因網路維護或電源維護而暫時受到影響。

檢視排程事件

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

Console
檢視執行個體的排程事件
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 儀表板會在排程事件下方顯示任何與事件相關聯的資源。

    
                                        使用儀表板檢視事件。
  3. 如需更多詳細資訊,在導覽窗格中選擇事件。此時會顯示任何與事件相關聯的資源。您可以依特性 (例如事件類型、資源類型和可用區域) 進行篩選。

    
                                        使用 Events (事件) 頁面檢視事件。
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檢視您執行個體的排程事件

使用下面的獲取 EC2 命令InstanceStatus

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" 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" 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),以及與受影響資源關聯的標籤金鑰和值組。

在事件通知中包含標籤

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

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

Console
在事件通知中包含標籤
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

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

  4. 開啟在事件通知中包含標籤

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

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

    • 如需選取要包含的標籤,請選取選擇要包含的標籤,然後選取或輸入標籤索引鍵。

  6. 選擇 Save (儲存)。

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

使用 register-instance-event-notification-屬性 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"]'

從事件通知中移除標籤

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

Console
從事件通知中移除標籤
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

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

  4. 若要從事件通知中移除所有標籤,請關閉在事件通知中包含資源標籤

  5. 若要從事件通知中移除特定標籤,請為對應的標籤索引鍵選擇 X)。

  6. 選擇 Save (儲存)。

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

使用 deregister-instance-event-notification-屬性 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"]'

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

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

Console
檢視要包含在事件通知中的標籤
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

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

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

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

aws ec2 describe-instance-event-notification-attributes

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

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

重要

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

Amazon EBS 後端執行個體動作

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

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

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

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

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

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

檢視重新開機事件類型

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

Console
檢視排程重新開機事件的類型
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

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

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

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

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

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

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

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

Amazon EBS 後端執行個體動作

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

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

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

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

重新安排排定的事件

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

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

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 (儲存)。

    更新後的事件開始時間可能需要一兩分鐘才會反映在主控台中。

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-starttime 命令。使用 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參數值之前,可能需要一兩分鐘的時間。

限制

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

  • 只能重新排程尚未開始的事件。主控台中的「開始時間NotBefore」欄和中的欄位 AWS CLI 表示事件開始時間。已排程在接下來 5 分鐘內開始的事件不能重新排程。

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

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