

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

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

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

**注意**  
如需 Amazon CloudWatch 警示帳單與定價資訊，請參閱 *Amazon CloudWatch 使用者指南*中的 [CloudWatch 帳單與成本](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_billing.html)。

`AWSServiceRoleForCloudWatchEvents` 服務連結角色 AWS 可讓 代表您執行警示動作。在 AWS 管理主控台、 AWS CLI或 IAM API 中第一次建立警示時，CloudWatch 會為您建立服務連結角色。

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

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

**重要**  
如果缺少指標資料點，狀態檢查警示可以暫時進入 `INSUFFICIENT_DATA` 狀態。儘管很少見，但當指標報告系統中斷時，即使執行個體狀態良好，也可能會發生這種情況。我們建議您將 `INSUFFICIENT_DATA` 狀態視為遺失資料，而非警示違規，特別是在將警示設定為停止、終止、重新啟動或復原執行個體時。

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

**許可**  
您必須擁有 `iam:CreateServiceLinkedRole` 才能建立或修改執行 EC2 警示動作的警示。服務角色是服務擔任的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)，可代您執行動作。IAM 管理員可以從 IAM 內建立、修改和刪除服務角色。如需詳細資訊，請參閱「*IAM 使用者指南*」中的[建立角色以委派許可權給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

**Topics**
+ [將停止動作新增至 Amazon CloudWatch 警示](#AddingStopActions)
+ [新增終止動作至 Amazon CloudWatch 警示](#AddingTerminateActions)
+ [將重新開機動作新增至 Amazon CloudWatch 警示](#AddingRebootActions)
+ [將復原動作新增至 Amazon CloudWatch 警示](#AddingRecoverActions)
+ [Amazon CloudWatch 警示動作案例](AlarmActionScenarios.md)

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

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

使用 Amazon EBS 磁碟區作為根磁碟區的執行個體可以停止或終止，而使用執行個體儲存體作為根磁碟區的執行個體只能終止。在終止或停止執行個體時，執行個體儲存體磁碟區上的資料會遺失。

**建立警示以停止閒置的執行個體 (Amazon EC2 主控台)**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，並選擇 **Actions (動作)**、**Monitor and troubleshoot (監控和故障診斷)**、**Manage CloudWatch alarms (管理 CloudWatch 警示)**。

   或者，您可以在 **Alarm status (警示狀態)** 資料欄中選擇加號 (![\[Plus sign.\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/add-plus.png))。

1. 在 **Manage CloudWatch alarms (管理 CloudWatch 警示)** 頁面上，執行下列動作：

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

   1. 若要在警示觸發時接收電子郵件，請在 **Alarm notification (警示通知)** 選擇現有的 Amazon SNS 主題。您首先需要使用 Amazon SNS 主控台建立 Amazon SNS 主題。如需詳細資料，請參閱「Amazon Simple Notification Service 開發人員指南」**中的[使用 Amazon SNS 進行應用程式至人員 (A2P) 訊息](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)。

   1. 切換 **Alarm action (警示動作)**，然後選擇 **Stop (停止)**。

   1. 若要將 **Group samples by (分組範例條件)** 和 **Type of data to sample (要作為範例的資料類型)**，請選擇統計資料和指標。在此範例中，選擇 **Average (平均)** 和 **CPU Utilization (CPU 使用率)**。

   1. 針對 **Alarm When (警示時間)** 和 **Percent (百分比)**，指定指標閾值。在此範例中，指定 **<=** 和 **10%**。

   1. 針對 **Consecutive period (連續期間)** 和**Period (期間)**，指定警示的評估期間。在此範例中，請指定 **1** 個每隔 **5 Minute (5 分鐘)** 的連續期間。

   1. Amazon CloudWatch 會自動為您建立警示名稱。若要變更名稱，請在 **Alarm name (警示名稱)** 中輸入新名稱。警示名稱只能包含 ASCII 字元。
**注意**  
您可以在建立警示之前根據自己的需求調整警示組態，也可以稍後再進行編輯。這包括指標、閾值、持續時間、動作和通知設定。不過，在您建立警示之後，以後就無法編輯其名稱。

   1. 選擇**建立**。

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

您可以建立警示，在符合特定閾值時自動終止 EC2 執行個體 (前提是執行個體未啟用終止保護)。例如，您可能想要在執行個體完成作業時予以終止，而且不再需要該執行個體。如果您之後還要使用該執行個體，您應該停止而非終止執行個體。在終止執行個體時，執行個體儲存體磁碟區上的資料會遺失。如需為執行個體啟用和停用終止保護的詳細資訊，請參閱 [變更執行個體終止保護](Using_ChangingDisableAPITermination.md)。

**建立警示以終止閒置的執行個體 (Amazon EC2 主控台)**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，並選擇 **Actions (動作)**、**Monitor and troubleshoot (監控和故障診斷)**、**Manage CloudWatch alarms (管理 CloudWatch 警示)**。

   或者，您可以在 **Alarm status (警示狀態)** 資料欄中選擇加號 (![\[Plus sign.\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/add-plus.png))。

1. 在 **Manage CloudWatch alarms (管理 CloudWatch 警示)** 頁面上，執行下列動作：

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

   1. 若要在警示觸發時接收電子郵件，請在 **Alarm notification (警示通知)** 選擇現有的 Amazon SNS 主題。您首先需要使用 Amazon SNS 主控台建立 Amazon SNS 主題。如需詳細資料，請參閱「Amazon Simple Notification Service 開發人員指南」**中的[使用 Amazon SNS 進行應用程式至人員 (A2P) 訊息](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)。

   1. 切換 **Alarm action (警示動作)**，然後選擇 **Terminate (終止)**。

   1. 若要將 **Group samples by (分組範例條件)** 和 **Type of data to sample (要作為範例的資料類型)**，請選擇統計資料和指標。在此範例中，選擇 **Average (平均)** 和 **CPU Utilization (CPU 使用率)**。

   1. 針對 **Alarm When (警示時間)** 和 **Percent (百分比)**，指定指標閾值。在此範例中，指定 **>=** 和 **10%**。

   1. 針對 **Consecutive period (連續期間)** 和**Period (期間)**，指定警示的評估期間。在此範例中，請指定 **24** 個每隔 **1 Hour (1 小時)** 的連續期間。

   1. Amazon CloudWatch 會自動為您建立警示名稱。若要變更名稱，請在 **Alarm name (警示名稱)** 中輸入新名稱。警示名稱只能包含 ASCII 字元。
**注意**  
您可以在建立警示之前根據自己的需求調整警示組態，也可以稍後再進行編輯。這包括指標、閾值、持續時間、動作和通知設定。不過，在您建立警示之後，以後就無法編輯其名稱。

   1. 選擇**建立**。

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

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

有別於停用和重新開始執行個體，重新啟動執行個體不會啟動新的執行個體計費時段 (最少收費一分鐘)。在重新啟動執行個體時，會保留執行個體儲存體磁碟區上的資料。執行個體儲存體磁碟區必須在重新啟動後重新掛載到檔案系統中。如需詳細資訊，請參閱[重新啟動您的 Amazon EC2 執行個體](ec2-instance-reboot.md)。

**重要**  
為了避免重新開機和復原動作之間的競爭情況，請避免為重新開機警示和復原警示設定相同的評估期間數。我們建議您將重新開機警示設定為三個各一分鐘的評估期間。如需詳細資訊，請參閱 *Amazon CloudWatch 使用者指南* 中的[評估警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)。

**建立警示以重新啟動執行個體 (Amazon EC2 主控台)**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，並選擇 **Actions (動作)**、**Monitor and troubleshoot (監控和故障診斷)**、**Manage CloudWatch alarms (管理 CloudWatch 警示)**。

   或者，您可以在 **Alarm status (警示狀態)** 資料欄中選擇加號 (![\[Plus sign.\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/add-plus.png))。

1. 在 **Manage CloudWatch alarms (管理 CloudWatch 警示)** 頁面上，執行下列動作：

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

   1. 若要在警示觸發時接收電子郵件，請在 **Alarm notification (警示通知)** 選擇現有的 Amazon SNS 主題。您首先需要使用 Amazon SNS 主控台建立 Amazon SNS 主題。如需詳細資料，請參閱「Amazon Simple Notification Service 開發人員指南」**中的[使用 Amazon SNS 進行應用程式至人員 (A2P) 訊息](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)。

   1. 切換 **Alarm action (警示動作)**，然後選擇 **Reboot (重新開機)**。

   1. 若要將 **Group samples by (分組範例條件)** 和 **Type of data to sample (要作為範例的資料類型)**，請選擇統計資料和指標。在此範例中，選擇 **Average (平均)** 和 ** Status check failed: instance (狀態檢查失敗：執行個體)**。

   1. 針對 **Consecutive period (連續期間)** 和**Period (期間)**，指定警示的評估期間。在此範例中，請輸入 **3** 個每隔 **1 分鐘**的連續期間。如果**停用 1 分鐘**，您必須[啟用詳細監控](manage-detailed-monitoring.md#enable-detailed-monitoring)，或者您可以選擇停用 **5 分鐘**。

   1. Amazon CloudWatch 會自動為您建立警示名稱。若要變更名稱，請在 **Alarm name (警示名稱)** 中輸入新名稱。警示名稱只能包含 ASCII 字元。

   1. 選擇**建立**。

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

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

若執行個體不支援復原動作，則 CloudWatch 會防止您將復原動作新增至此執行個體上的警示。

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

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

下列為可能導致系統狀態檢查失敗的問題：
+ 網路連線中斷
+ 系統電力中斷
+ 實體主機的軟體問題
+ 實體主機上會影響網路連線的硬體問題

復原動作僅在符合某些特性的執行個體上受到支援：如需詳細資訊，請參閱[自動執行個體復原功能](ec2-instance-recover.md)。

如果您的執行個體具有公有 IP 地址，它將在復原後保留公有 IP 地址。

**重要**  
為了避免重新開機和復原動作之間的競爭情況，請避免為重新開機警示和復原警示設定相同的評估期間數。我們建議您將復原警示設定為兩個各一分鐘的評估期間。如需詳細資訊，請參閱 *Amazon CloudWatch 使用者指南* 中的[評估警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)。

**建立警示以復原執行個體 (Amazon EC2 主控台)**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，並選擇 **Actions (動作)**、**Monitor and troubleshoot (監控和故障診斷)**、**Manage CloudWatch alarms (管理 CloudWatch 警示)**。

   或者，您可以在 **Alarm status (警示狀態)** 資料欄中選擇加號 (![\[Plus sign.\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/add-plus.png))。

1. 在 **Manage CloudWatch alarms (管理 CloudWatch 警示)** 頁面上，執行下列動作：

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

   1. 若要在警示觸發時接收電子郵件，請在 **Alarm notification (警示通知)** 選擇現有的 Amazon SNS 主題。您首先需要使用 Amazon SNS 主控台建立 Amazon SNS 主題。如需詳細資料，請參閱「Amazon Simple Notification Service 開發人員指南」**中的[使用 Amazon SNS 進行應用程式至人員 (A2P) 訊息](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)。
**注意**  
使用者必須訂閱指定的 SNS 主題，以在警示觸發時收到電子郵件通知。即使未指定 SNS 主題或根使用者未訂閱指定的 SNS 主題， AWS 帳戶根使用者 仍會在發生自動執行個體復原動作時收到電子郵件通知。

   1. 切換 **Alarm action (警示動作)**，然後選擇 **Recover (復原)**。

   1. 若要將 **Group samples by (分組範例條件)** 和 **Type of data to sample (要作為範例的資料類型)**，請選擇統計資料和指標。在此範例中，選擇 **Average (平均)** 和 ** Status check failed: system (狀態檢查失敗：系統)**。

   1. 針對 **Consecutive period (連續期間)** 和**Period (期間)**，指定警示的評估期間。在此範例中，請輸入 **2** 個每隔 **1 分鐘**的連續期間。如果**停用 1 分鐘**，您必須[啟用詳細監控](manage-detailed-monitoring.md#enable-detailed-monitoring)，或者您可以選擇停用 **5 分鐘**。

   1. Amazon CloudWatch 會自動為您建立警示名稱。若要變更名稱，請在 **Alarm name (警示名稱)** 中輸入新名稱。警示名稱只能包含 ASCII 字元。

   1. 選擇**建立**。

# Amazon CloudWatch 警示動作案例
<a name="AlarmActionScenarios"></a>

您可以使用 Amazon EC2 主控台來建立提醒動作，在滿足特定條件時停止或終止 Amazon EC2 執行個體。在下列用來設定警示動作的主控台頁面螢幕截圖中，我們為設定加上編號。我們也在隨後的案例中為設定加上編號，協助您建立適當的動作。

![\[Manage Cloudwatch alarms (管理 Cloudwatch 警示) 頁面。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/manage-cloudwatch-alarms.png)


## 案例 1：停止閒置的開發和測試執行個體
<a name="StopIdleInstance"></a>

建立警示，在用於軟體開發或測試的執行個體已閒置至少一小時後，將其停止。


| 設定 | Value | 
| --- | --- | 
|  1  |  停止  | 
|  2  |  最大  | 
|  3  |  CPU 使用率  | 
|  4  |  <=  | 
|  5  |  10%  | 
|  6  |  1  | 
|  7  |  1 小時  | 

## 案例 2：停止閒置的執行個體
<a name="StopLowUtilizationInstance"></a>

建立警示，在執行個體已閒置 24 小時後，停止執行個體並傳送電子郵件。


| 設定 | Value | 
| --- | --- | 
|  1  |  停止和寄送電子郵件  | 
|  2  |  平均數  | 
|  3  |  CPU 使用率  | 
|  4  |  <=  | 
|  5  |  5%  | 
|  6  |  24  | 
|  7  |  1 小時  | 

## 案例 3：針對發生異常高流量的 Web 伺服器傳送電子郵件
<a name="StopHighWebTraffic"></a>

建立警示，在執行個體每天超過 10 GB 傳出網路流量後，傳送電子郵件。


| 設定 | Value | 
| --- | --- | 
|  1  |  電子郵件  | 
|  2  |  總和  | 
|  3  |  網路輸出  | 
|  4  |  >  | 
|  5  |  10 GB  | 
|  6  |  24  | 
|  7  |  1 小時  | 

## 案例 4：停止發生異常高流量的 Web 伺服器
<a name="StopHighWebTraffic2"></a>

建立警示，在傳出流量每小時超過 1 GB 後，停止執行個體並傳送簡訊 (SMS)。


| 設定 | Value | 
| --- | --- | 
|  1  |  停止並傳送簡訊  | 
|  2  |  總和  | 
|  3  |  網路輸出  | 
|  4  |  >  | 
|  5  |  1 GB  | 
|  6  |  1  | 
|  7  |  1 小時  | 

## 案例 5：停止受損的執行個體
<a name="StopImpairedInstance"></a>

建立警示，停止未通過三次連續運作狀態檢查的執行個體 (以 5 分鐘間隔執行)。


| 設定 | Value | 
| --- | --- | 
|  1  |  停止  | 
|  2  |  平均數  | 
|  3  |  狀態檢查失敗：系統  | 
|  4  |  -  | 
|  5  |  -  | 
|  6  |  1  | 
|  7  |  15 分鐘  | 

## 案例 6：批次處理任務完成時終止執行個體
<a name="TerminateBatchProcesses"></a>

建立警示，當執行批次任務的執行個體不再傳送結果資料時，終止該執行個體。


| 設定 | Value | 
| --- | --- | 
|  1  |  終止  | 
|  2  |  最大  | 
|  3  |  網路輸出  | 
|  4  |  <=  | 
|  5  |  100,000 位元組  | 
|  6  |  1  | 
|  7  |  5 分鐘  | 