

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

# 停止、終止、重新啟動或復原 EC2 執行個體
<a name="UsingAlarmActions"></a>

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

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

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

**重要**  
如果有指標資料點缺失，針對 Amazon EC2 指標設定的警示可能暫時進入 INSUFFICIENT\$1DATA 狀態。這種情況雖屬罕見，但當指標報告中斷時仍可能發生，即使 Amazon EC2 執行個體處於正常運作狀態亦然。對於設定為採取停止、終止、重新啟動或復原動作的 Amazon EC2 指標警示，建議您將這些警示設定為視資料缺失為 `missing`，並僅在處於 ALARM 狀態時觸發這些警示。  
如需進一步了解如何設定 CloudWatch，使其對設定了警示的缺失指標採取行動，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

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

若要使用下列命令建立適用於 CloudWatch Events 的服務連結角色：

```
aws iam create-service-linked-role --aws-service-name events.amazonaws.com
```

**主控台支援**  
您可以使用 CloudWatch 主控台或 Amazon EC2 主控台建立警示。本文件中的程序使用 CloudWatch 主控台。如需使用 Amazon EC2 主控台的程序，請參閱《Amazon EC2 使用者指南》**中的[建立可停止、終止、重新啟動或回復執行個體的警示](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingAlarmActions.html)。

**許可**  
如果您使用 AWS Identity and Access Management (IAM) 帳戶來建立或修改執行 EC2 動作或 Systems Manager OpsItem 動作的警示，您必須擁有 `iam:CreateServiceLinkedRole`許可。

**Topics**
+ [將停止動作新增至 Amazon CloudWatch 警示](#AddingStopActions)
+ [將終止動作新增至 Amazon CloudWatch 警示](#AddingTerminateActions)
+ [將重新開機動作新增至 Amazon CloudWatch 警示](#AddingRebootActions)
+ [將復原動作新增至 Amazon CloudWatch 警示](#AddingRecoverActions)
+ [檢視已觸發警示和動作的歷史記錄](#ViewAlarmHistory)

## 將停止動作新增至 Amazon CloudWatch 警示
<a name="AddingStopActions"></a>

您可以建立警示，在符合特定閾值時停止 Amazon EC2 執行個體。例如，您可以執行開發或測試執行個體，並偶爾忘記關閉它們。您可以建立警示，在平均 CPU 使用率百分比已低於 10% 達 24 小時時觸發，以通知其為閒置且不再使用。您可以調整閾值、持續時間和期間以符合您的需求，而且您可以新增 SNS 通知，當觸發警示時，您將會收到電子郵件。

使用 Amazon Elastic Block Store 磁碟區作為根裝置的 Amazon EC2 執行個體可以停止或終止，而使用執行個體存放區作為根裝置的執行個體只能終止。

**若要使用 Amazon CloudWatch 主控台建立警示以停止閒置的執行個體**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

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

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

1. 選擇 **Select Metric** (選取指標)。

1. 在 **AWS 命名空間**中，選擇 **EC2**。

1. 請執行下列操作：

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

   1. 勾選正確執行個體的資料列中的核取方塊以及 **CPUUtilization** 指標。

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

   1. 在統計資料中選擇 **Average (平均)**。

   1. 選擇期間 (例如，**1 Hour**)。

   1. 選擇**選取指標**。

1. 在 **Conditions** (條件) 下，執行下列動作：

   1. 選擇 **Static** (靜態)。

   1. 在 **Whenever CPUUtilization is** (每當 CPU 使用率為) 下方，選擇 **Lower** (較低)。

   1. 針對 **than** (比較)，輸入 **10**。

   1. 選擇**下一步**。

   1. 在 **Notification (通知)** 之下的 **Send notification to (傳送通知至)** 中，選擇現有的 SNS 主題或建立新的主題。

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

   1. 選擇 **Add EC2 Action** (新增 EC2 動作)。

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

   1. 選擇**下一步**。

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

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

## 將終止動作新增至 Amazon CloudWatch 警示
<a name="AddingTerminateActions"></a>

您可以建立警示，在符合特定閾值時自動終止 EC2 執行個體 (前提是執行個體未啟用終止保護)。例如，您可能想要在執行個體完成作業時予以終止，而且不再需要該執行個體。如果您之後還要使用該執行個體，您應該停止而非終止執行個體。如需有關啟用與停用執行個體終止保護的資訊，請參閱《Amazon EC2 使用者指南》**中的[啟用執行個體終止保護](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingDisableAPITermination.html)。

**若要使用 Amazon CloudWatch 主控台建立警示以終止閒置的執行個體**

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

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

1. 在 **Select Metric (選取指標)** 步驟，執行下列動作：

   1. 在 **EC2 Metrics (EC2 指標)** 之下選擇 **Per-Instance Metrics (每個執行個體指標)**。

   1. 選取該執行個體的資料列以及 **CPUUtilization** 指標。

   1. 在統計資料中選擇 **Average (平均)**。

   1. 選擇期間 (例如，**1 Hour**)。

   1. 選擇**下一步**。

1. 在 **Define Alarm (定義警示)** 步驟，執行下列動作：

   1. 在 **Alarm Threshold** (警示閾值) 之下輸入唯一的名稱 (例如，終止 EC2 執行個體)，以及警示的描述 (例如，當 CPU 閒置太久時終止 EC2 執行個體)。警示名稱只能包含 ASCII 字元。

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

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

   1. 在 **Notification (通知)** 之下的 **Send notification to (傳送通知至)** 中，選擇現有的 SNS 主題或建立新的主題。

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

   1. 選擇 **EC2 Action (EC2 動作)**。

   1. 在 **Whenever this alarm** (每當此警示) 中選擇 **State is ALARM** (狀態為警示)。在 **Take this action (採取此動作)** 中選擇 **Terminate this instance (終止此執行個體)**。

   1. 選擇**建立警示** 。

## 將重新開機動作新增至 Amazon CloudWatch 警示
<a name="AddingRebootActions"></a>

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

不同於停用和重新啟動您的執行個體，重新啟動執行個體不會啟動新執行個體計費小時。如需重新啟動執行個體的詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的[啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html)。

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

**若要使用 Amazon CloudWatch 主控台建立警示以重新啟動執行個體**

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

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

1. 在 **Select Metric (選取指標)** 步驟，執行下列動作：

   1. 在 **EC2 Metrics (EC2 指標)** 之下選擇 **Per-Instance Metrics (每個執行個體指標)**。

   1. 選取該執行個體的資料列以及 **StatusCheckFailed\$1Instance** 指標。

   1. 在統計資料中選擇 **Minimum (最小值)**。

   1. 選擇期間 (例如，**1 Minute**)。

   1. 選擇**下一步**。

1. 在 **Define Alarm (定義警示)** 步驟，執行下列動作：

   1. 在 **Alarm Threshold (警示閾值)** 之下輸入唯一的名稱 (例如，重新啟動 EC2 執行個體)，以及警示的描述 (例如，當運作狀態檢查失敗時重新啟動 EC2 執行個體)。警示名稱只能包含 ASCII 字元。

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

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

   1. 在 **Notification (通知)** 之下的 **Send notification to (傳送通知至)** 中，選擇現有的 SNS 主題或建立新的主題。

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

   1. 選擇 **EC2 Action (EC2 動作)**。

   1. 在 **Whenever this alarm** (每當此警示) 中選擇 **State is ALARM** (狀態為警示)。在 **Take this action (採取此動作)** 中選擇 **Reboot this instance (重新啟動此執行個體)**。

   1. 選擇**建立警示** 。

## 將復原動作新增至 Amazon CloudWatch 警示
<a name="AddingRecoverActions"></a>

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

當 `StatusCheckFailed_System` 警示觸發且復原動作啟動時，您將收到 Amazon SNS 主題通知，這是您在建立警示時選擇並與復原動作關聯的通知。在執行個體復原期間，執行個體會在重新啟動期間遷移，記憶體內的任何資料都將遺失。當程序完成時，會將資訊發布到您為此警示設定的 SNS 主題。訂閱此 SNS 主題的所有使用者都將會收到電子郵件通知，其中包含復原嘗試的狀態和進一步的說明。您將會發現執行個體在已復原的執行個體上重新啟動。

復原動作只能用於 `StatusCheckFailed_System`，而非 `StatusCheckFailed_Instance`。

導致系統狀態檢查失敗的問題範例包括：
+ 網路連線中斷
+ 系統電力中斷
+ 實體主機的軟體問題
+ 實體主機上會影響網路連線的硬體問題

僅某些執行個體類型上支援復原動作。如需有關受支援的執行個體類型和其他需求的詳細資訊，請參閱[復原您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html)和[要求](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#requirements-for-recovery)。

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

**若要使用 Amazon CloudWatch 主控台建立警示以復原執行個體**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

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

1. 選擇**建立警示** 。

1. 選擇**選取指標**，然後執行以下動作：

   1. 選擇 **EC2 指標**、**依執行個體指標**。

   1. 選取該執行個體的資料列以及 **StatusCheckFailed\$1System** 指標，然後選擇**選取指標**。

   1. 在統計資料中選擇 **Minimum (最小值)**。

   1. 選擇期間 (例如，**1 Minute**)。
**重要**  
為了避免重新啟動和復原動作之間的競爭情況，請避免為重新啟動警示和復原警示設定相同的評估期間。我們建議您將復原警示設定為兩個各一分鐘的評估期間。

1. 在**條件**下，執行下列動作：

   1. 在**閾值類型**下，選擇**靜態**。

   1. 在**任何時間**下，選擇**大於**，然後為**於...**輸入 **0**。

   1. 選擇**其他組態**，然後為**要警示的資料點**指定 2**/**2。

1. 選擇**下一步**。

1. 在**通知**下，執行以下動作：

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

   1. 對於**傳送通知至以下 SNS 主題**，選擇現有 SNS 主題或建立新的主題。

   1. 選擇 **Add EC2 Action** (新增 EC2 動作)。

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

   1. 對於**採取動作**，選擇**復原此執行個體**。

   1. 選擇**下一步**。

1. 對於**警示名稱**，輸入警示的唯一名稱 (例如 **Recover EC2 instance**) 和警示說明 (例如 **Recover EC2 instance when health checks fail**)。警示名稱只能包含 ASCII 字元。

1. 選擇**下一步**。

1. 選擇**建立警示** 。

## 檢視已觸發警示和動作的歷史記錄
<a name="ViewAlarmHistory"></a>

可在 Amazon CloudWatch 主控台中檢視警示和動作歷史記錄。Amazon CloudWatch 會保留過去 30 天的警示和動作歷史記錄。

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

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms (警示)**，並選取警示。

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

1. 若要查看最新的歷史記錄項目，請選擇 **History (歷史記錄)**。