建立警示以停止、終止、重新啟動或復原EC2執行個體 - Amazon CloudWatch

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

建立警示以停止、終止、重新啟動或復原EC2執行個體

使用 Amazon CloudWatch 警示動作,您可以建立自動停止、終止、重新開機或復原EC2執行個體的警示。當執行個體不再需要執行,您可以使用停止或終止動作以協助您節省成本。如果發生系統受損,您可以使用重新啟動和復原動作,自動重新啟動這些執行個體或將它們復原到新的硬體。

在許多情況下,您可能想要自動停止或終止您的執行個體。例如,您可能有專門批次處理薪資作業或科學運算任務的執行個體,它們在執行一段時間後完成工作。不要讓這些執行個體閒置 (及累積費用),您可以停止或終止它們,以協助您節省成本。使用停止和終止警示動作的主要差別在於,如果您後來需要再次執行已停止的執行個體,則可以輕鬆地重新啟動它。您也可以保留相同的執行個體 ID 和根磁碟區。不過,您不能重新啟動已終止的執行個體。相反地,您必須啟動新的執行個體。

您可以將停止、終止或重新啟動動作新增到 Amazon EC2 每個執行個體指標上設定的任何警示,包括 Amazon 提供的基本和詳細監控指標 CloudWatch (在AWS/EC2命名空間中),以及包含 "InstanceId=" 維度的任何自訂指標 (只要該 InstanceId 值參考有效的執行中 Amazon EC2 執行個體)。您也可以將復原動作新增至在任何 Amazon EC2 每個執行個體指標上設定的警示,除了StatusCheckFailed_Instance

重要

如果缺少EC2指標資料點,Amazon 指標上設定的警示可以暫時進入 INSUFFICIENT _ DATA 狀態。這種情況很少見,但即使 Amazon EC2 執行個體狀態良好,也可能在指標報告中斷時發生。對於設定為停止、終止、重新開機或復原動作的 Amazon EC2 指標上的警示,我們建議您設定這些警示將遺失的資料視為missing,並讓這些警示僅在ALARM狀態下觸發。

如需有關如何設定為針對已設 CloudWatch 定警示的遺失量度採取行動的詳細資訊,請參閱設定 CloudWatch 警示如何處理遺失的資料

若要設定可以重新啟動、停止或終止執行個體的 CloudWatch 警示動作,您必須使用服務連結IAM角色AWSServiceRoleForCloudWatchEvents。 AWSServiceRoleForCloudWatchEvents IAM角色可 AWS 讓您代表執行警示動作。

若要為 CloudWatch 事件建立服務連結角色,請使用下列命令:

aws iam create-service-linked-role --aws-service-name events.amazonaws.com
主控台支援

您可以使用 CloudWatch 主控台或 Amazon EC2 主控台建立警示。本文件中的程序使用主 CloudWatch 控台。如需使用 Amazon EC2 主控台的程序,請參閱 Amazon 使用EC2者指南中的建立停止、終止、重新開機或復原執行個體的警示

許可

如果您使用 AWS Identity and Access Management (IAM) 帳戶來建立或修改執行EC2動作或「Systems Manager OpsItem 」動作的警示,您必須擁有該iam:CreateServiceLinkedRole權限。

向 Amazon CloudWatch 警報添加停止操作

您可以建立警示,在達到特定閾值時停止 Amazon EC2 執行個體。例如,您可以執行開發或測試執行個體,並偶爾忘記關閉它們。您可以建立在 24 小時內的平均使用CPU率百分比低於 10% 時觸發的警示,表示該警示處於閒置狀態且不再使用。您可以根據需要調整閾值,持續時間和期限,還可以添加SNS通知,以便在觸發警報時收到電子郵件。

使用 EC2 Amazon 彈性區塊存放區磁碟區做為根裝置的 Amazon 執行個體可以停止或終止,而使用執行個體存放區做為根裝置的執行個體只能終止。

使用 Amazon CloudWatch 主控台建立警示以停止閒置執行個體
  1. 在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

  2. 在導覽窗格中,選擇 Alarms (警示)、All alarms (所有警示)。

  3. 選擇 Create alarm (建立警示)。

  4. 選擇 Select Metric (選取指標)。

  5. 對於AWS 命名空間,請選擇EC2

  6. 請執行下列操作:

    1. 選擇 Per-Instance Metrics (每個執行個體指標)。

    2. 選取列中包含正確執行處理和CPUUtilization測量結果的核取方塊。

    3. 選擇 Graphed metrics (圖表化指標) 標籤。

    4. 在統計資料中選擇 Average (平均)

    5. 選擇期間 (例如,1 Hour)。

    6. 選擇選取指標

  7. Define Alarm (定義警示) 步驟,執行下列動作:

    1. Conditions (條件) 下選擇 Static (靜態)

    2. 在「無論何CPUUtilization時」下選擇「降低」。

    3. 針對 than (比較),輸入 10

    4. 選擇下一步

    5. 在「通知」下,對於「傳送通知至」,選擇現有SNS主題或建立新主題。

      若要建立SNS主題,請選擇 [新增清單]。在「傳送通知至」中,輸入SNS主題的名稱 (例如,Stop EC2 _ Instance)。在 Email list (電子郵件清單) 中輸入以逗號分隔的電子郵件地址清單,當警示變更為 ALARM 狀態時,這些電子郵件地址將會收到通知。每個電子郵件地址都會收到主題訂閱確認電子郵件。您必須確認訂閱,通知才會傳送到您的電子郵件地址。

    6. 選擇「新增EC2動作」。

    7. 針對 Alarm state trigger (警示狀態觸發),選擇 In Alarm (警示中)。針對 Take the action (採取動作),選擇 Stop this instance (停止此執行個體)。

    8. 選擇下一步

    9. 輸入警示的名稱與說明。名稱只能包含ASCII字元。然後選擇下一步

    10. Preview and create (預覽及建立) 下,請確認資訊和條件都是您希望的內容,然後選擇 Create alarm (建立警示)

向 Amazon CloudWatch 警報添加終止動作

您可以建立警示,在達到特定臨界值時自動終止EC2執行個體 (只要執行個體沒有啟用終止保護)。例如,您可能想要在執行個體完成作業時予以終止,而且不再需要該執行個體。如果您之後還要使用該執行個體,您應該停止而非終止執行個體。如需啟用和停用執行個體終止保護的相關資訊,請參閱 Amazon EC2 使用者指南中的為執行個體啟用終止保護

若要使用 Amazon CloudWatch 主控台建立警示以終止閒置執行個體
  1. 在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

  2. 在導覽窗格中,選擇 Alarms (警示)、Create Alarm (建立警示)。

  3. Select Metric (選取指標) 步驟,執行下列動作:

    1. 在「EC2指標」下方,選擇「每個執行個體

    2. 選取含有執行處理和CPUUtilization測量結果的資料列。

    3. 在統計資料中選擇 Average (平均)

    4. 選擇期間 (例如,1 Hour)。

    5. 選擇下一步

  4. Define Alarm (定義警示) 步驟,執行下列動作:

    1. 在「警示臨界值」下,輸入警示的唯一名稱 (例如,「終止」EC2 執行個體) 和警示的說明 (例如,閒置時間過長時CPU間時終止EC2執行個體)。警示名稱只能包含ASCII字元。

    2. Whenever (無論何時) 之下的 is (是) 中,選擇 < 並輸入 10。在 for (持續) 中,輸入 24 個連續期間。

      以圖像方式呈現的閥值會顯示在 Alarm Preview (警示預覽) 下方。

    3. 在「通知」下,對於「傳送通知至」,選擇現有SNS主題或建立新主題。

      若要建立SNS主題,請選擇 [新增清單]。在「傳送通知至」中,輸入SNS主題的名稱 (例如,終止 EC2 _ 實例)。在 Email list (電子郵件清單) 中輸入以逗號分隔的電子郵件地址清單,當警示變更為 ALARM 狀態時,這些電子郵件地址將會收到通知。每個電子郵件地址都會收到主題訂閱確認電子郵件。您必須確認訂閱,通知才會傳送到您的電子郵件地址。

    4. 選擇「EC2動作」。

    5. 對於「每當此警示」中,選擇「狀態為」ALARM。在 Take this action (採取此動作) 中選擇 Terminate this instance (終止此執行個體)

    6. 選擇建立警示

將重新開機動作新增至 Amazon CloudWatch 警示

您可以建立 Amazon CloudWatch 警示來監控 Amazon EC2 執行個體並自動重新啟動執行個體。重新啟動警示動作建議用於執行個體運作狀態檢查失敗 (相對的,復原警示動作則適用於系統運作狀態檢查失敗)。重新啟動執行個體等同於重新啟動作業系統。在大多數情況下,將執行個體重新開機只需要幾分鐘的時間。重新啟動執行個體時,它會保留在相同的實體主機上,因此您的執行個體會保留其公開DNS名稱、私有 IP 位址,以及執行個體儲存磁碟區上的任何資料。

不同於停用和重新啟動您的執行個體,重新啟動執行個體不會啟動新執行個體計費小時。有關重新啟動執行個體的詳細資訊,請參閱 Amazon EC2 使用者指南的重新啟動執行個體。

重要

為了避免重新啟動和復原動作之間的競爭情況,請避免為重新啟動警示和復原警示設定相同的評估期間。我們建議您將重新開機警示設定為三個各一分鐘的評估期間。

若要使用 Amazon CloudWatch 主控台建立警示以重新啟動執行個體
  1. 在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

  2. 在導覽窗格中,選擇 Alarms (警示)、Create Alarm (建立警示)。

  3. Select Metric (選取指標) 步驟,執行下列動作:

    1. 在「EC2指標」下方,選擇「每個執行個體

    2. 選取含有執行處理和 StatusCheckFailed_Instance 測量結果的資料列。

    3. 在統計資料中選擇 Minimum (最小值)

    4. 選擇期間 (例如,1 Minute)。

    5. 選擇下一步

  4. Define Alarm (定義警示) 步驟,執行下列動作:

    1. 警示臨界值下,輸入警示的唯一名稱 (例如,Reboot EC2 執行個體) 和警示的說明 (例如,健全狀況檢查失敗時重新開機EC2執行個體)。警示名稱只能包含ASCII字元。

    2. Whenever (無論何時) 之下的 is (是) 中,選擇 > 並輸入 0。在 for (持續) 中,輸入 3 個連續期間。

      以圖像方式呈現的閥值會顯示在 Alarm Preview (警示預覽) 下方。

    3. 在「通知」下,對於「傳送通知至」,選擇現有SNS主題或建立新主題。

      若要建立SNS主題,請選擇 [新增清單]。在 [傳送通知至] 中,輸入SNS主題的名稱 (例如,重新啟動 EC2 _ 執行個體)。在 Email list (電子郵件清單) 中輸入以逗號分隔的電子郵件地址清單,當警示變更為 ALARM 狀態時,這些電子郵件地址將會收到通知。每個電子郵件地址都會收到主題訂閱確認電子郵件。您必須確認訂閱,通知才會傳送到您的電子郵件地址。

    4. 選擇「EC2動作」。

    5. 對於「每當此警示」中,選擇「狀態為」ALARM。在 Take this action (採取此動作) 中選擇 Reboot this instance (重新啟動此執行個體)

    6. 選擇建立警示

將恢復動作添加到 Amazon CloudWatch 警報

您可以建立 Amazon CloudWatch 警示來監控 Amazon EC2 執行個體,並在執行個體因基礎硬體故障或需要 AWS 參與修復的問題而受損時,自動復原執行個體。已終止的執行個體無法復原。復原後的執行個體與原始執行個體相同,包括執行個體 ID、私有 IP 地址、彈性 IP 地址及所有執行個體中繼資料。

觸發StatusCheckFailed_System警示並啟動復原動作時,您在建立警示並將復原動作關聯時選擇的 Amazon SNS 主題收到通知。在執行個體復原期間,執行個體會在重新啟動期間遷移,記憶體內的任何資料都將遺失。程序完成後,資訊會發佈至您針對警示設定的SNS主題。訂閱此SNS主題的任何人都會收到電子郵件通知,其中包含復原嘗試的狀態以及任何進一步的指示。您將會發現執行個體在已復原的執行個體上重新啟動。

復原動作只能用於 StatusCheckFailed_System,而非 StatusCheckFailed_Instance

導致系統狀態檢查失敗的問題範例包括:

  • 網路連線中斷

  • 系統電力中斷

  • 實體主機的軟體問題

  • 實體主機上會影響網路連線的硬體問題

僅某些執行個體類型上支援復原動作。如需有關受支援的執行個體類型和其他需求的詳細資訊,請參閱復原您的執行個體要求

重要

為了避免重新啟動和復原動作之間的競爭情況,請避免為重新啟動警示和復原警示設定相同的評估期間。我們建議您將復原警示設定為兩個各一分鐘的評估期間,將重新啟動警示設定為三個各一分鐘的評估期間。

使用 Amazon CloudWatch 主控台建立警示以復原執行個體
  1. 在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

  2. 在導覽窗格中,選擇 Alarms (警示)、All alarms (所有警示)。

  3. 選擇建立警示

  4. 選擇 「選取量度」,然後執行下列動作:

    1. 選擇EC2指標每個執行個體指標

    2. 選取含有執行處理和 StatusCheckFailed_System 測量結果的資料列,然後選擇 「選取測量結果」

    3. 在統計資料中選擇 Minimum (最小值)

    4. 選擇期間 (例如,1 Minute)。

      重要

      為了避免重新啟動和復原動作之間的競爭情況,請避免為重新啟動警示和復原警示設定相同的評估期間。我們建議您將復原警示設定為兩個各一分鐘的評估期間。

  5. 對於「條件」,請執行下列操作:

    1. 臨界值類型下,選擇靜態

    2. 在「每當」下,選擇「更大」並輸入 0超過...」 。

    3. 選擇其他配置,然後對於要警示的數據點指定 2(共 2 個)。

  6. 選擇下一步

  7. 在「通知」下,執行下列操作:

    1. 針對 Alarm state trigger (警示狀態觸發),選擇 In Alarm (警示中)。

    2. 對於「傳送通知至下列SNS主題」,請選擇現有SNS主題或建立新主題。

    3. 選擇「新增EC2動作」。

    4. 針對 Alarm state trigger (警示狀態觸發),選擇 In Alarm (警示中)。

    5. 針對 [採取下列動作],選擇 [復原此執行個體]。

    6. 選擇下一步

  8. 在 [警報名稱] 中,輸入警示的唯一名稱 (例如,Recover EC2 instance) 和警示的描述 (例如Recover EC2 instance when health checks fail)。警示名稱只能包含ASCII字元。

  9. 選擇下一步

  10. 選擇建立警示

檢視已觸發警示和動作的歷史記錄

您可以在 Amazon CloudWatch 主控台中檢視警示和動作歷史記錄。Amazon CloudWatch 保留了最近 30 天的警報和行動歷史記錄。

檢視已觸發警示和動作的歷史記錄
  1. 在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

  2. 在導覽窗格中,選擇 Alarms (警示),並選取警示。

  3. 若要查看隨著時間轉換的最新狀態及指標值,請選擇 Details (詳細資訊)

  4. 若要查看最新的歷史記錄項目,請選擇 History (歷史記錄)