

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

# 監控 Amazon EC2 資源
<a name="monitoring_ec2"></a>

監控是維護 Amazon EC2 執行個體和 AWS 解決方案可靠性、可用性和效能的重要部分。您應該從 AWS 解決方案中的所有部分收集監控資料，以便在發生多點失敗時更輕鬆地偵錯。

AWS 提供各種可用來監控 Amazon EC2 的工具。Amazon EC2 和 CloudWatch 主控台儀表板可提供 Amazon EC2 環境狀態的快速瀏覽檢視。此外，我們提供下列項目：
+ **系統狀態檢查** – 監控使用執行個體所需的 AWS 系統，以確保它們正常運作。這些檢查會偵測執行個體中需要 AWS 參與修復的問題。系統狀態檢查失敗時，您可以選擇等待 AWS 修正問題，也可以自行解決問題 (例如停止並重新啟動，或終止並取代執行個體)。導致系統狀態檢查失敗的問題範例包括：
  + 網路連線中斷
  + 系統電力中斷
  + 實體主機的軟體問題
  + 實體主機上會影響網路連線的硬體問題

  如需詳細資訊，請參閱 [Amazon EC2 執行個體的狀態檢查](monitoring-system-instance-status-check.md)。
+ **執行個體狀態檢查** – 監控個別執行個體的軟體和網路組態。這些檢查會偵測需要您介入修復的問題。一般來說，當執行個體狀態檢查失敗時，您需要自行處理問題 (例如重新啟動執行個體，或在作業系統中進行修改)。可能導致執行個體狀態檢查失敗的問題範例包括：
  + 系統狀態檢查失敗
  + 網路或啟動組態的設定不正確
  + 記憶體用盡
  + 檔案系統毀損
  + 核心不相容

  如需詳細資訊，請參閱 [Amazon EC2 執行個體的狀態檢查](monitoring-system-instance-status-check.md)。
+ **Amazon CloudWatch 警示** – 監看指定時段內的單一指標，並根據與多個時段內給定之閾值相對的指標值來執行一或多個動作。此動作是傳送到 Amazon Simple Notification Service (Amazon SNS) 主題或 Amazon EC2 Auto Scaling 政策的通知。警示僅會針對持續狀態變更呼叫動作。CloudWatch 警示不會只因處於特定狀態就叫用動作，狀態必須已變更並已維持一段指定的時間。如需詳細資訊，請參閱[使用 CloudWatch 監控您的執行個體](using-cloudwatch.md)。
+ **Amazon EventBridge 事件** – 自動化您的 AWS 服務並自動回應系統事件。來自 AWS 服務的事件會以近乎即時的方式交付至 EventBridge，而且您可以指定當事件符合您撰寫的規則時要採取的自動化動作。如需詳細資訊，請參閱[使用 EventBridge 自動化 Amazon EC2](automating_with_eventbridge.md)。
+ **AWS CloudTrail 日誌** – 擷取對 Amazon EC2 API 發出的呼叫的詳細資訊，並將其儲存為 Amazon S3 中的日誌檔案。您可以使用這些 CloudTrail 日誌來判斷提出了哪些呼叫、提出呼叫的來源 IP 位址、提出呼叫的人員及時間等。如需詳細資訊，請參閱[使用 記錄 Amazon EC2 API 呼叫 AWS CloudTrail](monitor-with-cloudtrail.md)。
+ **CloudWatch 代理程式** – 會從 EC2 執行個體和內部部署伺服器上的主機和訪客收集記錄和系統層級度量。如需詳細資訊，請參閱 [「Amazon CloudWatch 使用者指南」](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) 中的*使用 CloudWatch 代理程式從 Amazon EC2 執行個體和現場部署伺服器收集指標和日誌*。

# 監控您的 Amazon EC2 執行個體狀態
<a name="monitoring-instances-status-check"></a>

您可以透過檢視您執行個體的狀態檢查和排程事件，監控您執行個體的狀態。

狀態檢查可為您提供由 Amazon EC2 進行之自動化檢查的結果資訊。這些自動化檢查會偵測是否有特定問題正在影響您的執行個體。狀態檢查資訊搭配 Amazon CloudWatch 提供的資料，可給予您每個執行個體的詳細操作可見性。

也可以查看為您的執行個體排程之特定事件的狀態。事件的狀態提供為您的執行個體計畫之近期活動的相關資訊，例如重新開機或淘汰。也提供每個事件的排程開始時間和結束時間。

**Topics**
+ [

# Amazon EC2 執行個體的狀態檢查
](monitoring-system-instance-status-check.md)
+ [

# Amazon EC2 執行個體的狀態變更事件
](monitoring-instance-state-changes.md)
+ [

# Amazon EC2 執行個體的排程事件
](monitoring-instances-status-check_sched.md)

# Amazon EC2 執行個體的狀態檢查
<a name="monitoring-system-instance-status-check"></a>

透過執行個體狀態監控，您可以快速判斷 Amazon EC2 是否已偵測到任何可能會防止執行個體執行應用程式的問題。Amazon EC2 會在每一次執行 EC2 執行個體時執行自動化檢查，以識別硬體和軟體問題。您可以檢視這些狀態檢查的結果，以找出特定及可偵測的問題。事件狀態資料可增強 Amazon EC2 已提供的每個執行個體狀態 (例如 `pending`、`running` 和 `stopping`) 的相關資訊，以及 Amazon CloudWatch 監控的使用率指標 (CPU 使用率、網路流量和磁碟活動)。

狀態檢查會每分鐘執行一次，並會傳回通過或失敗狀態。如果所有檢查都通過，執行個體的整體狀態即為 **OK (正常)**。若一或多個檢查失敗，整體狀態便會是 **impaired (故障)**。狀態檢查內建於 Amazon EC2 中，因此無法停用或刪除。

當狀態檢查失敗時，狀態檢查對應的 CloudWatch 指標會遞增。如需詳細資訊，請參閱 [狀態檢查指標](viewing_metrics_with_cloudwatch.md#status-check-metrics)。但是，您可以使用這些指標，建立根據狀態檢查結果而觸發的 CloudWatch 警示。例如，您可以建立警示，在狀態檢查於特定執行個體上失敗時警告您。如需詳細資訊，請參閱 [為狀態檢查失敗的 Amazon EC2 執行個體建立 CloudWatch 警示](creating_status_check_alarms.md)。

您也可以建立 Amazon CloudWatch 提醒以監控 Amazon EC2 執行個體，並且在執行個體因為基礎問題故障時，自動復原執行個體。如需詳細資訊，請參閱 [自動執行個體復原功能](ec2-instance-recover.md)。

**Topics**
+ [

## 狀態檢查類型
](#types-of-instance-status-checks)
+ [

# 檢視 Amazon EC2 執行個體的狀態檢查
](viewing_status.md)
+ [

# 為狀態檢查失敗的 Amazon EC2 執行個體建立 CloudWatch 警示
](creating_status_check_alarms.md)

## 狀態檢查類型
<a name="types-of-instance-status-checks"></a>

有三種類型的狀態檢查。
+ [系統狀態檢查](#system-status-checks)
+ [執行個體狀態檢查](#instance-status-checks)
+ [附接的 EBS 狀態檢查](#attached-ebs-status-checks)

### 系統狀態檢查
<a name="system-status-checks"></a>

系統狀態檢查會監控執行個體執行所在的 AWS 系統。這些檢查會偵測您執行個體需要 AWS 介入修復的基礎問題。當系統狀態檢查失敗時，您可以選擇等待 AWS 來修正問題，也可以自行解決問題。針對 Amazon EBS 後端執行個體，您可以自行停止並啟動執行個體，多數情況下，這會將它遷移到新的主機。針對執行個體儲存體支援的執行個體 (僅支援 Linux 執行個體)，您可以終止並取代執行個體。請注意，執行個體存放區是暫時的，當執行個體停止時，所有資料都會丟失。

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

如果系統狀態檢查失敗，則會遞增 [StatusCheckFailed\$1System](viewing_metrics_with_cloudwatch.md#status-check-metrics) 指標。

**裸機執行個體**  
如果您在裸機執行個體上從作業系統執行重新啟動，則系統狀態檢查可能會暫時傳回失敗狀態。當執行個體變得可用時，系統狀態檢查應傳回通過狀態。

### 執行個體狀態檢查
<a name="instance-status-checks"></a>

執行個體狀態檢查會監控個別執行個體的軟體和網路連接性。Amazon EC2 會將地址解析協定 (ARP) 請求傳送至網路介面 (NIC)，以便檢查執行個體的運作狀態。這些檢查會偵測需要您介入修復的問題。當執行個體狀態檢查失敗時，通常您需要自行處理問題 (例如重新開機執行個體或對執行個體的組態進行變更)。

**注意**  
使用 `systemd-networkd` 進行網路設定的最新 Linux 發行版本可能會以不同於早期發行版本的方式回報運作狀態檢查。在開機過程中，此類型的網路可以更早啟動，並有可能在其他可能也會影響執行個體健康的啟動工作之前完成。取決於網路可用性的狀態檢查可在其他工作完成之前，回報運作狀態。

下列為可能導致執行個體狀態檢查失敗的問題範例：
+ 系統狀態檢查失敗
+ 網路或啟動組態不正確
+ 記憶體用盡
+ 檔案系統毀損
+ 核心不相容
+ 在重新啟動期間，執行個體狀態檢查會報告失敗，直到執行個體再次可用為止。

如果執行個體狀態檢查失敗，則會遞增 [StatusCheckFailed\$1Instance](viewing_metrics_with_cloudwatch.md#status-check-metrics) 指標。

**裸機執行個體**  
如果您在裸機執行個體上從作業系統執行重新啟動，則執行個體狀態檢查可能會暫時傳回失敗狀態。當執行個體變得可用時，執行個體狀態檢查應傳回通過狀態。

### 附接的 EBS 狀態檢查
<a name="attached-ebs-status-checks"></a>

附接的 EBS 狀態檢查可監控附接至執行個體的 Amazon EBS 磁碟區是否可連線且能夠完成 I/O 操作。此 `StatusCheckFailed_AttachedEBS` 指標是二進位值，如果附接至執行個體的一個或多個 EBS 磁碟區無法完成 I/O 操作，則表示損壞。這些狀態檢查會對運算或 Amazon EBS 基礎設施的潛在問題進行偵測。當連接的 EBS 狀態檢查指標失敗時，您可以等待 AWS 解決問題，也可以採取動作，例如取代受影響的磁碟區或停止和重新啟動執行個體。

以下是可能導致附接的 EBS 狀態檢查失敗的問題範例：
+ EBS 磁碟區之下儲存子系統上的硬體或軟體問題
+ 實體主機上會影響 EBS 磁碟區連線的硬體問題
+ 執行個體與 EBS 磁碟區之間的連線問題

可以使用 `StatusCheckFailed_AttachedEBS` 指標來協助改善工作負載的彈性。您可以使用此指標，建立根據狀態檢查結果而觸發的 Amazon CloudWatch 警示。例如，偵測到長期影響時，可容錯移轉至次要執行個體或可用區域。或者，可以使用 EBS CloudWatch 指標來監控每個附接磁碟區的 I/O 效能，以偵測並取代受損磁碟區。如果您的工作負載沒有將 I/O 驅動到執行個體所附接的任何 EBS 磁碟區，並且附接的 EBS 狀態檢查顯示有損壞，則可以停止並啟動執行個體，將它移至新主機。這可以解決影響 EBS 磁碟區連線能力的基礎主機問題。如需詳細資訊，請參閱 [Amazon EBS 的 Amazon CloudWatch 指標](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html)。

您也可以設定 Amazon EC2 Auto Scaling 群組來偵測連接的 EBS 狀態檢查失敗，然後將受影響的執行個體取代為新的執行個體。如需詳細資訊，請參閱「Amazon EC2 Auto Scaling 使用者指南」**中的[使用受損的 Amazon EBS 磁碟區監控和取代自動擴展執行個體](https://docs.aws.amazon.com/autoscaling/ec2/userguide/monitor-and-replace-instances-with-impaired-ebs-volumes.html)。

**注意**  
附接的 EBS 狀態檢查指標僅適用於 Nitro 執行個體。

# 檢視 Amazon EC2 執行個體的狀態檢查
<a name="viewing_status"></a>

如果執行個體狀態檢查失敗，通常就需要您自行處理問題 (例如重新啟動執行個體或對執行個體的組態進行變更)。若要自行對系統或執行個體狀態檢查失敗進行故障診斷，請參閱[狀態檢查失敗的疑難排解 Amazon EC2 Linux 執行個體](TroubleshootingInstances.md)。

------
#### [ Console ]

**檢視狀態檢查**

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

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

1. 在**執行個體**頁面上，**狀態檢查**資料欄會列出每個執行個體的操作狀態。

1. 若要檢視特定執行個體的狀態，請選取執行個體，然後選擇**狀態和警示**索引標籤。

1. 若要檢閱狀態檢查的 CloudWatch 指標，請在**狀態和警示**索引標籤上展開**指標**，以查看下列指標的圖表：
   + **系統狀態檢查失敗**
   + **執行個體狀態檢查失敗**
   + **連接的 EBS 狀態檢查失敗**

   如需詳細資訊，請參閱[狀態檢查指標](viewing_metrics_with_cloudwatch.md#status-check-metrics)。

------
#### [ AWS CLI ]

**檢視狀態檢查**  
使用 [describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) 命令。

**範例**：取得所有執行中執行個體的狀態

```
aws ec2 describe-instance-status
```

**範例**：取得所有執行個體的狀態

```
aws ec2 describe-instance-status --include-all-instances
```

**範例**：取得單一執行中執行個體的狀態

```
aws ec2 describe-instance-status --instance-ids i-1234567890abcdef0
```

**範例**：取得狀態為 `impaired` 的所有執行個體

```
aws ec2 describe-instance-status \
--filters Name=instance-status.status,Values=impaired
```

------
#### [ PowerShell ]

**檢視狀態檢查**  
使用 [Get-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html) 命令。

**範例**：取得所有執行中執行個體的狀態

```
Get-EC2InstanceStatus
```

**範例**：取得所有執行個體的狀態

```
Get-EC2InstanceStatus -IncludeAllInstance $true
```

**範例**：取得單一執行中執行個體的狀態

```
Get-EC2InstanceStatus -InstanceId i-1234567890abcdef0
```

**範例**：取得狀態為 `impaired` 的所有執行個體

```
Get-EC2InstanceStatus \
-Filter @{Name="instance-status.status"; Values="impaired"}
```

------

# 為狀態檢查失敗的 Amazon EC2 執行個體建立 CloudWatch 警示
<a name="creating_status_check_alarms"></a>

您可以使用[狀態檢查指標](viewing_metrics_with_cloudwatch.md#status-check-metrics)來建立 CloudWatch 警示，在執行個體狀態檢查失敗時通知您。

如果缺少指標資料點，狀態檢查和狀態檢查警示可能會暫時進入*資料不足*的狀態。儘管很少見，但當指標報告系統中斷時，即使執行個體狀態良好，也可能會發生這種情況。建議您將此狀態視為遺失資料，而不是狀態檢查失敗或警示違規。這在回應中對執行個體執行停止、終止、重新啟動或復原動作時尤其重要。

------
#### [ Console ]

此範例會設定警示，它在執行個體未通過狀態檢查時傳送通知。可以選擇性地停止、終止或復原執行個體。

**建立狀態檢查警示**

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

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

1. 選取執行個體，選擇**狀態檢查**標籤，然後選擇**動作** > **建立狀態檢查警示**。

1. 在 **Manage CloudWatch alarms (管理 CloudWatch 警示)**頁面上，於 **Add or edit alarm (新增或編輯警示)**下，選擇 **Create an alarm (建立警示)**。

1. 針對**警示通知**，開啟切換開關以設定 Amazon Simple Notification Service (Amazon SNS) 通知。選取現有 Amazon SNS 主題或輸入名稱以建立新主題。

   若將電子郵件地址新增到收件人清單，或是建立新主題，Amazon SNS 會將確認電子郵件傳送至每個新地址。每個收件人都必須選擇電子郵件中的確認連結。僅确认的地址会接收提醒通知。

1. 針對**警示動作**，開啟切換開關，以指定觸發警示時要採取的動作。選取動作。

1. 針對 **Alarm thresholds (警示閾值)**，指定警示的指標和準則。

   您可保留**範例分組依據** (**Average**) 和 **要做為範例的資料類型** (**Status check failed:either**) 的預設設定，或者可以根據您的需求進行變更。

   針對**連續期間**，設定要評估的期間數，然後在**期間**中，輸入在觸發提醒及傳送電子郵件前的評估期間長度。

1. (選用) 針對 **Sample metric data (範例指標資料)**，選擇 **Add to dashboard (新增至儀表板)**。

1. 選擇**建立**。

若需要變更執行個體狀態警示，您可以編輯它。

**編輯狀態檢查警示**

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

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

1. 選取執行個體，並選擇 **Actions (動作)**、**Monitoring (監控)**、**Manage CloudWatch alarms (管理 CloudWatch 警示)**。

1. 在 **Manage CloudWatch alarms (管理 CloudWatch 警示)**頁面上，於 **Add or edit alarm (新增或編輯警示)**下，選擇 **Edit an alarm (編輯警示)**。

1. 針對 **Search for alarm (搜尋警示)**，選擇警示。

1. 完成變更後，請選擇 **Update (更新)**。

------
#### [ AWS CLI ]

在下列範例中，當執行個體的執行個體檢查或系統檢查在至少兩個連續期間中失敗時，警示便會發佈通知到 SNS 主題。使用的 CloudWatch 指標為 `StatusCheckFailed`。

**建立狀態檢查警示**

1. 選取現有的 SNS 主題，或建立新主題。如需詳細資訊，請參閱《AWS Command Line Interface 使用者指南》中的[存取 AWS CLI中的 Amazon SNS](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-sns.html)。**

1. 使用下列 [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 命令檢視 Amazon EC2 可用的 Amazon CloudWatch 指標。

   ```
   aws cloudwatch list-metrics --namespace AWS/EC2
   ```

1. 使用下列 [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) 命令建立警示。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name StatusCheckFailed-Alarm-for-i-1234567890abcdef0 \
       --metric-name StatusCheckFailed \
       --namespace AWS/EC2 \
       --statistic Maximum \
       --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
       --unit Count \
       --period 300 \
       --evaluation-periods 2 \
       --threshold 1 \
       --comparison-operator GreaterThanOrEqualToThreshold \
       --alarm-actions arn:aws:sns:us-west-2:111122223333:my-sns-topic
   ```

   期間為收集 Amazon CloudWatch 指標的時間範圍，以秒為單位。此範例使用 300，即 60 秒乘以 5 分鐘。評估期間為針對指標的值與閾值進行比較的連續期間數。此範例使用 2。警示動作為觸發此警示時要執行的動作。

------
#### [ PowerShell ]

**建立狀態檢查警示**  
當執行個體在至少兩個連續時段未通過狀態檢查時，請使用 [Write-CWMetricAlarm](https://docs.aws.amazon.com/powershell/latest/reference/items/Write-CWMetricAlarm.html) cmdlet 將通知發佈至 SNS 主題，如下所示。

```
Write-CWMetricAlarm `
    -AlarmName "StatusCheckFailed-Alarm-for-i-1234567890abcdef0" `
    -MetricName "StatusCheckFailed" `
    -Namespace "AWS/EC2" `
    -Statistic "Maximum" `
    -Dimension @{Name="InstanceId"; Values="i-1234567890abcdef0"} `
    -Unit "Count" `
    -Period 300 `
    -EvaluationPeriod 2 `
    -Threshold 1 `
    -ComparisonOperator "GreaterThanOrEqualToThreshold" `
    -AlarmAction "arn:aws:sns:us-west-2:111122223333:my-sns-topic"
```

期間為收集 Amazon CloudWatch 指標的時間範圍，以秒為單位。此範例使用 300，即 60 秒乘以 5 分鐘。評估期間為針對指標的值與閾值進行比較的連續期間數。此範例使用 2。警示動作為觸發此警示時要執行的動作。

------

# Amazon EC2 執行個體的狀態變更事件
<a name="monitoring-instance-state-changes"></a>

Amazon EC2 會在執行個體狀態變更時將 `EC2 Instance State-change Notification` 事件傳送至 Amazon EventBridge。

以下是此事件的範例資料。在本範例中，執行個體進入 `pending` 狀態。

```
{
   "id":"7bf73129-1428-4cd3-a780-95db273d1602",
   "detail-type":"EC2 Instance State-change Notification",
   "source":"aws.ec2",
   "account":"123456789012",
   "time":"2021-11-11T21:29:54Z",
   "region":"us-east-1",
   "resources":[
      "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
   ],
   "detail":{
      "instance-id":"i-1234567890abcdef0",
      "state":"pending"
   }
}
```

`state` 的可能值為：
+ `pending`
+ `running`
+ `stopping`
+ `stopped`
+ `shutting-down`
+ `terminated`

啟動或開始執行個體時，其會變成 `pending` 狀態，然後再變成 `running` 狀態。停止執行個體時，其會變成 `stopping` 狀態，然後再變成 `stopped` 狀態。終止執行個體時，其會變成 `shutting-down` 狀態，然後再變成 `terminated` 狀態。如需詳細資訊，請參閱[Amazon EC2 執行個體狀態變更](ec2-instance-lifecycle.md)。

# 建立在 Amazon EC2 執行個體變更狀態時傳送電子郵件的警示
<a name="ec2-events-eventbridge-example"></a>

若要在執行個體變更狀態時接收電子郵件通知，請建立 Amazon SNS 主題，然後為 `EC2 Instance State-change Notification` 事件建立 EventBridge 規則。

**建立 SNS 主題**

1. 在 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 開啟 Amazon SNS 主控台。

1. 在導覽窗格中，選擇**主題**。

1. 請選擇**建立主題**。

1. 針對**類型**，選擇**標準**。

1. 在 **Name** (名稱) 中，輸入主題名稱。

1. 請選擇**建立主題**。

1. 選擇**建立訂閱**。

1. 對於**通訊協定**，選擇**電子郵件**。

1. 在 **Endpoint** (端點) 中，輸入接收通知的電子郵件地址。

1. 選擇**建立訂閱**。

1. 您會收到帶有下列主旨行的電子郵件訊息：AWS Notification - Subscription Confirmation。請依照指示來確認訂閱。

**若要建立 EventBridge 規則**

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

1. 選擇 **Create rule** (建立規則)。

1. 在 **Name** (名稱) 中，輸入規則名稱。

1. 針對**規則類型**，選擇**具有事件模式的規則**。

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

1. 針對 **Event pattern** (事件模式)，請執行下列動作：

   1. 在 **Event source (事件來源)**，選擇 **AWS 服務**。

   1. 針對 **AWS 服務**，選擇 **EC2**。

   1. 在 **Event Type (事件類型)** 中，選擇 **EC2 Instance State-change Notification (EC2 執行個體狀態變更通知)**。

   1. 根據預設，我們會傳送任何執行個體的任何狀態變更通知。如果願意，可以選擇特定狀態或特定執行個體。

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

1. 如下所示指定目標：

   1. 對於 **Target types** (目標類型)，選擇 **AWS 服務**。

   1. 對於 **Select a target** (選取目標)，選擇 **SNS topic** (SNS 主題)。

   1. 針對 **Topic** (主題)，選擇您在先前程序中建立的 SNS 主題。

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

1. (選用) 將標籤新增至您的規則。

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

1. 選擇**建立規則**。

1. 為了測試您的規則，請啟動狀態變更。例如，開始已停止的執行個體、停止執行中的執行個體或啟動執行個體。您會收到帶有下列主旨行的電子郵件訊息：AWS Notification Message。電子郵件內文包含事件資料。

# Amazon EC2 執行個體的排程事件
<a name="monitoring-instances-status-check_sched"></a>

為了確保基礎設施的可靠性和效能， AWS 可以排程事件以重新啟動、停止和淘汰您的執行個體。這些事件不會頻繁發生。

如果您的其中一個執行個體將受到排程事件的影響， 會使用與您 AWS 帳戶相關聯的電子郵件地址，透過電子郵件提前 AWS 通知您。此電子郵件提供事件的詳細資訊，例如開始和結束日期。根據事件類型，您可能可以採取動作來控制事件的時間。 AWS 也會傳送事件，您可以使用 Amazon EventBridge 來監控和管理該 AWS Health 事件。如需詳細資訊，請參閱[使用 Amazon EventBridge 監控 AWS Health 中的事件](https://docs.aws.amazon.com/health/latest/ug/cloudwatch-events-health.html)。

排程事件由 管理 AWS。監控執行個體的排程事件。不過，您可以：
+ 檢視執行個體的排程事件
+ 自訂排程事件通知，以便在電子郵件通知中包含或移除標籤。
+ 重新排程特定排程事件。
+ 建立已排程事件的自訂事件時段。
+ 在執行個體排定為重新啟動、停止或淘汰時採取動作。

為了確保您收到排程事件的通知，請在[帳戶](https://console.aws.amazon.com/billing/home?#/account)頁面上驗證您的聯絡資訊。

**注意**  
當執行個體受到排程事件的影響，並且屬於 Auto Scaling 群組時，Amazon EC2 Auto Scaling 最終會在運作狀態檢查期間將其取代，而您無需採取任何進一步動作。如需 Amazon EC2 Auto Scaling 執行運作狀態檢查的詳細資訊，請參閱「Amazon EC2 Auto Scaling 使用者指南」**中的 [Auto Scaling 群組中執行個體的運作狀態檢查](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html)。

## 排程事件類型
<a name="types-of-scheduled-events"></a>

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


| 事件類型 | 事件代碼 | 事件動作 | 
| --- | --- | --- | 
| 執行個體停止 | instance-stop | 執行個體會在排程時間停止。當您再次啟動時，它會遷移到新的主機。僅適用於具有 Amazon EBS 根磁碟區的執行個體。 | 
| 執行個體淘汰 | instance-retirement | 在排程時間，如果執行個體具有 Amazon EBS 根磁碟區，則會停止，如果它具有執行個體儲存體根磁碟區，則會終止。 | 
| 重新啟動執行個體 | instance-reboot | 執行個體會在排程時間重新啟動。執行個體會保留在主機上，在重新啟動期間，主機會進行維護。這稱為就地重新啟動。 | 
| 系統重新開機 | system-reboot | 在排程時間，執行個體會重新啟動並移轉至新主機。這稱為重新啟動移轉。 | 
| 系統維護 | system-maintenance | 在排程時間，執行個體可能會因網路維護或電源維護而暫時受到影響。 | 

## 確定事件類型
<a name="scheduled-event-type"></a>

您可以檢查為執行個體排程的事件類型。

------
#### [ Console ]

**若要確定事件類型**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 在資料表中，事件代碼會出現在**事件類型**資料欄中。

1. 若要篩選資料表以僅顯示執行個體的事件，請在搜尋欄位中，從篩選條件清單中選擇**資源類型：執行個體**。

------
#### [ AWS CLI ]

**若要確定執行個體的事件類型**  
使用 [describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) 命令。如果執行個體有相關聯的排程事件，輸出會提供排程事件的相關資訊。

```
aws ec2 describe-instance-status \
    --instance-id i-1234567890abcdef0 \
    --query InstanceStatuses[].Events
```

以下為範例輸出。排程事件代碼為 `system-reboot`。

```
[
    "Events": [
        {
            "InstanceEventId": "instance-event-0d59937288b749b32",
            "Code": "system-reboot",
            "Description": "The instance is scheduled for a reboot",
            "NotAfter": "2020-03-14T22:00:00.000Z",
            "NotBefore": "2020-03-14T20:00:00.000Z",
            "NotBeforeDeadline": "2020-04-05T11:00:00.000Z"
        }
    ]
]
```

------
#### [ PowerShell ]

**若要確定執行個體的事件類型**  
使用 [Get-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html) cmdlet。如果執行個體有相關聯的排程事件，輸出會提供排程事件的相關資訊。

```
(Get-EC2InstanceStatus `
    -InstanceId i-1234567890abcdef0).Events
```

以下為範例輸出。排程事件代碼為 `system-reboot`。

```
Code              : system-reboot
Description       : The instance is scheduled for a reboot
InstanceEventId   : instance-event-0d59937288b749b32
NotAfter          : 2020-03-14T22:00:00.000Z
NotBefore         : 2020-03-14T20:00:00.000Z
NotBeforeDeadline : 2020-04-05T11:00:00.000Z
```

------

**Topics**
+ [

## 排程事件類型
](#types-of-scheduled-events)
+ [

## 確定事件類型
](#scheduled-event-type)
+ [

# 管理已排程為停止或淘汰的 Amazon EC2 執行個體
](schedevents_actions_retire.md)
+ [

# 管理已排程進行重新啟動的 Amazon EC2 執行個體
](schedevents_actions_reboot.md)
+ [

# 管理為維護排程的 Amazon EC2 執行個體
](schedevents_actions_maintenance.md)
+ [

# 檢視會影響 Amazon EC2 執行個體的排程事件
](viewing_scheduled_events.md)
+ [

# 自訂 EC2 執行個體的排程事件通知
](customizing_scheduled_event_notifications.md)
+ [

# 重新排程 EC2 執行個體的排程事件
](reschedule-event.md)
+ [

# 為影響 Amazon EC2 執行個體的排程事件建立自訂事件時段
](event-windows.md)

# 管理已排程為停止或淘汰的 Amazon EC2 執行個體
<a name="schedevents_actions_retire"></a>

當 AWS 偵測到執行個體的基礎主機發生無法修復的故障時，會根據執行個體的根磁碟區類型，將執行個體排程為停止或終止。
+ 若執行個體具有 Amazon EBS 根磁碟區，則執行個體會排程為停止。
+ 若執行個體具有執行個體儲存體根磁碟區，則執行個體會排程為終止。

如需詳細資訊，請參閱[執行個體淘汰](instance-retirement.md)。

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

## 您可以採取的動作
<a name="actions-you-can-take-for-scheduled-stop-or-retire-event"></a>

**對於具有 EBS 根磁碟區的執行個體，您可以採取的動作**

當您收到已排程的 `instance-stop` 事件通知時，可以採取下列其中一個動作：
+ **等待排程的停止：**您可以等待執行個體在其排程的維護時段內停止。
+ **執行手動停止和啟動：**您可以在適合您的時間自行停止和啟動執行個體，這會將其移轉至新主機。這與重新啟動執行個體不同。如需詳細資訊，請參閱[停止和啟動 Amazon EC2 執行個體](Stop_Start.md)。
+ **自動停止和啟動：**您可以將立即停止和啟動自動化，以回應排程的 `instance-stop` 事件。如需詳細資訊，請參閱「AWS Health 使用者指南」**中的[在 EC2 執行個體上自動執行操作以回應 AWS Health中的事件](https://docs.aws.amazon.com/health/latest/ug/automating-instance-actions.html)。

**對於具有執行個體儲存體根磁碟區的執行個體，您可以採取的動作**

當您收到已排程的 `system-retirement` 事件通知，並且您想要保留資料時，可以採取下列動作：

1. 從最近的 AMI 中啟動替代執行個體。

1. 在執行個體被排程為終止之前，將所有必要的資料移轉至替代執行個體。

1. 終止原始執行個體，或是等待執行個體依照排程終止。

如需有關您可採取的動作詳細資訊，請參閱[執行個體淘汰](instance-retirement.md)。

# 管理已排程進行重新啟動的 Amazon EC2 執行個體
<a name="schedevents_actions_reboot"></a>

當 AWS 必須執行安裝更新或維護基礎主機等任務時，可以排程執行個體重新啟動。在排程的重新啟動期間，執行個體會保留在相同的主機上，或移轉至不同的主機，具體取決於事件，如下所示：
+ `instance-reboot` 事件
  + 在重新啟動期間，執行個體會保留在主機上。這稱為*就地重新啟動*。
  + 目前的主機會進行維護。
  + 通常在幾秒鐘內完成。
+ `system-reboot` 事件
  + 在重新啟動期間，執行個體會移轉至新主機。這稱為*重新啟動移轉*。
  + 通常在幾分鐘內完成。

若要檢查為您的執行個體排程的事件類型，請參閱[確定事件類型](monitoring-instances-status-check_sched.md#scheduled-event-type)。

## 您可以採取的動作
<a name="actions-you-can-take-for-scheduled-reboot-event"></a>

當您收到排程的 `instance-reboot` 或 `system-reboot` 事件通知時，可以採取下列其中一個動作：
+ **等待排程的重新啟動：**您可以等待執行個體在其排程的維護時段內重新啟動。
+ **對重新啟動進行重新排程：**您可以將執行個體重新啟動[重新排程](reschedule-event.md)為適合您的日期和時間。
+ **執行使用者啟動的重新啟動：**您可以在適合您的時間自行手動[重新啟動](ec2-instance-reboot.md)執行個體。不過，結果取決於事件：
  + `instance-reboot` 事件 – 您的執行個體會保留在目前的硬體上 (就地重新啟動)，不會進行主機維護，而且事件會保持開啟狀態。
  + `system-reboot` 事件
    + 如果執行個體已啟用重新啟動移轉，則使用者啟動的重新啟動會嘗試將執行個體移轉至新硬體。如果成功，則會清除事件。如果失敗，將發生就地重新啟動，並且事件會按排程進行。
    + 如果執行個體已停用重新啟動移轉，則使用者啟動的重新啟動會將執行個體保留在相同的硬體上 (就地重新啟動)，不會執行主機維護，而且事件會保持排程狀態。當排程事件最終發生時， AWS 會將您的執行個體移至新硬體 （重新啟動遷移）。

** AWS 重新啟動執行個體之後**

 AWS 重新啟動執行個體後，以下適用：
+ 清除排程的事件。
+ 更新事件描述。
+ 對於 `instance-reboot` 事件：
  + 基礎主機的維護已完成。
+ 對於 `system-reboot` 事件：
  + 執行個體會移至新主機。
  + 執行個體會保留其 IP 位址和 DNS 名稱。
  + 不會保留本機執行個體儲存體磁碟區上的資料。
+ 您可以在執行個體完全啟動後使用它。

**替代選項**

如果您無法重新排程重新啟動事件或為使用者啟動的重新啟動啟用重新啟動移轉，但想要在排程的維護時段維持正常操作，可以執行下列動作：
+ **對於具有 EBS 根磁碟區的執行個體**
  + 手動停止並啟動執行個體，將其移轉至新主機。這與手動重新啟動執行個體不同，其中執行個體會保留在相同的主機上。
  + 也可以選擇將立即執行個體停止和啟動自動化，以回應已排程的重新啟動事件。如需詳細資訊，請參閱「AWS Health 使用者指南」**中的[在 EC2 執行個體上自動執行操作以回應 AWS Health中的事件](https://docs.aws.amazon.com/health/latest/ug/automating-instance-actions.html)。
**重要**  
在執行個體停止時，執行個體儲存體磁碟區上的資料會遺失。如需詳細資訊，請參閱[停止和啟動 Amazon EC2 執行個體](Stop_Start.md)。
+ **對於具有執行個體儲存體根磁碟區的執行個體**

  1. 從最近的 AMI 中啟動替代執行個體。

  1. 在排程的維護時段之前，將所有必要的資料移轉至取代執行個體。

  1. 終止原始執行個體。

## 啟用或停用重新啟動移轉
<a name="reboot-migration"></a>

為 `system-reboot` 事件排程執行個體時，可以在事件之前將其重新啟動。使用者啟動的重新啟動結果取決於執行個體的重新啟動移轉設定：
+ 已啟用 – 使用者啟動的重新啟動會嘗試將執行個體移轉至新硬體 (重新啟動移轉)。如果成功，則會清除事件。如果失敗，將發生就地重新啟動，並且事件會按排程進行。請注意，即使已啟用，只有在執行個體符合[重新啟動移轉需求](#requirements-for-reboot-migration)時，才能進行重新啟動移轉。
+ 已停用 - 使用者啟動的重新啟動會將執行個體保留在相同的硬體上 (就地重新啟動)，不會執行主機維護，而且事件會保持排程狀態。當排程事件最終發生時， AWS 會將您的執行個體移至新硬體 （重新啟動遷移）。

移轉後重新啟動需要的時間比就地重新啟動更長：
+ 就地重新啟動：約 30 秒
+ 移轉後重新啟動：數分鐘

**注意**  
預設會為使用者啟動的重新啟動移轉啟用可接收 `system-reboot` 事件通知的執行個體。

### 啟用重新啟動移轉的需求
<a name="requirements-for-reboot-migration"></a>

可以在滿足下列條件的執行個體上啟用重新啟動移轉：

**執行個體類型**  
並非所有執行個體類型都支援啟用重新啟動移轉。您可以檢視支援啟用重新啟動移轉的執行個體類型。  

**若要檢視支援啟用重新啟動移轉的執行個體類型**

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

1. 在左側導覽窗格中選擇 **Instance Types** (執行個體類型)。

1. 在篩選列中，輸入**重新啟動移轉支援：支援**。當您輸入字元且篩選條件名稱出現時，可以選取它。

   **執行個體類型**資料表會顯示支援啟用重新啟動移轉的所有執行個體類型。
**若要檢視支援啟用重新啟動移轉的執行個體類型**  
使用 [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) 命令並搭配 `reboot-migration-support` 篩選條件。

```
aws ec2 describe-instance-types \
    --filters Name=reboot-migration-support,Values=supported \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```
**若要檢視支援啟用重新啟動移轉的執行個體類型**  
使用 [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) cmdlet 搭配 `reboot-migration-support` 篩選條件。

```
Get-EC2InstanceType `
    -Filter @{Name="reboot-migration-support";Values="true"} | `
    Select InstanceType | Sort-Object InstanceType
```

**租用**  
+ 共同
+ Dedicated Instance
如需詳細資訊，請參閱[Amazon EC2 專用執行個體](dedicated-instance.md)。

**限制**

具有下列特性的執行個體**不**支援重新啟動移轉：
+ 平台：在 Xen Hypervisor 上原生執行的執行個體
+ 執行個體大小：`metal` 執行個體
+ 租用：專用主機。對於專用主機，改用[專用主機自動復原](dedicated-hosts-recovery.md)。
+ 儲存：具有執行個體儲存體磁碟區的執行個體
+ 聯網：使用 Elastic Fabric Adapter 的執行個體
+ 自動擴展：屬於 Auto Scaling 群組的執行個體

### 啟用或停用重新啟動移轉的步驟
<a name="configure-reboot-migration-behavior"></a>

當執行個體收到 `system-reboot` 事件時，預設會啟用重新啟動移轉。可以停用重新啟動移轉，以便在使用者啟動的重新啟動期間，執行個體會保持在相同的硬體上 (就地重新啟動)。

`default` 組態不會為不支援的執行個體啟用重新啟動移轉。如需詳細資訊，請參閱[啟用重新啟動移轉的需求](#requirements-for-reboot-migration)。

您可以在執行中或已停止的執行個體上停用或啟用重新啟動移轉。

------
#### [ AWS CLI ]

**停用重新啟動移轉**  
使用 [modify-instance-maintenance-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-maintenance-options.html) 命令，並將 `--reboot-migration` 參數設定為 `disabled`。

```
aws ec2 modify-instance-maintenance-options \ 
    --instance-id i-0abcdef1234567890 \ 
    --reboot-migration disabled
```

**若要啟用重新啟動移轉**  
使用 [modify-instance-maintenance-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-maintenance-options.html) 命令，並將 `--reboot-migration` 參數設定為 `default`。

```
aws ec2 modify-instance-maintenance-options \ 
    --instance-id i-0abcdef1234567890 \ 
    --reboot-migration default
```

------
#### [ PowerShell ]

**停用重新啟動移轉**  
使用 [Edit-EC2InstanceMaintenanceOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMaintenanceOption.html) cmdlet。

```
Edit-EC2InstanceMaintenanceOption `
    -InstanceId  `
    -RebootMigration Disabled
```

**若要啟用重新啟動移轉**  
使用 [Edit-EC2InstanceMaintenanceOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMaintenanceOption.html) cmdlet。

```
Edit-EC2InstanceMaintenanceOption `
    -InstanceId i-1234567890abcdef0 `
    -RebootMigration Enabled
```

------

# 管理為維護排程的 Amazon EC2 執行個體
<a name="schedevents_actions_maintenance"></a>

當 AWS 必須維護執行個體的基礎主機時，它會排程執行個體進行維護。有兩種維護事件類型：網路維護及電源維護。
+ 在網路維護期間，排程執行個體會暫時遺失網路連線能力。維護完成後，便會還原您執行個體的一般網路連線能力。
+ 在電源維護期間，排程執行個體會暫時離線，然後重新開機。當執行重新開機時，會保留所有您執行個體的組態設定。

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

## 您可以採取的動作
<a name="actions-you-can-take-for-scheduled-maintenance-event"></a>

**對於具有 EBS 根磁碟區的執行個體，您可以採取的動作**

當您收到 `system-maintenance` 事件通知時，可以採取下列其中一個動作：
+ **等待已排程的維護：**可以等待維護按排程進行。
+ **執行手動停止和啟動：**可以停止和啟動執行個體，將其移轉到新主機。這與重新啟動執行個體不同。如需詳細資訊，請參閱[停止和啟動 Amazon EC2 執行個體](Stop_Start.md)。
+ **自動化停止和啟動**：可以將立即停止和啟動進行自動化，以回應排程的維護事件。如需詳細資訊，請參閱「AWS Health 使用者指南」**中的[在 EC2 執行個體上自動執行操作以回應 AWS Health中的事件](https://docs.aws.amazon.com/health/latest/ug/automating-instance-actions.html)。

**對於具有執行個體儲存體根磁碟區的執行個體，您可以採取的動作**

當您收到 `system-maintenance` 事件通知時，可以採取下列其中一個動作：
+ **等待已排程的維護：**可以等待維護按排程進行。
+ **啟動替代執行個體：**如果您想要在排程的維護時段維持正常操作：

  1. 從最近的 AMI 中啟動替代執行個體。

  1. 在排程的維護時段之前，將所有必要的資料移轉至取代執行個體。

  1. 終止原始執行個體。

# 檢視會影響 Amazon EC2 執行個體的排程事件
<a name="viewing_scheduled_events"></a>

除了在電子郵件中接收排程事件的通知，您可以檢查排程事件。

------
#### [ Console ]

**檢視執行個體的排程事件**

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

1. 儀表板會在**排程事件**下方顯示任何與事件相關聯的資源。  
![\[使用儀表板檢視事件。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/dashboard-scheduled-events.png)

1. 如需更多詳細資訊，在導覽窗格中選擇**事件**。此時會顯示任何與事件相關聯的資源。您可以依特性 (例如事件類型、資源類型和可用區域) 進行篩選。  
![\[使用 Events (事件) 頁面檢視事件。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/events-instance-scheduled-stop.png)

------
#### [ AWS CLI ]

**檢視執行個體的排程事件**  
使用 [describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) 命令。

```
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 ]

**檢視執行個體的排程事件**  
使用下列 [Get-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html) 命令。

```
(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 版，從[執行個體中繼資料](ec2-instance-metadata.md)擷取有關執行個體之作用中維護事件的資訊。

**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 版，從[執行個體中繼資料](ec2-instance-metadata.md)擷取有關已完成或已取消之執行個體事件的資訊。

**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 儀板表 來了解可能影響執行個體的事件。會將問題 Health 儀板表 整理成三個群組：開啟問題、排程變更和其他通知。排定的變更包含進行中或即將進行的項目。

如需詳細資訊，請參閱「指南」中的「AWS Health **[AWS Health 儀板表入門](https://docs.aws.amazon.com/health/latest/ug/getting-started-health-dashboard.html)」。

------

# 自訂 EC2 執行個體的排程事件通知
<a name="customizing_scheduled_event_notifications"></a>

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

當您自訂事件通知以包含標籤時，您可以選擇包含：
+ 與受影響資源關聯的所有標籤
+ 僅與受影響資源關聯的特定標籤

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

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

**Topics**
+ [

## 在事件通知中包含標籤
](#register-tags)
+ [

## 從事件通知中移除標籤
](#deregister-tags)
+ [

## 檢視要包含在事件通知中的標籤
](#view-tags)

## 在事件通知中包含標籤
<a name="register-tags"></a>

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

------
#### [ Console ]

**在事件通知中包含標籤**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions (動作)**、**Manage event notifications (管理事件通知)**。

1. 開啟**在事件通知中包含標籤**。

1. 根據您要包含在事件通知中的標籤，執行下列其中一項動作：
   + 若要包含與受影響執行個體或專用執行個體相關聯的所有標籤，請選取**包含所有資源標籤**。
   + 如需選取要包含的標籤，請選取**選擇要包含的標籤**，然後選取或輸入標籤索引鍵。

1. 選擇**儲存**。

------
#### [ AWS CLI ]

**在事件通知中包含所有標籤**  
使用 [register-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-instance-event-notification-attributes.html) 命令並將 `IncludeAllTagsOfInstance` 參數設定為 `true`。

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

**在事件通知中包含特定標籤**  
使用 [register-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-instance-event-notification-attributes.html) 命令，並使用 `InstanceTagKeys` 參數指定要包含的標籤。

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

------
#### [ PowerShell ]

**在事件通知中包含所有標籤**  
使用 [Register-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Register-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_IncludeAllTagsOfInstance $true
```

**在事件通知中包含特定標籤**  
使用 [Register-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Register-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_InstanceTagKey tag_key_1, tag_key_2, tag_key_3
```

------

## 從事件通知中移除標籤
<a name="deregister-tags"></a>

可從事件通知中移除標籤。

------
#### [ Console ]

**從事件通知中移除標籤**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions (動作)**、**Manage event notifications (管理事件通知)**。

1. 若要從事件通知中移除所有標籤，請關閉**在事件通知中包含資源標籤**。

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

1. 選擇**儲存**。

------
#### [ AWS CLI ]

**從事件通知中移除所有標籤**  
使用 [deregister-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-instance-event-notification-attributes.html) 命令並將 `IncludeAllTagsOfInstance` 參數設定為 `false`。

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

**從事件通知中移除標籤**  
使用 [deregister-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-instance-event-notification-attributes.html) 命令，並使用 `InstanceTagKeys` 參數指定要移除的標籤。

```
aws ec2 deregister-instance-event-notification-attributes \
    --instance-tag-attribute 'InstanceTagKeys=["tag_key_3"]'
```

------
#### [ PowerShell ]

**從事件通知中移除所有標籤**  
使用 [Unregister-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Unregister-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_IncludeAllTagsOfInstance $false
```

**從事件通知中移除標籤**  
使用 [Unregister-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Unregister-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_InstanceTagKey tag_key_3
```

------

## 檢視要包含在事件通知中的標籤
<a name="view-tags"></a>

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

------
#### [ Console ]

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

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions (動作)**、**Manage event notifications (管理事件通知)**。

------
#### [ AWS CLI ]

**若要檢視要包含在事件通知中的標籤**  
使用 [describe-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-event-notification-attributes.html) 命令。

```
aws ec2 describe-instance-event-notification-attributes
```

------
#### [ PowerShell ]

**若要檢視要包含在事件通知中的標籤**  
使用 [Get-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Get-EC2InstanceEventNotificationAttribute
```

------

# 重新排程 EC2 執行個體的排程事件
<a name="reschedule-event"></a>

您可以重新排程事件，使其發生在適合您的特定日期和時間。對事件進行重新排程後，可能需要一到兩分鐘才會顯示更新的日期。

**限制**
+ 只能重新排程有事件截止日期的事件。事件最晚可以重新排程到事件截止日期。**截止日期**資料欄 (主控台) 和 `NotBeforeDeadline` 欄位 (AWS CLI) 會顯示事件截止日期。
+ 只能重新排程尚未開始的事件。**開始時間**資料欄 (主控台) 和 `NotBefore` 欄位 (AWS CLI) 會顯示開始時間。已排程在接下來 5 分鐘內開始的事件不能重新排程。
+ 新的事件開始時間與目前時間至少必須相隔 60 分鐘。
+ 如果您使用主控台重新排程多個事件，則由具有最早事件截止日期的事件決定事件截止日期。

------
#### [ Console ]

**重新排程事件**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

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

1. 選取一或多個執行個體，然後選擇 **Actions (動作)**、**Schedule event (排程事件)**。

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

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

1. 選擇**儲存**。

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

------
#### [ AWS CLI ]

**重新排程事件**  
使用 [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-start-time.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-start-time.html) 命令。

```
aws ec2 modify-instance-event-start-time \
    --instance-id i-1234567890abcdef0 \
    --instance-event-id instance-event-0d59937288b749b32 \
    --not-before 2020-03-25T10:00:00.000
```

------
#### [ PowerShell ]

**重新排程事件**  
使用 [Edit-EC2InstanceEventStartTime](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceEventStartTime.html) cmdlet。

```
Edit-EC2InstanceEventStartTime `
    -InstanceId i-1234567890abcdef0 `
    -InstanceEventId instance-event-0d59937288b749b32 `
    -NotBefore 2020-03-25T10:00:00.000
```

------

# 為影響 Amazon EC2 執行個體的排程事件建立自訂事件時段
<a name="event-windows"></a>

您可以為重新啟動、停止或終止 Amazon EC2 執行個體的排程事件定義自訂每週重複的事件時段。您可以將一或多個執行個體關聯到事件時段。如果已計劃這些執行個體的排程事件， AWS 會在相關聯的事件時段中排程事件。

您可以使用事件時段，透過指定在工作負載離峰期間出現的事件時段，將工作負載可用性最大化。您也可以調整事件時段與內部維護排程。

可以透過指定一組時間範圍來定義事件時段。最短時間範圍為 2 小時。合併的時間範圍總計必須至少 4 小時。

您可以使用執行個體 ID 或執行個體標籤，將一或多個執行個體與事件時段建立關聯。您也可以使用主機 ID，將專用執行個體與事件時段建立關聯。

**警告**  
事件時段僅適用於停止、重新啟動或終止執行個體的排程事件。  
事件時段不適用於：  
快速排程事件和網路維護事件。
未排程的維護 (例如[自動執行個體復原](ec2-instance-recover.md)) 和未計劃的重新啟動。

**Topics**
+ [

## 考量事項
](#event-windows-considerations)
+ [

## 建立事件時段
](#create-event-windows)
+ [

## 將目標與事件時段關聯
](#associate-target-event-window)
+ [

## 解除目標與事件時段的關聯
](#disassociate-target-event-window)
+ [

## 修改事件時段
](#modify-event-windows)
+ [

## 刪除事件時段
](#delete-event-windows)

## 考量事項
<a name="event-windows-considerations"></a>
+ 所有事件時段的時間皆為 UTC 格式。
+ 事件時段可以包含多個時間範圍。雖然每個單獨範圍必須至少為 2 小時，但所有範圍的總持續時間必須至少為 4 小時。
+ 只有一個目標類型 (執行個體 ID、專用執行個體 ID 或執行個體標籤) 可以與事件時段關聯。
+ 一個目標類型 (執行個體 ID、專用執行個體 ID 或執行個體標籤) 只能與一個事件時段關聯。
+ 事件時段最多可與 100 個執行個體 ID 或 50 個專用執行個體 ID 或 50 個執行個體標籤相關聯。執行個體標籤可與任意數量的執行個體關聯。
+ 每個 AWS 區域最多可建立 200 個事件時段。
+ 與事件時段相關聯的多個執行個體可能會同時發生排程事件。
+ 如果 AWS 已排程事件，修改事件時段不會變更排程事件的時間。如果事件有截止日期，您可以[重新排程事件](reschedule-event.md)。
+ 可以在排程事件之前停止和啟動執行個體。這會將執行個體移轉至新主機並清除事件。

## 建立事件時段
<a name="create-event-windows"></a>

您可以建立一或多個事件時段。對於每個事件時段，您可以指定一個或多個時間段。例如，您可以建立一個事件時段，其時間段為每天凌晨 4 點開始，持續 2 小時。或者，您可以建立一個事件時段，其時間段為星期日凌晨 2 點到凌晨 4 點和星期三凌晨 3 點到凌晨 5 點。

事件時段會每週重複出現，直到您刪除為止。

------
#### [ Console ]

**建立事件時段**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions** (動作)、**Manage event windows** (管理事件時段)。

1. 選擇 **Create instance event window** (建立執行個體事件時段)。

1. 對於 **Event window name** (事件時段名稱)，輸入事件時段的描述性名稱。

1. 對於 **Event window schedule** (事件時段排程)，透過使用 cron 排程建置器或指定時間範圍，進行選擇以在事件時段中指定時間段。
   + 如果選擇 **Cron schedule builder** (Cron 排程建置器)，請指定以下內容：

     1. 對於 **Days (UTC)** (天 (UTC))，指定事件時段發生的星期日。

     1. 對於 **Start time (UTC)** (開始時間 (UTC))，指定事件時段開始的時間。

     1. 對於 **Duration** (持續時間)，在事件時段中指定時間段的持續時間。每個時間段的最短持續時間為 2 小時。事件時段的最短持續時間總計必須等於或超過 4 小時。所有時間均以 UTC 表示。
   + 如果選擇 **Time ranges** (時間範圍)，請選擇 **Add new time range** (新增時間範圍)，然後指定開始日期和時間以及結束日期和時間。對每個時間範圍重複此步驟。每個時間範圍的最短持續時間為 2 小時。所有時間範圍合併的最小持續時間總計必須等於或超過 4 小時。

1. (選用) 如需**目標詳細資訊**，請將一個或多個執行個體與事件時段建立關聯。使用執行個體 ID 或執行個體標籤來關聯執行個體。使用主機 ID 來關聯專用主機。當對這些目標進行排程以進行維護時，事件將在此事件時段期間出現。

   請注意，您可以建立事件時段，而無需將目標與時段建立關聯。稍後，您可以修改時段以關聯一個或多個目標。

1. (選用) 對於 **Event window tags** (事件時段標籤)，選擇 **Add tag** (新增標籤)，然後輸入標籤的金鑰和值。針對每個標籤，重複執行上述動作。

1. 選擇 **Create event window** (建立事件時段)。

------
#### [ AWS CLI ]

**建立具有時間範圍的事件時段**  
使用 [create-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-instance-event-window.html) 命令。

```
aws ec2 create-instance-event-window \
    --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \
    --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \
    --name myEventWindowName
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "TimeRanges": [
            {
                "StartWeekDay": "monday",
                "StartHour": 2,
                "EndWeekDay": "wednesday",
                "EndHour": 8
            }
        ],
        "Name": "myEventWindowName",
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

**透過 cron 表達式建立事件時段**  
使用 [create-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-instance-event-window.html) 命令。

```
aws ec2 create-instance-event-window \
    --cron-expression "* 21-23 * * 2,3" \
    --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \
    --name myEventWindowName
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

------
#### [ PowerShell ]

**建立具有時間範圍的事件時段**  
使用 [New-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2InstanceEventWindow.html) cmdlet。

```
$timeRange = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange.StartWeekDay = "monday"
$timeRange.EndWeekDay = "wednesday"
$timeRange.StartHour = 2
$timeRange.EndHour = 8
$tag = @{Key="key1"; Value="value1"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "instance-event-window"
$tagspec.Tags.Add($tag)
New-EC2InstanceEventWindow `
    -Name my-event-window `
    -TagSpecification $tagspec `
    -TimeRange @($timeRange)
```

以下為範例輸出。

```
AssociationTarget     : 
CronExpression        : 
InstanceEventWindowId : iew-0abcdef1234567890
Name                  : my-event-window
State                 : creating
Tags                  : {key1}
TimeRanges            : {Amazon.EC2.Model.InstanceEventWindowTimeRange}
```

**透過 cron 表達式建立事件時段**  
使用 [New-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2InstanceEventWindow.html) cmdlet。

```
$tag = @{Key="key1"; Value="value1"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "instance-event-window"
$tagspec.Tags.Add($tag)
New-EC2InstanceEventWindow `
    -Name my-event-window `
    -TagSpecification $tagspec`
    -CronExpression "* 21-23 * * 2,3"
```

以下為範例輸出。

```
AssociationTarget     : 
CronExpression        : * 21-23 * * 2,3
InstanceEventWindowId : iew-0abcdef1234567890
Name                  : my-event-window
State                 : creating
Tags                  : {key1}
TimeRanges            : {}
```

------

## 將目標與事件時段關聯
<a name="associate-target-event-window"></a>

建立事件時段後，可以將目標與事件時段建立關聯。只能將一種類型的目標與事件時段建立關聯。可以指定執行個體 ID、專用主機 ID 或執行個體標籤。

------
#### [ Console ]

**若要將目標與事件時段關聯**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選取要修改的事件時段。

1. 選擇**動作**、**修改執行個體事件時段**。

------
#### [ AWS CLI ]

**將執行個體標籤與事件時段關聯**  
使用 [associate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-instance-event-window.html) 命令。

```
aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [
                {
                    "Key": "k2",
                    "Value": "v2"
                },
                {
                    "Key": "k1",
                    "Value": "v1"
                }
            ],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**若要將執行個體 ID 與事件時段建立關聯**  
使用 [associate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-instance-event-window.html) 命令。

```
aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [
                "i-1234567890abcdef0",
                "i-0598c7d356eba48d7"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**將專用執行個體與事件時段關聯**  
使用 [associate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-instance-event-window.html) 命令。

```
aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "DedicatedHostIds=h-029fa35a02b99801d"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": [
                "h-029fa35a02b99801d"
            ]
        },
        "State": "creating"
    }
}
```

------
#### [ PowerShell ]

**將執行個體標籤與事件時段關聯**  
使用 [Register-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventWindow.html) cmdlet。

```
$tag1 = @{Key="key1"; Value="value1"}
$tag2 = @{Key="key2"; Value="value2"}
Register-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceTag @($tag1,$tag2)
```

**若要將執行個體 ID 與事件時段建立關聯**  
使用 [Register-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventWindow.html) cmdlet。

```
Register-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceId i-1234567890abcdef0, i-0598c7d356eba48d7
```

**將專用執行個體與事件時段關聯**  
使用 [Register-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventWindow.html) cmdlet。

```
Register-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_DedicatedHostId h-029fa35a02b99801d
```

------

## 解除目標與事件時段的關聯
<a name="disassociate-target-event-window"></a>

------
#### [ Console ]

**若要解除目標與事件時段的關聯**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選取要修改的事件時段。

1. 選擇**動作**、**修改執行個體事件時段**。

------
#### [ AWS CLI ]

**解除執行個體標籤與事件時段的關聯**  
使用 [disassociate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference//ec2/disassociate-instance-event-window.html) 命令。

```
aws ec2 disassociate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**若要解除執行個體 ID 與事件時段的關聯**  
使用 [disassociate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-instance-event-window.html) 命令。

```
aws ec2 disassociate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**解除專用執行個體與事件時段的關聯**  
使用 [disassociate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-instance-event-window.html) 命令。

```
aws ec2 disassociate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target DedicatedHostIds=h-029fa35a02b99801d
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

------
#### [ PowerShell ]

**解除執行個體標籤與事件時段的關聯**  
使用 [Unregister-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventWindow.html) cmdlet。

```
$tag1 = @{Key="key1"; Value="value1"}
$tag2 = @{Key="key2"; Value="value2"}
Unregister-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceTag @($tag1, $tag2)
```

**若要解除執行個體 ID 與事件時段的關聯**  
使用 [Unregister-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventWindow.html) cmdlet。

```
Unregister-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceId i-1234567890abcdef0, i-0598c7d356eba48d7
```

**解除專用執行個體與事件時段的關聯**  
使用 [Unregister-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventWindow.html) cmdlet。

```
Unregister-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_DedicatedHostId h-029fa35a02b99801d
```

------

## 修改事件時段
<a name="modify-event-windows"></a>

您可以修改事件時段的所有欄位，但其 ID 除外。例如，當日光節約時間開始時，您可能想要修改事件時段排程。對於現有事件時段，您可能會想要新增或移除目標。

您可以在修改事件時段時修改時間範圍或 cron 表達式，但不能同時修改兩者。

------
#### [ Console ]

**修改事件時段**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions** (動作)、**Manage event windows** (管理事件時段)。

1. 選取要修改的事件時段，然後選擇 **Actions** (動作)、**Modify instance event window** (修改執行個體事件時段)。

1. 修改事件時段中的欄位，然後選擇 **Modify event window** (修改事件時段)。

------
#### [ AWS CLI ]

**修改事件時段的時間範圍**  
使用 [modify-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-window.html) 命令。

```
aws ec2 modify-instance-event-window 
    --instance-event-window-id iew-0abcdef1234567890 \
    --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "TimeRanges": [
            {
                "StartWeekDay": "monday",
                "StartHour": 2,
                "EndWeekDay": "wednesday",
                "EndHour": 8
            }
        ],
        "Name": "myEventWindowName",
        "AssociationTarget": {
            "InstanceIds": [
                "i-0abcdef1234567890",
                "i-0be35f9acb8ba01f0"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

**修改事件時段的一組時間範圍**  
使用 [modify-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-window.html) 命令。

```
aws ec2 modify-instance-event-window 
    --instance-event-window-id iew-0abcdef1234567890 \
    --time-range '[{"StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8},
	  {"StartWeekDay": "thursday", "StartHour": 2, "EndWeekDay": "friday", "EndHour": 8}]'
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "TimeRanges": [
            {
                "StartWeekDay": "monday",
                "StartHour": 2,
                "EndWeekDay": "wednesday",
                "EndHour": 8
            },
            {
                "StartWeekDay": "thursday",
                "StartHour": 2,
                "EndWeekDay": "friday",
                "EndHour": 8
            }
        ],
        "Name": "myEventWindowName",
        "AssociationTarget": {
            "InstanceIds": [
                "i-0abcdef1234567890",
                "i-0be35f9acb8ba01f0"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

**修改事件時段的 cron 表達式**  
使用 [modify-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-window.html) 命令。

```
aws ec2 modify-instance-event-window 
    --instance-event-window-id iew-0abcdef1234567890 \
    --cron-expression "* 21-23 * * 2,3"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [
                "i-0abcdef1234567890",
                "i-0be35f9acb8ba01f0"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

------
#### [ PowerShell ]

**修改事件時段的時間範圍**  
使用 [Edit-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceEventWindow.html) cmdlet。

```
$timeRange1 = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange1.StartWeekDay = "monday"
$timeRange1.EndWeekDay = "wednesday"
$timeRange1.StartHour = 2
$timeRange1.EndHour = 8
$timeRange2 = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange2.StartWeekDay = "thursday"
$timeRange2.EndWeekDay = "friday"
$timeRange2.StartHour = 1
$timeRange2.EndHour = 6
Edit-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -TimeRange @($timeRange1, $timeRange2)
```

**修改事件時段的 cron 表達式**  
使用 [Edit-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceEventWindow.html) cmdlet。

```
Edit-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -CronExpression "* 21-23 * * 2,3"
```

------

## 刪除事件時段
<a name="delete-event-windows"></a>

可以一次刪除一個事件時段。

------
#### [ Console ]

**刪除事件時段**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions** (動作)、**Manage event windows** (管理事件時段)。

1. 選取要刪除的事件時段，然後選擇 **Actions** (動作)、**Delete instance event window** (刪除執行個體事件時段)。

1. 當出現提示時，輸入 **delete**，然後選擇 **Delete (刪除)**。

------
#### [ AWS CLI ]

**刪除事件時段**  
使用 [delete-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-instance-event-window.html) 命令，然後指定要刪除的事件時段。

```
aws ec2 delete-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890
```

**若要強制刪除事件時段**  
使用 `--force-delete` 參數 (如果事件時段目前與目標相關聯)。

```
aws ec2 delete-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --force-delete
```

------
#### [ PowerShell ]

**刪除事件時段**  
使用 [Remove-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2InstanceEventWindow.html) cmdlet。

```
Remove-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890
```

**若要強制刪除事件時段**  
使用 [Remove-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2InstanceEventWindow.html) cmdlet。

```
Remove-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -ForceDelete $true
```

------

# 使用 CloudWatch 監控您的執行個體
<a name="using-cloudwatch"></a>

您可以使用 Amazon CloudWatch 來監控執行個體，前者會收集來自 Amazon EC2 的原始資料，並處理為可讀且近乎即時的指標。這些統計資料會記錄 15 個月的時間，以便您存取歷史資訊，並更清楚 Web 應用程式或服務的執行效能。

在預設情況下，Amazon EC2 會每隔 5 分鐘將指標資料傳送到 CloudWatch。若要將執行個體的指標資料每隔 1 分鐘傳送至 CloudWatch，您可啟用執行個體的詳細監控。如需詳細資訊，請參閱 [管理 EC2 執行個體的詳細監控](manage-detailed-monitoring.md)。

Amazon EC2 主控台會根據 Amazon CloudWatch 的原始資料顯示一系列圖形。根據需求，您可能偏好從 Amazon CloudWatch 取得執行個體的資料，而非從主控台的圖形取得資料。

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

**Topics**
+ [

# 在 Amazon EC2 主控台中管理 EC2 執行個體的 CloudWatch 警示
](ec2-instance-alarms.md)
+ [

# 管理 EC2 執行個體的詳細監控
](manage-detailed-monitoring.md)
+ [

# 您的執行個體可用的 CloudWatch 指標
](viewing_metrics_with_cloudwatch.md)
+ [

# 使用 Amazon EC2 主控台安裝和設定 CloudWatch 代理程式，以新增其他指標
](install-and-configure-cloudwatch-agent-using-ec2-console.md)
+ [

# 執行個體 CloudWatch 指標的統計資料。
](monitoring_get_statistics.md)
+ [

# 檢視執行個體的監控圖表
](graphs-in-the-aws-management-console.md)
+ [

# 為執行個體建立 CloudWatch 警示
](using-cloudwatch-createalarm.md)
+ [

# 建立警示以停止、終止、重新啟動或復原執行個體
](UsingAlarmActions.md)

# 在 Amazon EC2 主控台中管理 EC2 執行個體的 CloudWatch 警示
<a name="ec2-instance-alarms"></a>

從 Amazon EC2 主控台的**執行個體**畫面中，您可以管理執行個體的 Amazon CloudWatch 警示。在**執行個體**資料表中，**警示狀態**欄提供兩個主控台控制項：一個用於檢視警示的控制項，另一個用於建立或編輯警示。下列螢幕擷取畫面指出這些主控台控制項，編號為 **1** (**檢視警示**) 和 **2** (建立或編輯警示的 **＋** 符號)。

![\[EC2 主控台中執行個體資料表中的控制項，用於檢視和建立警示。1. 檢視警示 2。加號符號。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/instance-alarms.png)


## 從執行個體畫面中檢視警示
<a name="view-ec2-instance-alarms"></a>

您可以從**執行個體**畫面中檢視每個執行個體的警示。

**從執行個體畫面中檢視執行個體的警示**

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

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

1. 在**執行個體**資料表中，針對您選擇的執行個體選擇**檢視警示** (在上述螢幕擷取畫面中為編號 **1**)。

1. 在 ***i-1234567890abcdef0* 的警示詳細資訊**視窗中，選擇警示名稱以在 CloudWatch 主控台中檢視警示。

## 從執行個體畫面建立警示
<a name="create-ec2-instance-alarms"></a>

您可以從**執行個體**畫面為每個執行個體建立警示。

**從執行個體畫面建立執行個體的警示**

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

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

1. 在**執行個體**資料表中，針對您選擇的執行個體，選擇加號 (在上述螢幕擷取畫面中為編號 **2**)。

1. 在**管理 CloudWatch 警示**畫面中，建立您的警示。如需詳細資訊，請參閱 [為執行個體建立 CloudWatch 警示](using-cloudwatch-createalarm.md)。

## 從執行個體畫面編輯警示
<a name="edit-ec2-instance-alarms"></a>

您可以從**執行個體**畫面編輯執行個體的警示。

**從執行個體畫面編輯執行個體的警示**

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

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

1. 在**執行個體**資料表中，針對您選擇的執行個體，選擇加號 (在上述螢幕擷取畫面中為編號 **2**)。

1. 在**管理 CloudWatch 警示**畫面中，編輯您的警示。如需詳細資訊，請參閱 *Amazon CloudWatch 使用者指南*中的[編輯或刪除 CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Manage-CloudWatch-Alarm.html#Edit-CloudWatch-Alarm)。

# 管理 EC2 執行個體的詳細監控
<a name="manage-detailed-monitoring"></a>

Amazon CloudWatch 提供兩種類別的監控：*基本監控*和*詳細監控*。依預設，設定執行個體以進行基本監控。您可以選擇啟用詳細監控，以協助您更快地識別和處理操作問題。執行個體啟動時，或在執行個體運作或停止後，您都可以啟用或關閉執行個體的詳細監控。

在執行個體上啟用詳細監控並不會影響其連接 EBS 磁碟區的監控。如需詳細資訊，請參閱 [Amazon EBS 的 Amazon CloudWatch 指標](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html)。

下表重點說明您執行個體的基本監控和詳細監控之間的差異。


| 監控類型 | 描述 | 費用 | 
| --- | --- | --- | 
| 基本監控 |  狀態檢查指標在 1 分鐘內可用。所有其他指標均在 5 分鐘內可用。  | 免費。 | 
| 詳細監控 | 如果啟用了執行個體的詳細監控，即可在 1 分鐘內取得指標。 啟用詳細監控後，可彙總類似執行個體群組中的資料。 | 我們會按 Amazon EC2 傳送至 CloudWatch 的指標計費。您不需為資料儲存付費。如需詳細資訊，請參閱 [Amazon CloudWatch 定價頁面](https://aws.amazon.com/cloudwatch/pricing/#Paid_tier)中的付費方案。 | 

**Topics**
+ [

## 必要許可
](#iam-detailed-monitoring)
+ [

## 在啟動時啟用詳細監控
](#enable-detailed-monitoring)
+ [

## 管理詳細監控
](#disable-detailed-monitoring)

## 必要許可
<a name="iam-detailed-monitoring"></a>

若要啟用執行個體的詳細監控，您的使用者必須具有使用 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_MonitorInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_MonitorInstances.html) API 動作的許可。若要關閉執行個體的詳細監控，您的使用者必須具有使用 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_UnmonitorInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_UnmonitorInstances.html) API 動作的許可。

## 在啟動時啟用詳細監控
<a name="enable-detailed-monitoring"></a>

在啟動時，使用下列程序啟用詳細監控。依預設，執行個體會使用基本監控。

------
#### [ Console ]

**在執行個體啟動時啟用詳細監控**  
使用 Amazon EC2 主控台啟動執行個體時，請在**進階詳細資訊**下，選取**詳細 CloudWatch 監控**核取方塊。

------
#### [ AWS CLI ]

**在執行個體啟動時啟用詳細監控**  
請使用 `--monitoring` 選項並搭配 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令。

```
--monitoring Enabled=true
```

------
#### [ PowerShell ]

**在執行個體啟動時啟用詳細監控**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 搭配 `-Monitoring` 參數。

```
-Monitoring $true
```

------

## 管理詳細監控
<a name="disable-detailed-monitoring"></a>

使用下列程序來管理執行中或已停止之執行個體的詳細監控。

------
#### [ Console ]

**若要管理詳細監控**

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

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

1. 選取執行個體。

1. 選擇**動作**、**監控和疑難排解**、**管理詳細監控**。

1. 在**詳細監控**頁面上，針對**詳細監控**，執行下列其中一項操作：
   + 詳細監控 – 選取**啟用**。
   + 基本監控 – 清除**啟用**。

1. 選擇**確認**。

------
#### [ AWS CLI ]

**若要啟用詳細監控**  
使用下列 [monitor-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/monitor-instances.html) 命令。

```
aws ec2 monitor-instances --instance-ids i-1234567890abcdef0
```

**若要停用詳細監控**  
使用 [unmonitor-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/unmonitor-instances.html) 命令。

```
aws ec2 unmonitor-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**若要啟用詳細監控**  
使用 [Start-EC2InstanceMonitoring](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2InstanceMonitoring.html) cmdlet。

```
Start-EC2InstanceMonitoring -InstanceId i-1234567890abcdef0
```

**若要停用詳細監控**  
使用 [Stop-EC2InstanceMonitoring](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2InstanceMonitoring.html) cmdlet。

```
Stop-EC2InstanceMonitoring -InstanceId i-1234567890abcdef0
```

------

# 您的執行個體可用的 CloudWatch 指標
<a name="viewing_metrics_with_cloudwatch"></a>

Amazon EC2 將指標傳送至 Amazon CloudWatch。您可以使用 AWS 管理主控台、 AWS CLI或 API 來列出 Amazon EC2 傳送至 CloudWatch 的指標。每個資料點預設會涵蓋執行個體從啟動時間後 5 分鐘內的活動。若您已啟用詳細監控功能，則每個資料點會涵蓋從啟動時間後下一分鐘的活動。請注意，針對 Minimum (最小值)、Maximum (最大值) 和 Average (平均值) 等統計數字，EC2 提供的指標最精細的程度是 1 分鐘。

如需有關如何使用 AWS 管理主控台 或 檢視可用指標的資訊 AWS CLI，請參閱《*Amazon CloudWatch 使用者指南*》中的[檢視可用指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)。

如需取得這些指標統計資料的資訊，請參閱[執行個體 CloudWatch 指標的統計資料。](monitoring_get_statistics.md)。

**Topics**
+ [

## 執行個體指標
](#ec2-cloudwatch-metrics)
+ [

## 加速器指標
](#accelerator-metrics)
+ [

## CPU 額度指標
](#cpu-credit-metrics)
+ [

## 專用執行個體指標
](#dh-metrics)
+ [

## Nitro 型執行個體的 Amazon EBS 指標
](#ebs-metrics-nitro)
+ [

## 狀態檢查指標
](#status-check-metrics)
+ [

## 流量鏡像指標
](#traffic-mirroring-metrics)
+ [

## Auto Scaling 群組指標
](#autoscaling-metrics)
+ [

## Amazon EC2 指標維度
](#ec2-cloudwatch-dimensions)
+ [

## Amazon EC2 用量指標
](#service-quota-metrics)

## 執行個體指標
<a name="ec2-cloudwatch-metrics"></a>

`AWS/EC2` 命名空間包含下列執行個體指標。


| 指標 | Description | 單位 | 有意義的統計資料 | 
| --- | --- | --- | --- | 
| CPUUtilization |  Amazon EC2 用於執行 EC2 執行個體的實體 CPU 時間百分比，其中包括執行使用者程式碼和 Amazon EC2 程式碼所花費的時間。 整體而言，`CPUUtilization` 是訪客 `CPUUtilization` 和 Hypervisor `CPUUtilization` 的總和。 由於舊式裝置模擬、非舊式裝置組態、頻繁中斷的工作負載、即時遷移和即時更新等因素，作業系統中工具顯示的百分比可能與 CloudWatch 不同。  |  Percent  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskReadOps |  在指定期間，執行個體可用之所有執行個體存放區磁碟區的已完成讀取操作。 若要計算該期間的每秒平均 I/O 操作數 (IOPS)，請將該期間的總操作數除以該期間的秒數。 如果沒有執行個體存放區磁碟區，數值可能為 0 或指標未回報。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskWriteOps |  在指定期間，執行個體可用之所有執行個體存放區磁碟區的已完成寫入操作。 若要計算該期間的每秒平均 I/O 操作數 (IOPS)，請將該期間的總操作數除以該期間的秒數。 如果沒有執行個體存放區磁碟區，數值可能為 0 或指標未回報。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskReadBytes |  從執行個體可用之所有執行個體存放區磁碟區讀取的位元組。 此指標用來判斷應用程式從執行個體硬碟中讀取的資料磁碟區。這可以用來判斷應用程式的速度。 所報告的數目是在期間內收到的位元組總數。如果您要使用基本 (5 分鐘) 監控，則可以將此數字除以 300，以找到位元組數/秒。如果您具有詳細 (1 分鐘) 監控，請將它除以 60。您也可以使用 CloudWatch 指標數學函數 `DIFF_TIME`，尋找每秒位元組數。舉例來說，如果您已在 CloudWatch 中將 `DiskReadBytes` 圖表化為 `m1`，則指標數學公式 `m1/(DIFF_TIME(m1))` 會傳回以位元組數/秒為單位的指標。如需 `DIFF_TIME` 和其他指標數學函數的詳細資訊，請參閱「Amazon CloudWatch 使用者指南」**的[使用指標數學](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。 如果沒有執行個體存放區磁碟區，數值可能為 0 或指標未回報。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskWriteBytes |  寫入至執行個體可用之所有執行個體存放區磁碟區的位元組。 此指標用來判斷應用程式寫入至執行個體硬碟中的資料磁碟區。這可以用來判斷應用程式的速度。 所報告的數目是在期間內收到的位元組總數。如果您要使用基本 (5 分鐘) 監控，則可以將此數字除以 300，以找到位元組數/秒。如果您具有詳細 (1 分鐘) 監控，請將它除以 60。您也可以使用 CloudWatch 指標數學函數 `DIFF_TIME`，尋找每秒位元組數。舉例來說，如果您已在 CloudWatch 中將 `DiskWriteBytes` 圖表化為 `m1`，則指標數學公式 `m1/(DIFF_TIME(m1))` 會傳回以位元組數/秒為單位的指標。如需 `DIFF_TIME` 和其他指標數學函數的詳細資訊，請參閱「Amazon CloudWatch 使用者指南」**的[使用指標數學](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。 如果沒有執行個體存放區磁碟區，數值可能為 0 或指標未回報。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| MetadataNoToken |  已使用不使用字符的方法成功存取執行個體中繼資料服務 (IMDS) 的次數。 此指標用來判斷是否有任何正在使用執行個體中繼資料服務第 1 版 (IMDSv1) 的程序，在未使用字符的情況下存取執行個體中繼資料。如果所有請求都使用字符後端工作階段，也就是執行個體中繼資料服務第 2 (IMDSv2)，則值為 0。如需詳細資訊，請參閱[轉換為使用 執行個體中繼資料服務第 2 版](instance-metadata-transition-to-version-2.md)。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| MetadataNoTokenRejected |  在停用 IMDSv1 後嘗試 IMDSv1 呼叫的次數。 如果出現此指標，則表示已嘗試 IMDSv1 呼叫，並遭拒絕。您可以重新啟用 IMDSv1 或確保所有呼叫都使用 IMDSv2。如需詳細資訊，請參閱[轉換為使用 執行個體中繼資料服務第 2 版](instance-metadata-transition-to-version-2.md)。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkIn |  執行個體在所有網路介面上收到的位元組數目。此指標識別流向單一執行個體之傳入網路流量的磁碟區。 所報告的數目是在期間內收到的位元組總數。如果您要使用基本 (5 分鐘) 監控並且統計數字為總和，則可以將此數字除以 300，以找出每秒的位元組數。如果您具有詳細 (1 分鐘) 監控並且統計數字為總和，請將它除以 60。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkOut |  執行個體在所有網路介面上送出的位元組數目。此指標識別來自單一執行個體之傳出網路流量的磁碟區。 所報告的數目是在期間內送出的位元組總數。如果您要使用基本 (5 分鐘) 監控並且統計數字為總和，則可以將此數字除以 300，以找出每秒的位元組數。如果您具有詳細 (1 分鐘) 監控並且統計數字為總和，請將它除以 60。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkPacketsIn |  執行個體在所有網路介面上收到的封包數目。此指標識別單一執行個體上的傳入流量 (封包數目)。 此指標僅適用於基本監控 (每隔 5 分鐘)。若要計算執行個體在 5 秒時間每秒接收的封包數 (PPS)，請將 Sum 統計數字值除以 300。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkPacketsOut |  執行個體在所有網路介面上送出的封包數目。此指標識別單一執行個體上的傳出流量 (封包數目)。 此指標僅適用於基本監控 (每隔 5 分鐘)。若要計算執行個體在 5 分鐘時間每秒傳送的封包數 (PPS)，請將 Sum 統計數字值除以 300。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## 加速器指標
<a name="accelerator-metrics"></a>

`AWS/EC2` 命名空間包含[加速運算執行個體](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html)的下列加速器指標。僅在加速運算執行個體類型的子集上受支援。


| 指標 | Description | 單位 | 有意義的統計資料 | 
| --- | --- | --- | --- | 
| GPUPowerUtilization | 有效功率用量佔有最大有效功率的百分比。 | 百分比 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## CPU 額度指標
<a name="cpu-credit-metrics"></a>

`AWS/EC2` 命名空間包含[高載效能執行個體](burstable-performance-instances.md)的下列 CPU 額度指標。


| 指標 | Description | 單位 | 有意義的統計資料 | 
| --- | --- | --- | --- | 
| CPUCreditUsage |  執行個體為 CPU 使用率花費的 CPU 額度數量。一個 CPU 額度等於一個 vCPU 以 100% 使用率執行 1 分鐘，或同等的 vCPU、使用率與時間的組合 (例如，一個 vCPU 以 50% 使用率執行 2 分鐘，或兩個 vCPU 以 25% 使用率執行 2 分鐘)。 CPU 額度指標僅提供 5 分鐘頻率。如果您要指定大於 5 分鐘的期間，請使用 `Sum` 統計資訊代替 `Average` 統計資訊。  |  額度 (vCPU-分鐘)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| CPUCreditBalance |  自執行個體啟動或開始後，累積獲得的 CPU 額度數量。如果是 T2 Standard，`CPUCreditBalance` 也包含已產生的啟動額度。 獲得額度後，額度會在額度餘額中累積，並在支付額度時，從額度餘額中移出。額度餘額有最大值限制，它取決於執行個體大小。到達限制之後，任何獲得的新額度都會遭到捨棄。如果是 T2 Standard，啟動額度不會計入此限制。 `CPUCreditBalance` 中的額度可供執行個體支付以大幅提升並超越基準 CPU 使用率。 當執行個體執行時，`CPUCreditBalance` 中的額度不會過期。當 T3 或 T3a 執行個體停止時，`CPUCreditBalance` 值會持續保存七天。因此，所有累積的額度都會消失。當 T2 執行個體停止時，`CPUCreditBalance` 值不會持續保存，而且所有累積的額度都將消失。 CPU 額度指標僅提供 5 分鐘頻率。  |  額度 (vCPU-分鐘)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| CPUSurplusCreditBalance  |  當 `unlimited` 執行個體的 `CPUCreditBalance` 值為 0 時，該執行個體已支出的剩餘額度數量。 `CPUSurplusCreditBalance` 值由獲得的 CPU 額度支付。如果剩餘額度超過執行個體在 24 小時期間可獲得的最大額度數量，超過最大值的支出剩餘額度將必須負擔額外的費用。 CPU 額度指標僅提供 5 分鐘頻率。  |  額度 (vCPU-分鐘)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| CPUSurplusCreditsCharged |  若支出剩餘額度數量未由獲得的 CPU 額度付清，會產生額外的費用。 發生以下任何情況時，將收取支出剩餘額度的費用。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) CPU 額度指標僅提供 5 分鐘頻率。  |  額度 (vCPU-分鐘)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## 專用執行個體指標
<a name="dh-metrics"></a>

`AWS/EC2` 命名空間包含下列 T3 專用執行個體的指標。


| 指標 | Description | 單位 | 有意義的統計資料 | 
| --- | --- | --- | --- | 
|  DedicatedHostCPUUtilization |  專用執行個體上執行的執行個體目前正在使用的已配置運算容量百分比。  |  Percent  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## Nitro 型執行個體的 Amazon EBS 指標
<a name="ebs-metrics-nitro"></a>

`AWS/EC2` 命名空間包含連接至 Nitro 型執行個體 (不屬於裸機執行個體) 的磁碟區的其它 Amazon EBS 指標。


| 指標 | Description | 單位 | 有意義的統計資料 | 
| --- | --- | --- | --- | 
|  InstanceEBSIOPSExceededCheck  |  報告應用程式是否嘗試在最後一分鐘內驅動超過執行個體 EBS IOPS 上限的 IOPS。此指標可以是 `0` (未超過 IOPS) 或 `1` (超過 IOPS)。  |  無  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  InstanceEBSThroughputExceededCheck  |  報告應用程式是否嘗試在最後一分鐘內驅動超過執行個體 EBS 輸送量上限的輸送量。此指標可以是 `0` (未超過輸送量) 或 `1` (超過輸送量)。  |  無  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSReadOps |  在指定期間，從連接至執行個體的所有 Amazon EBS 磁碟區完成讀取的操作數。 若要計算該期間的每秒平均讀取 I/O 操作數 (讀取 IOPS)，請將該期間的總操作數除以該期間的秒數。如果您正使用基本 (5 分鐘) 監控，則可以將此數字除以 300，以計算讀取 IOPS。如果您具有詳細 (1 分鐘) 監控，請將它除以 60。您也可以使用 CloudWatch 指標數學函數 `DIFF_TIME`，尋找每秒操作數。舉例來說，如果您已在 CloudWatch 中將 `EBSReadOps` 圖表化為 `m1`，則指標數學公式 `m1/(DIFF_TIME(m1))` 會傳回以操作數/秒為單位的指標。如需 `DIFF_TIME` 和其他指標數學函數的詳細資訊，請參閱「Amazon CloudWatch 使用者指南」**的[使用指標數學](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。  |  計數  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSWriteOps  |  在指定期間，從連接至執行個體的所有 EBS 磁碟區完成寫入的操作數。 若要計算該期間的每秒平均寫入 I/O 操作數 (寫入 IOPS)，請將該期間的總操作數除以該期間的秒數。如果您正使用基本 (5 分鐘) 監控，則可以將此數字除以 300，以計算寫入 IOPS。如果您具有詳細 (1 分鐘) 監控，請將它除以 60。您也可以使用 CloudWatch 指標數學函數 `DIFF_TIME`，尋找每秒操作數。舉例來說，如果您已在 CloudWatch 中將 `EBSWriteOps` 圖表化為 `m1`，則指標數學公式 `m1/(DIFF_TIME(m1))` 會傳回以操作數/秒為單位的指標。如需 `DIFF_TIME` 和其他指標數學函數的詳細資訊，請參閱「Amazon CloudWatch 使用者指南」**的[使用指標數學](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。  |  計數  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSReadBytes  |  在指定期間內，從連接至執行個體的所有 EBS 磁碟區所讀取的位元組。 所報告的數目是在該期間內讀取的位元組總數。如果您正使用基本 (5 分鐘) 監控，則可以將此數字除以 300，以得到所讀取的位元組數/秒。如果您具有詳細 (1 分鐘) 監控，請將它除以 60。您也可以使用 CloudWatch 指標數學函數 `DIFF_TIME`，尋找每秒位元組數。舉例來說，如果您已在 CloudWatch 中將 `EBSReadBytes` 圖表化為 `m1`，則指標數學公式 `m1/(DIFF_TIME(m1))` 會傳回以位元組數/秒為單位的指標。如需 `DIFF_TIME` 和其他指標數學函數的詳細資訊，請參閱「Amazon CloudWatch 使用者指南」**的[使用指標數學](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。  |  位元組  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSWriteBytes  |  在指定期間內，從所有連接至執行個體的 EBS 磁碟區所寫入的位元組。 所報告的數目是在該期間內寫入的位元組總數。如果您正使用基本 (5 分鐘) 監控，則可以將此數字除以 300，得到所寫入的位元組數/秒。如果您具有詳細 (1 分鐘) 監控，請將它除以 60。您也可以使用 CloudWatch 指標數學函數 `DIFF_TIME`，尋找每秒位元組數。舉例來說，如果您已在 CloudWatch 中將 `EBSWriteBytes` 圖表化為 `m1`，則指標數學公式 `m1/(DIFF_TIME(m1))` 會傳回以位元組數/秒為單位的指標。如需 `DIFF_TIME` 和其他指標數學函數的詳細資訊，請參閱「Amazon CloudWatch 使用者指南」**的[使用指標數學](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。  |  位元組  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSIOBalance%  |  提供叢發儲存貯體中剩餘 I/O 額度百分比資訊。只有基本監控才提供此指標。 此指標僅適用於一些大小為 `*.4xlarge` 及更小的執行個體，至少每 24 小時維持最佳效能 30 分鐘。 `Sum` 統計資料不適用於此指標。  |  百分比  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSByteBalance%  |  提供叢發儲存貯體中剩餘傳輸量額度百分比的資訊。只有基本監控才提供此指標。 此指標僅適用於一些大小為 `*.4xlarge` 及更小的執行個體，至少每 24 小時維持最佳效能 30 分鐘。 `Sum` 統計資料不適用於此指標。  |  百分比  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

如需 EBS 磁碟區提供之指標的詳細資訊，請參閱「Amazon EBS 使用者指南」**中的 [Amazon EBS 磁碟區指標](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html#ebs-volume-metrics)。如需 EC2 Fleet 和 Spot Fleet 指標的詳細資訊，請參閱 [使用 CloudWatch 監控 EC2 機群或 Spot 機群](ec2-fleet-cloudwatch-metrics.md)。

## 狀態檢查指標
<a name="status-check-metrics"></a>

根據預設，狀態檢查指標的頻率為 1 分鐘，而且免費。對於新啟動的執行個體，只有在執行個體完成初始化狀態 (在執行個體進入 `running` 狀態的幾分鐘內) 之後，才能使用狀態檢查指標資料。如需有關 EC2 狀態檢查的詳細資訊，請參閱[Amazon EC2 執行個體的狀態檢查](monitoring-system-instance-status-check.md)。

`AWS/EC2` 命名空間包含下列狀態檢查指標。


| 指標 | Description | 單位 | 有意義的統計資料 | 
| --- | --- | --- | --- | 
| StatusCheckFailed |  報告執行個體是否在最後一分鐘通過所有狀態檢查。 此指標可以是 `0` (通過) 或 `1` (失敗)。 根據預設，此指標的頻率為 1 分鐘，而且免費。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| StatusCheckFailed\$1Instance |  報告執行個體是否在最後一分鐘通過執行個體狀態檢查。 此指標可以是 `0` (通過) 或 `1` (失敗)。 根據預設，此指標的頻率為 1 分鐘，而且免費。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| StatusCheckFailed\$1System |  報告執行個體是否在最後一分鐘通過系統狀態檢查。 此指標可以是 `0` (通過) 或 `1` (失敗)。 根據預設，此指標的頻率為 1 分鐘，而且免費。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| StatusCheckFailed\$1AttachedEBS |  報告執行個體是否在最後一分鐘通過附接的 EBS 狀態檢查。 此指標可以是 `0` (通過) 或 `1` (失敗)。 根據預設，此指標的頻率為 1 分鐘，而且免費。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

`AWS/EBS` 命名空間包含下列狀態檢查指標。


| 指標 | Description | 單位 | 有意義的統計資料 | 
| --- | --- | --- | --- | 
| VolumeStalledIOCheck |  **注意：**僅適用於 Nitro 執行個體。未針對連接至 Amazon ECS 和 AWS Fargate 任務的磁碟區發佈。 在最後一分鐘報告磁碟區*停止的 IO 檢查*是通過還是失敗。此指標可以是 `0` (通過) 或 `1` (失敗)。  |  無  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## 流量鏡像指標
<a name="traffic-mirroring-metrics"></a>

`AWS/EC2` 命名空間包含鏡像流量的指標。如需詳細資訊，請參閱「*Amazon VPC Traffic Mirroring 指南*」中的[使用 Amazon CloudWatch 監控鏡像流量](https://docs.aws.amazon.com/vpc/latest/mirroring/traffic-mirror-cloudwatch.html)。

## Auto Scaling 群組指標
<a name="autoscaling-metrics"></a>

`AWS/AutoScaling` 命名空間包含 Auto Scaling 組的指標。如需詳細資訊，請參閱《Amazon EC2 Auto Scaling 使用者指南》中的[監控 Auto Scaling 群組和執行個體的 CloudWatch 指標](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html)。**

## Amazon EC2 指標維度
<a name="ec2-cloudwatch-dimensions"></a>

您可以使用下列維度來強化上表中列出的指標。


| 維度 | 描述 | 
| --- | --- | 
|  AutoScalingGroupName  |  此維度可篩選您為指定容量群組中所有執行個體請求的資料。如果您使用 Auto Scaling，則「Auto Scaling 群組」**是您定義的執行個體集合。如果執行個體位於 Auto Scaling 群組中，則此維度僅適用於 Amazon EC2 指標。適用於已啟用詳細或基本監控的執行個體。  | 
|  ImageId  |  此維度可篩選您為執行此 Amazon EC2 Amazon Machine Image (AMI) 的所有執行個體請求的資料。適用於已啟用詳細監控的執行個體。  | 
|  InstanceId  |  此維度會篩選僅針對已識別執行個體所請求的資料。如此可協助您找出要監控資料的確切執行個體。  | 
|  InstanceType  |  此維度可篩選您為以此指定執行個體類型執行的所有執行個體請求的資料。如此可協助您依據執行的執行個體類型將您的資料進行分類。例如，您可以比較來自 m1.small 執行個體與 m1.large 執行個體的資料，判斷哪個執行個體對您的應用程式而言具有較高的商業價值。適用於已啟用詳細監控的執行個體。  | 

## Amazon EC2 用量指標
<a name="service-quota-metrics"></a>

您可以使用 CloudWatch 用量指標來提供您帳戶的資源用量可見度。使用這些指標，以 CloudWatch 圖表和儀表板視覺化目前的服務使用狀況。

Amazon EC2 用量指標對應至 AWS 服務配額。您可以設定警示，在您的用量接近服務配額時發出警示。如需 CloudWatch 與 Service Quotas 整合的詳細資訊，請參閱「*Amazon CloudWatch 使用者指南*」中的 [AWS 用量指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)。

Amazon EC2 在 `AWS/Usage` 命名空間中發佈下列指標。


| 指標 | 描述 | 
| --- | --- | 
| `ResourceCount` |  您的帳戶中正在執行的特定資源數量。資源由與指標相關聯的維度定義。 此指標最有用的統計資料是 `MAXIMUM`，它表示 1 分鐘內使用的最大資源數量。  | 

以下維度用於強化 Amazon EC2 發佈的用量指標。


| 維度 | Description | 
| --- | --- | 
|  Service  |  包含資源 AWS 的服務名稱。對於 Amazon EC2 用量指標，此維度的值為 `EC2`。  | 
|  Type  |  正在報告的實體類型。目前，Amazon EC2 用量指標的唯一有效值為 `Resource`。  | 
|  Resource  |  正在執行的資源類型。目前，Amazon EC2 用量指標的唯一有效值為 `vCPU`，它會傳回正在執行之執行個體的相關資訊。  | 
|  Class  |  正在追蹤的資源類別。對於以 `vCPU` 做為 `Resource` 維度值的 Amazon EC2 用量指標，有效值為 `Standard/OnDemand`、`F/OnDemand`、`G/OnDemand`、`Inf/OnDemand`、`P/OnDemand` 和 `X/OnDemand`。 該維度的值定義指標報告之執行個體類型的第一個字母。例如，`Standard/OnDemand` 傳回開頭為 A、C、D、H、I、M、R、T 和 Z 之所有執行中執行個體的相關資訊，,而 `G/OnDemand` 傳回開頭為 G 之所有執行中執行個體的相關資訊。  | 

# 使用 Amazon EC2 主控台安裝和設定 CloudWatch 代理程式，以新增其他指標
<a name="install-and-configure-cloudwatch-agent-using-ec2-console"></a>


|  | 
| --- |
| 透過 Amazon EC2 主控台安裝和設定 CloudWatch 代理程式目前適用於 Amazon EC2 的 Beta 版，之後可能會有所變更。 | 

根據預設，Amazon CloudWatch 提供基本指標，例如 `CPUUtilization`和 `NetworkIn`，用於監控您的 Amazon EC2 執行個體。若要收集其他指標，您可以在 EC2 執行個體上安裝 CloudWatch 代理程式，然後將代理程式設定為發出選取的指標。您可以在每個 EC2 執行個體上手動安裝和設定 CloudWatch 代理程式，而不需要使用 Amazon EC2 主控台來為您執行此操作。

您可使用 Amazon EC2 主控台在執行個體上安裝 CloudWatch 代理程式，並將代理程式設定為發出選取的指標。

或者，若要手動完成此程序，請參閱《Amazon CloudWatch 使用者指南》中的[安裝 CloudWatch 代理程式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)。**如需 CloudWatch 代理程式的詳細資訊，請參閱[使用 CloudWatch 代理程式收集指標、日誌和追蹤](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。

**Topics**
+ [

## 先決條件
](#install-and-configure-cw-agent-prerequisites)
+ [

## 運作方式
](#install-and-configure-cw-agent-how-it-works)
+ [

## 成本
](#install-and-configure-cw-agent-costs)
+ [

## 安裝及設定 CloudWatch 代理程式
](#install-and-configure-cw-agent-procedure)

## 先決條件
<a name="install-and-configure-cw-agent-prerequisites"></a>

若要使用 Amazon EC2 安裝和設定 CloudWatch 代理程式，您必須符合本節所述的使用者和執行個體先決條件。

**提示**  
此功能不適用於所有 AWS 區域。如果此頁面的安裝程序中描述的功能表項目不存在於 Amazon EC2 主控台中，而且您對執行個體的執行位置可以靈活調整，請嘗試其他區域。否則，可以使用《Amazon CloudWatch 使用者指南》**中的手動指示來安裝和設定代理程式。

**使用者先決條件**  
若要使用此功能，您的 IAM 主控台使用者或角色必須具有使用 Amazon EC2 和下列 IAM 所需的許可：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter",
                "ssm:PutParameter"
            ],
            "Resource": "arn:aws:ssm:*:*:parameter/EC2-Custom-Metrics-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand",
                "ssm:ListCommandInvocations",
                "ssm:DescribeInstanceInformation"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetInstanceProfile",
                "iam:SimulatePrincipalPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**執行個體先決條件**
+ 執行個體狀態：`running`
+ 支援的作業系統：Linux
+ AWS Systems Manager 代理程式 (SSM 代理程式）：已安裝。有關 SSM Agent 的兩個備註：
  + SSM Agent 預先安裝在由 AWS 和信任的第三方提供的一些 Amazon Machine Image AMIs) 上。如需有關支援的 AMIs 和安裝 SSM Agent 指示的詳細資訊，請參閱*AWS Systems Manager 使用者指南*中的[預先安裝 SSM Agent 的 Amazon Machine Images (AMIs)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html)。
  + 如果您遇到 SSM Agent 的問題，請參閱*AWS Systems Manager 使用者指南*中的 [SSM Agent 疑難排解](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html)。
+ 執行個體的 IAM 許可：必須將下列 AWS 受管政策新增至連接至執行個體的 IAM 角色：
  + [AmazonSSMManagedInstanceCore](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html) – 讓執行個體使用 Systems Manager 安裝和設定 CloudWatch 代理程式。
  + [CloudWatchAgentServerPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchAgentServerPolicy.html) – 讓執行個體使用 CloudWatch 代理程式將資料寫入 CloudWatch。

  如需如何將 IAM 許可新增至執行個體的詳細資訊，請參閱《IAM 使用者指南》**中的[使用執行個體設定檔](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。

## 運作方式
<a name="install-and-configure-cw-agent-how-it-works"></a>

在您可以使用 Amazon EC2 控制台安裝和設定 CloudWatch 代理程式之前，您必須先確認您的 IAM 使用者或角色，以及您要新增指標的執行個體符合特定先決條件。然後，您可以使用 Amazon EC2 主控台在選取的執行個體上安裝和設定 CloudWatch 代理程式。

**首先符合[先決條件](#install-and-configure-cw-agent-prerequisites)**
+ **您需要必要的 IAM 許可** – 開始使用之前，請確認您的主控台使用者或角色具有使用此功能所需的 IAM 許可。
+ **執行個體** – 若要使用此功能，您的 EC2 執行個體必須是 Linux 執行個體、已安裝 SSM Agent、具備所需的 IAM 許可，且正在執行中。

**接下來，您即可[使用此功能](#install-and-configure-cw-agent-procedure)**

1. **選取您的執行個體** – 在 Amazon EC2 主控台中，您可以選取要安裝和設定 CloudWatch 代理程式的執行個體。然後，選擇**設定 CloudWatch 代理程式**來開始流程。

1. **驗證 SSM 代理程式** – Amazon EC2 會檢查 SSM 代理程式是否已在每個執行個體上安裝和啟動。任何未通過此檢查的執行個體都會從流程中排除。在此流程期間，SSM Agent 會用於在執行個體中執行動作。

1. **驗證 IAM 許可** – Amazon EC2 會檢查每個執行個體是否具有此流程所需的 IAM 許可。任何未通過此檢查的執行個體都會從流程中排除。IAM 許可可讓 CloudWatch 代理程式從執行個體收集指標，並與 整合 AWS Systems Manager 以使用 SSM 代理程式。

1. **驗證 CloudWatch 代理程式** – Amazon EC2 會檢查 CloudWatch 代理程式是否已在每個執行個體上安裝並執行。如果任何執行個體未通過此檢查，Amazon EC2 會為您安裝和啟動 CloudWatch 代理程式。此流程完成後，CloudWatch 代理程式會在每個執行個體上收集選取的指標。

1. **選取指標設定** – 您可以從執行個體中選取要讓 CloudWatch 代理程式發出的指標。選取後，Amazon EC2 會將設定檔案存放在 Parameter Store 中，該檔案會保留到流程完成為止。除非流程中斷，否則 Amazon EC2 將從 Parameter Store 中刪除設定檔案。請注意，如果您未選取指標，但先前已將其新增至執行個體，則此流程完成時，將會從執行個體中移除該指標。

1. **更新 CloudWatch 代理程式設定** – Amazon EC2 會將指標設定傳送至 CloudWatch 代理程式。這是流程中的最後一個步驟。如果成功，您的執行個體可以發出選取指標的資料，Amazon EC2 會從 Parameter Store 中刪除設定檔案。

## 成本
<a name="install-and-configure-cw-agent-costs"></a>

您在此流程期間新增的其他指標會以自訂指標計費。如需 CloudWatch 指標定價的詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

## 安裝及設定 CloudWatch 代理程式
<a name="install-and-configure-cw-agent-procedure"></a>

您可以使用 Amazon EC2 主控台來安裝和設定 CloudWatch 代理程式，以新增其他指標。

**注意**  
每次執行此流程時，您都會覆寫現有的 CloudWatch 代理程式設定。如果您未選取先前選取的指標，則會從執行個體中移除該指標。

**使用 Amazon EC2 主控台安裝和設定 CloudWatch 代理程式**

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

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

1. 選取要安裝和設定 CloudWatch 代理程式的執行個體。

1. 選擇**動作**、**監控和疑難排解**、**設定 CloudWatch 代理程式**。

1. 對於流程中的每個步驟，請閱讀主控台文字，然後選擇**下一步**。

1. 若要完成流程，請在最後一個步驟中，選擇**完成**。

**若要更新 Amazon EC2 主控台建立的代理程式組態**  
可以手動自訂 EC2 主控台建立的組態。如需詳細資訊，請參閱《Amazon CloudWatch 使用者指南》中的**[手動建立或編輯 CloudWatch 代理程式組態檔案](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)。

# 執行個體 CloudWatch 指標的統計資料。
<a name="monitoring_get_statistics"></a>

您可以取得執行個體 CloudWatch 指標的統計資料。*統計資料*是隨著指定期間的指標資料彙總。CloudWatch 會根據自訂資料或在 中由其他服務 AWS 提供給 CloudWatch 的指標資料點提供統計資料。彙總會使用在您指定期間的命名空間、公制名稱、維度和量測資料點單位來進行。下表說明可用的統計資料。


| 統計數字 | 描述 | 
| --- | --- | 
| Minimum |  在指定期間內觀察到的最低值。您可以使用這個值來判斷適用於您應用程式的低活動磁碟區。  | 
| Maximum |  在指定期間內觀察到的最高值。您可以使用這個值來判斷適用於您應用程式的高活動磁碟區。  | 
| Sum |  為符合指標總和提交的所有值。這個統計資料在決定指標的總磁碟區時非常有用。  | 
| Average |  指定期間內的 `Sum`/`SampleCount` 值。透過比較這個統計資料與 `Minimum` 和 `Maximum`，您可以確定指標的完整範圍，以及 `Minimum` 和 `Maximum` 與平均使用的接近程度。這個比較可協助您知道何時需要增加或減少您的資源。  | 
| SampleCount |  用於統計資料計算的資料點計數 (數值)。  | 
| pNN.NN |  指定百分位數的值。您可以指定任何百分位數，最多使用兩位小數 (例如，p95.45)。  | 

**Topics**
+ [

# 取得特定執行個體的統計資料
](US_SingleMetricPerInstance.md)
+ [

# 彙總所有執行個體的統計資料
](GetSingleMetricAllDimensions.md)
+ [

# 依據 Auto Scaling 群組彙總統計資料
](GetMetricAutoScalingGroup.md)
+ [

# 依據 AMI 的彙總統計資料
](US_SingleMetricPerAMI.md)

# 取得特定執行個體的統計資料
<a name="US_SingleMetricPerInstance"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 來取得特定執行個體的統計資料。下列範例示範如何使用 AWS 管理主控台 或 AWS CLI 來判斷特定 EC2 執行個體的 CPU 使用率上限。

**要求**
+ 您必須擁有該執行個體的 ID。您可以使用 AWS 管理主控台 或 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令以取得執行個體 ID。
+ 預設會啟用基本監控，但您可以啟用詳細監控。如需詳細資訊，請參閱[管理 EC2 執行個體的詳細監控](manage-detailed-monitoring.md)。

**顯示特定執行個體的 CPU 使用率 (主控台)**

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

1. 在導覽窗格中，選擇**指標**。

1. 選擇 **EC2** 指標命名空間。

1. 選擇**每個執行個體指標**維度。

1. 在搜尋欄位中，輸入 **CPUUtilization**，然後按 Enter 鍵。選擇特定執行個體的資料列，這會顯示該執行個體 **CPUUtilization** 指標的圖形。若要為圖形命名，請選擇鉛筆圖示。若要變更時間範圍，請選取一個預先定義的值，或選擇 **custom (自訂)**。  
![\[繪製單一指標的圖形\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/metric_statistics_ec2_instance.png)

1. 若要變更指標的統計資料或期間，請選擇 **Graphed metrics (圖表化指標)** 索引標籤。選擇欄位標題或個別的值，然後選擇不同的值。  
![\[變更指標的統計資料或期間\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/metric_statistics_ec2_instance_statistic_period.png)

**取得特定執行個體的 CPU 使用率 (AWS CLI)**  
透過下列 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令，使用指定的期間和時間間隔來取得指定執行個體的 **CPUUtilization** 指標：

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization  --period 3600 \
--statistics Maximum --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
--start-time 2022-10-18T23:18:00 --end-time 2022-10-19T23:18:00
```

下列為範例輸出。每個值代表單一 EC2 執行個體的最大 CPU 使用率百分比。

```
{
    "Datapoints": [
        {
            "Timestamp": "2022-10-19T00:18:00Z", 
            "Maximum": 0.33000000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-19T03:18:00Z", 
            "Maximum": 99.670000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-19T07:18:00Z", 
            "Maximum": 0.34000000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-19T12:18:00Z", 
            "Maximum": 0.34000000000000002, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}
```

# 彙總所有執行個體的統計資料
<a name="GetSingleMetricAllDimensions"></a>

已啟用詳細監控的執行個體可使用彙總統計資料。彙總資料不含使用基本監控的執行個體。在取得所有執行個體的彙總統計資料前，您必須[啟用詳細監控](manage-detailed-monitoring.md#enable-detailed-monitoring) (額外付費)，它以 1 分鐘的間隔時間提供資料。

請注意，Amazon CloudWatch 無法跨 AWS 區域彙總資料。區域之間的指標是完全獨立的。

此範例顯示如何使用詳細監控取得 EC2 執行個體的平均 CPU 使用量。由於沒有指定維度，CloudWatch 會傳回 `AWS/EC2` 命名空間中所有維度的統計資料。

**重要**  
此擷取 AWS 命名空間中所有維度的技術不適用於您發佈至 Amazon CloudWatch 的自訂命名空間。使用自訂命名空間，您必須指定與任何特定資料點建立關聯的一組完整維度，以擷取包含該資料點的統計資料。

**顯示您所有執行個體的平均 CPU 使用率 (主控台)**

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

1. 在導覽窗格中，選擇**指標**。

1. 選擇 **EC2** 命名空間，然後選擇 **Across All Instances (在所有執行個體中)**。

1. 選擇包含 **CPUUtilization** 的資料列，這會顯示您所有 EC2 執行個體指標的圖形。若要為圖形命名，請選擇鉛筆圖示。若要變更時間範圍，請選取一個預先定義的值，或選擇 **custom (自訂)**。  
![\[跨 EC2 執行個體彙總的指標\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/metric_aggregated_instances.png)

1. 若要變更指標的統計資料或期間，請選擇 **Graphed metrics (圖表化指標)** 索引標籤。選擇欄位標題或個別的值，然後選擇不同的值。

**取得您所有執行個體的平均 CPU 使用率 (AWS CLI)**  
如下所示，使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令以取得所有執行個體 **CPUUtilization** 指標的平均值。

```
aws cloudwatch get-metric-statistics \
    --namespace AWS/EC2 \
    --metric-name CPUUtilization \ 
    --period 3600  --statistics "Average" "SampleCount" \ 
    --start-time 2022-10-11T23:18:00 \
    --end-time 2022-10-12T23:18:00
```

下列為範例輸出：

```
{
    "Datapoints": [
        {
            "SampleCount": 238.0, 
            "Timestamp": "2022-10-12T07:18:00Z", 
            "Average": 0.038235294117647062, 
            "Unit": "Percent"
        }, 
        {
            "SampleCount": 240.0, 
            "Timestamp": "2022-10-12T09:18:00Z", 
            "Average": 0.16670833333333332, 
            "Unit": "Percent"
        }, 
        {
            "SampleCount": 238.0, 
            "Timestamp": "2022-10-11T23:18:00Z", 
            "Average": 0.041596638655462197, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}
```

# 依據 Auto Scaling 群組彙總統計資料
<a name="GetMetricAutoScalingGroup"></a>

您可以彙總 Auto Scaling 群組中 EC2 執行個體的統計資料。請注意，Amazon CloudWatch 無法跨 AWS 區域彙總資料。區域之間的指標是完全獨立的。

此範例顯示如何擷取一個 Auto Scaling 群組寫入磁碟的總位元組。總計是計算指定 Auto Scaling 群組中的所有 EC2 執行個體，以 24 小時為間隔取得每隔 1 分鐘的數量。

**顯示 Auto Scaling 群組中執行個體的 DiskWriteBytes (主控台)**

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

1. 在導覽窗格中，選擇**指標**。

1. 選擇 **EC2** 命名空間，然後選擇 **By Auto Scaling Group (依據 Auto Scaling 群組)**。

1. 選擇 **DiskWriteBytes** 指標的資料列與指定的 Auto Scaling 群組，這會顯示 Auto Scaling 群組中執行個體指標的圖形。若要為圖形命名，請選擇鉛筆圖示。若要變更時間範圍，請選取一個預先定義的值，或選擇 **custom (自訂)**。

1. 若要變更指標的統計資料或期間，請選擇 **Graphed metrics (圖表化指標)** 索引標籤。選擇欄位標題或個別的值，然後選擇不同的值。

**顯示 Auto Scaling 群組中執行個體的 DiskWriteBytes (AWS CLI)**  
使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令，如下所示。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskWriteBytes --period 360 \
--statistics "Sum" "SampleCount" --dimensions Name=AutoScalingGroupName,Value=my-asg --start-time 2022-10-16T23:18:00 --end-time 2022-10-18T23:18:00
```

下列為範例輸出：

```
{
    "Datapoints": [
        {
            "SampleCount": 18.0, 
            "Timestamp": "2022-10-19T21:36:00Z", 
            "Sum": 0.0, 
            "Unit": "Bytes"
        }, 
        {
            "SampleCount": 5.0, 
            "Timestamp": "2022-10-19T21:42:00Z", 
            "Sum": 0.0, 
            "Unit": "Bytes"
        }
    ], 
    "Label": "DiskWriteBytes"
}
```

# 依據 AMI 的彙總統計資料
<a name="US_SingleMetricPerAMI"></a>

您可以使用 AMI 為已啟用詳細監控的執行個體彙總統計資料。彙總資料不含使用基本監控的執行個體。在取得所有執行個體的彙總統計資料前，您必須[啟用詳細監控](manage-detailed-monitoring.md#enable-detailed-monitoring) (額外付費)，它以 1 分鐘的間隔時間提供資料。

請注意，Amazon CloudWatch 無法跨 AWS 區域彙總資料。區域之間的指標是完全獨立的。

此範例顯示如何判斷使用特定 Amazon Machine Image (AMI) 之所有執行個體的平均 CPU 使用率。此平均是以一天期間內每 60 秒的時間間隔計算。

**依據 AMI 顯示平均 CPU 使用率 (主控台)**

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

1. 在導覽窗格中，選擇**指標**。

1. 選擇 **EC2** 命名空間，然後選擇 **By Image (AMI) Id (依據映像 (AMI) ID)**。

1. 選擇 **CPUUtilization** 指標與特定 AMI，這會顯示指定 AMI 的指標圖形。若要為圖形命名，請選擇鉛筆圖示。若要變更時間範圍，請選取一個預先定義的值，或選擇 **custom (自訂)**。

1. 若要變更指標的統計資料或期間，請選擇 **Graphed metrics (圖表化指標)** 索引標籤。選擇欄位標題或個別的值，然後選擇不同的值。

**取得某映像 ID 的平均 CPU 使用率 (AWS CLI)**  
使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令，如下所示。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization  --period 3600 \
--statistics Average --dimensions Name=ImageId,Value=ami-3c47a355 --start-time 2022-10-10T00:00:00 --end-time 2022-10-11T00:00:00
```

下列為範例輸出。每個值代表執行指定 AMI 之 EC2 執行個體的平均 CPU 使用率百分比。

```
{
    "Datapoints": [
        {
            "Timestamp": "2022-10-10T07:00:00Z", 
            "Average": 0.041000000000000009, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-10T14:00:00Z", 
            "Average": 0.079579831932773085, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-10T06:00:00Z", 
            "Average": 0.036000000000000011, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}
```

# 檢視執行個體的監控圖表
<a name="graphs-in-the-aws-management-console"></a>

啟動執行個體後，您可開啟 Amazon EC2 主控台，在**監控**索引標籤檢視執行個體的監控圖表。每個圖表都以一個可用的 Amazon EC2 指標為基礎。

下列圖表可供使用：
+ 平均 CPU 使用率 (百分比)
+ 平均磁碟讀取 (位元組)
+ 平均磁碟寫入 (位元組)
+ 最大網路輸入 (位元組)
+ 最大網路輸出 (位元組)
+ 磁碟讀取操作摘要 (計數)
+ 磁碟寫入操作摘要 (計數)
+ 狀態摘要 (任意)
+ 執行個體狀態摘要 (計數)
+ 系統狀態摘要 (計數)

如需指標及其向圖表提供資料的詳細資訊，請參閱 [您的執行個體可用的 CloudWatch 指標](viewing_metrics_with_cloudwatch.md)。

**使用 CloudWatch 主控台繪製指標圖表**  
您亦可使用 CloudWatch 主控台，針對 Amazon EC2 及其他 AWS 服務所產生的指標資料製作圖表。如需詳細資訊，請參閱「*Amazon CloudWatch 使用者指南*」 中的[圖形指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_metrics.html)。

# 為執行個體建立 CloudWatch 警示
<a name="using-cloudwatch-createalarm"></a>

您可以建立 CloudWatch 警示，以監控其中一個執行個體的 CloudWatch 指標。CloudWatch 會在指標達到您指定的閾值時，自動傳送通知給您。您可以使用 Amazon EC2 主控台或 CloudWatch 主控台提供的更多進階選項，建立 CloudWatch 警示。

**使用 CloudWatch 主控台建立警示**  
如需範例，請參閱 *Amazon CloudWatch 使用者指南* 中的[建立 Amazon CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

**使用 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 警示)**。

1. 在**管理 CloudWatch 警示**詳細資訊頁面上，於**新增或編輯警示** 下，選取**建立警示**。

1. 針對**警示通知**，選擇是否設定 Amazon Simple Notification Service (Amazon SNS) 通知。輸入現有 Amazon SNS 主題或輸入名稱以建立新主題。

1. 在**警示動作**選擇是否要指定觸發警示時採取的動作。從清單中選擇一個動作。

1. 針對**警示閾值**，選取警示的指標和準則。例如，若要建立會在 CPU 使用率達到 80% 並維持 5 分鐘時觸發的警示，請執行下列操作：

   1. 保留**範例分群依據** (**平均**) 和**要取樣的資料類型** (**CPU 使用率**) 的預設設定。

   1. 在**警示時機**選擇 **>=** 並在**百分比**輸入 **0.80**。

   1. 在**連續期間**輸入 **1**，並在**期間**選取 **5 分鐘**。

1. (選用) 針對 **範例指標資料**，選擇**新增至儀表板**。

1. 選擇**建立**。

您可以從 Amazon EC2 主控台或 CloudWatch 主控台編輯您的 CloudWatch 警示設定。如果您想要刪除警示，可以從 CloudWatch 主控台執行。如需詳細資訊，請參閱 *Amazon CloudWatch 使用者指南*中的[編輯或刪除 CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Manage-CloudWatch-Alarm.html#Edit-CloudWatch-Alarm)。

# 建立警示以停止、終止、重新啟動或復原執行個體
<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 分鐘  | 

# 使用 EventBridge 自動化 Amazon EC2
<a name="automating_with_eventbridge"></a>

您可以使用 Amazon EventBridge 自動化您的 ， AWS 服務 並自動回應系統事件，例如應用程式可用性問題或資源變更。 AWS 服務的事件會以接近即時的方式傳送到 EventBridge。您可建立規則來指示您在意的事件，以及當事件符合規則時執行的動作。可以自動觸發的動作如下：
+ 叫用 AWS Lambda 函數
+ 叫用 Amazon EC2 執行命令
+ 將事件轉送至 Amazon Kinesis Data Streams
+ 啟用 AWS Step Functions 狀態機器
+ 通知 Amazon SNS 主題
+ 通知 Amazon SQS 佇列

以下是如何搭配 Amazon EC2 使用 EventBridge 的範例：
+ 每當執行個體進入執行狀態時，啟用 Lambda 函數。
+ 建立或修改 Amazon EBS 磁碟區時通知 Amazon SNS 主題。
+ 每當其他服務中 AWS 發生特定事件時，使用 Amazon EC2 Run Command 將命令傳送至一或多個 Amazon EC2 執行個體。

如需詳細資訊，請參閱[「Amazon EventBridge 使用者指南」](https://docs.aws.amazon.com/eventbridge/latest/userguide/)。

## Amazon EC2 事件類型
<a name="ec2-events-eventbridge"></a>

Amazon EC2 支援以下事件類型：
+ [EC2 AMI 狀態變更](monitor-ami-events.md#ami-events)
+ [EC2 快速啟動狀態變更通知](win-fast-launch-monitor.md#win-monitor-fast-launch-events)
+ [EC2 機群錯誤](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-config-not-valid)
+ [EC2 機群資訊](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-info)
+ [EC2 機群執行個體變更](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-instance-change)
+ [EC2 機群 Spot 執行個體請求變更](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-spot-instance-request-change)
+ [EC2 機群狀態變更](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-state-change)
+ [EC2 執行個體重新平衡推薦](rebalance-recommendations.md#cp-eventbridge)
+ [EC2 執行個體狀態－變更通知](monitoring-instance-state-changes.md)
+ [EC2 Spot 機群錯誤](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-config-not-valid)
+ [EC2 Spot 機群資訊](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-info)
+ [EC2 Spot 機群執行個體變更](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-instance-change)
+ [EC2 Spot 機群 Spot 執行個體請求變更](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-spot-instance-request-change)
+ [EC2 Spot 機群狀態變更](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-state-change)
+ [EC2 Spot 執行個體中斷警告](spot-instance-termination-notices.md#ec2-spot-instance-interruption-warning-event)
+ [EC2 Spot 執行個體請求履行](spot-request-status.md#spot-request-fulfillment-event)
+ [EC2 ODCR 使用率不足通知](cr-eventbridge.md)

如需有關 Amazon EBS 支援的事件類型的資訊，請參閱 [Amazon EBS 的 Amazon EventBridge](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-cloud-watch-events.html)。

# 使用 記錄 Amazon EC2 API 呼叫 AWS CloudTrail
<a name="monitor-with-cloudtrail"></a>

Amazon EC2 API 與 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/) 整合，這項服務可提供由使用者、角色或 AWS 服務所採取之動作的記錄。CloudTrail 會將所有 Amazon EC2 API 呼叫擷取為事件。擷取的呼叫包括來自主控台的呼叫。您可以使用 CloudTrail 所收集的資訊，判斷對 Amazon EC2 API 提出的請求、提出請求的 IP 位址、人員或時間等。

每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項：
+ 該請求是使用根使用者還是使用者憑證提出。
+ 請求是否代表 IAM Identity Center 使用者提出。
+ 提出該請求時，是否使用了特定角色或聯合身分使用者的暫時安全憑證。
+ 該請求是否由另一項 AWS 服務服務提出。

當您建立帳戶 AWS 帳戶 時CloudTrail 會在您的 中處於作用中狀態，而且您會自動存取 CloudTrail **事件歷史記錄**。CloudTrail **事件歷史記錄**為 AWS 區域中過去 90 天記錄的管理事件，提供可檢視、可搜尋、可下載且不可變的記錄。如需詳細資訊，請參閱「AWS CloudTrail 使用者指南」**中的[使用 CloudTrail 事件歷史記錄](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。檢視**事件歷史記錄**不會產生 CloudTrail 費用。

如需 AWS 帳戶 過去 90 天內持續記錄的事件，請建立線索或 [CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) 事件資料存放區。

**CloudTrail 追蹤**  
*線索*能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。使用 建立的所有線索 AWS 管理主控台 都是多區域。您可以使用 AWS CLI建立單一或多區域追蹤。建議您建立多區域追蹤，因為您擷取 AWS 區域 帳戶中所有 的活動。如果您建立單一區域追蹤，您只能檢視追蹤 AWS 區域中記錄的事件。如需追蹤的詳細資訊，請參閱《AWS CloudTrail 使用者指南》**中的[為您的 AWS 帳戶建立追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)和[為組織建立追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html)。  
您可以透過建立追蹤，免費將持續管理事件的一個複本從 CloudTrail 傳遞至您的 Amazon S3 儲存貯體，但這樣做會產生 Amazon S3 儲存費用。如需 CloudTrail 定價的詳細資訊，請參閱 [AWS CloudTrail 定價](https://aws.amazon.com/cloudtrail/pricing/)。如需 Amazon S3 定價的相關資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

**CloudTrail Lake 事件資料存放區**  
*CloudTrail Lake* 讓您能夠對事件執行 SQL 型查詢。CloudTrail Lake 會將分列式 JSON 格式的現有事件轉換為 [Apache ORC](https://orc.apache.org/) 格式。ORC 是一種單欄式儲存格式，針對快速擷取資料進行了最佳化。系統會將事件彙總到*事件資料存放區*中，事件資料存放區是事件的不可變集合，其依據為您透過套用[進階事件選取器](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors)選取的條件。套用於事件資料存放區的選取器控制哪些事件持續存在並可供您查詢。如需 CloudTrail Lake 的詳細資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[使用 AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html)。  
CloudTrail Lake 事件資料存放區和查詢會產生費用。建立事件資料存放區時，您可以選擇要用於事件資料存放區的[定價選項](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option)。此定價選項將決定擷取和儲存事件的成本，以及事件資料存放區的預設和最長保留期。如需 CloudTrail 定價的詳細資訊，請參閱 [AWS CloudTrail 定價](https://aws.amazon.com/cloudtrail/pricing/)。

## CloudTrail 中的 Amazon EC2 API 管理事件
<a name="cloudtrail-management-events"></a>

[管理事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events)提供有關在 資源上執行的管理操作的資訊 AWS 帳戶。這些也稱為控制平面操作。根據預設，CloudTrail 記錄管理事件。

所有 Amazon EC2 API 動作都會記錄為管理事件。如需 CloudTrail 記錄之 API 動作的清單，請參閱 [Amazon EC2 API 參考](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/)。例如，對 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)、 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) 和 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StopInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StopInstances.html)動作的呼叫會記錄為管理事件。

## Amazon EC2 API 事件範例
<a name="cloudtrail-event-examples"></a>

一個事件代表任何來源提出的單一請求，並包含請求 API 操作的相關資訊、操作的日期和時間、請求參數等。CloudTrail 日誌檔並非依公有 API 呼叫的堆疊追蹤排序，因此事件不會以任何特定順序出現。

以下日誌檔記錄顯示某位使用者終止了執行個體。

```
{
   "Records":[
      {
         "eventVersion":"1.03",
         "userIdentity":{
            "type":"Root",
            "principalId":"123456789012",
            "arn":"arn:aws:iam::123456789012:root",
            "accountId":"123456789012",
            "accessKeyId":"AKIAIOSFODNN7EXAMPLE",
            "userName":"user"
         },
         "eventTime":"2016-05-20T08:27:45Z",
         "eventSource":"ec2.amazonaws.com",
         "eventName":"TerminateInstances",
         "awsRegion":"us-west-2",
         "sourceIPAddress":"198.51.100.1",
         "userAgent":"aws-cli/1.10.10 Python/2.7.9 Windows/7botocore/1.4.1",
         "requestParameters":{
            "instancesSet":{
               "items":[{
                  "instanceId":"i-1a2b3c4d"
               }]
            }
         },
         "responseElements":{
            "instancesSet":{
               "items":[{
                  "instanceId":"i-1a2b3c4d",
                  "currentState":{
                     "code":32,
                     "name":"shutting-down"
                  },
                  "previousState":{
                     "code":16,
                     "name":"running"
                  }
               }]
            }
         },
         "requestID":"be112233-1ba5-4ae0-8e2b-1c302EXAMPLE",
         "eventID":"6e12345-2a4e-417c-aa78-7594fEXAMPLE",
         "eventType":"AwsApiCall",
         "recipientAccountId":"123456789012"
     }
   ]
}
```

如需有關 CloudTrail 記錄內容的詳細資訊，請參閱「AWS CloudTrail 使用者指南」**中的[CloudTrail 記錄內容](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html)。

## 稽核使用 EC2 Instance Connect 的連線
<a name="ec2-instance-connect-cloudtrail"></a>

您可以使用 AWS CloudTrail 來稽核使用 EC2 Instance Connect 連線至執行個體的使用者。

**使用 AWS CloudTrail 主控台透過 EC2 Instance Connect 稽核 SSH 活動**

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

1. 確認您位於正確的區域。

1. 在導覽窗格中，選擇 **Event history** (事件歷史記錄)。

1. 對於 **Filter (篩選條件)**，請選擇 **Event source (事件來源)**、**ec2-instance-connect.amazonaws.com**。

1. (選用) 針對 **Time range (時間範圍)**，選取時間範圍。

1. 選擇 **Refresh events (重新整理事件)** 圖示。

1. 頁面會顯示與 [https://docs.aws.amazon.com/ec2-instance-connect/latest/APIReference/API_SendSSHPublicKey.html](https://docs.aws.amazon.com/ec2-instance-connect/latest/APIReference/API_SendSSHPublicKey.html) API 呼叫對應的事件。使用箭頭展開事件以檢視其他詳細資訊，例如用於進行 SSH 連線的使用者名稱和 AWS 存取金鑰，以及來源 IP 地址。

1. 若要以 JSON 格式顯示完整事件資訊，請選擇 **View event (檢視事件)**。**requestParameters** 欄位包含用來進行 SSH 連線的目的地執行個體 ID、OS 使用者名稱和公開金鑰。

   ```
   {
       "eventVersion": "1.05",
       "userIdentity": {
           "type": "IAMUser",
           "principalId": "ABCDEFGONGNOMOOCB6XYTQEXAMPLE",
           "arn": "arn:aws:iam::1234567890120:user/IAM-friendly-name",
           "accountId": "123456789012",
           "accessKeyId": "ABCDEFGUKZHNAW4OSN2AEXAMPLE",
           "userName": "IAM-friendly-name",
           "sessionContext": {
               "attributes": {
                   "mfaAuthenticated": "false",
                   "creationDate": "2018-09-21T21:37:58Z"}
           }
       },
       "eventTime": "2018-09-21T21:38:00Z",
       "eventSource": "ec2-instance-connect.amazonaws.com",
       "eventName": "SendSSHPublicKey ",
       "awsRegion": "us-west-2",
       "sourceIPAddress": "123.456.789.012",
       "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60",
       "requestParameters": {
           "instanceId": "i-0123456789EXAMPLE",
           "osUser": "ec2-user",
           "SSHKey": {
               "publicKey": "ssh-rsa ABCDEFGHIJKLMNO01234567890EXAMPLE"
           }
        },
       "responseElements": null,
       "requestID": "1a2s3d4f-bde6-11e8-a892-f7ec64543add",
       "eventID": "1a2w3d4r5-a88f-4e28-b3bf-30161f75be34",
       "eventType": "AwsApiCall",
       "recipientAccountId": "0987654321"
   }
   ```

   如果您已將 AWS 帳戶設定為在 S3 儲存貯體中收集 CloudTrail 事件，您可以以程式設計方式下載和稽核資訊。如需詳細資訊，請參閱「AWS CloudTrail 使用者指南」**中的[取得和檢視 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html)。

# 使用 CloudWatch Application Insights 監控 .NET 和 SQL Server 應用程式
<a name="monitoring-appinsights"></a>

CloudWatch Application Insights 可幫助您監控使用 Amazon EC2 執行個體以及其他 [AWS 應用程式資源](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-what-is.html#appinsights-components)的 .NET 和 SQL Server 應用程式。它會識別和設定金鑰指標日誌，並在所有的應用程式資源和技術堆疊 (例如，Microsoft SQL Server 資料庫、Web (IIS) 和應用程式伺服器、作業系統、負載平衡器和佇列) 中發出警示。並持續監控指標和日誌，以偵測和建立異常及錯誤的關聯。偵測到錯誤和異常時，Application Insights 會產生事件，可用於設定通知或採取動作。為協助故障診斷，它會建立已偵測到問題的自動化儀表板，包括關聯的指標異常和日誌錯誤以及其他洞見，指出可能的根本原因。自動化儀表板可協助您採用靈活的補救動作，讓應用程式保持良好的運作狀態，防止應用程式的最終使用者受到影響。

**有關偵測到的問題資訊：**
+ 問題的簡短摘要
+ 問題的開始時間和日期
+ 問題嚴重性：高/中/低
+ 偵測到的問題狀態：正在進行/已解決
+ 洞見：對所偵測問題及可能根本原因自動產生的洞見
+ 對洞見的意見回饋：您針對適用於 .NET 和 SQL Server 的 CloudWatch Application Insights 所產生洞見實用性提供的意見回饋
+ 相關觀察：詳細檢視與跨各種應用程式元件問題有關的相關日誌指標異常和錯誤程式碼片段

**意見回饋**  
您可以指出針對所偵測問題自動產生的洞見是否有用，提供意見回饋。您對洞見的意見回饋以及您的應用程式診斷 (指標異常和日誌例外狀況)，都會用來提升未來對類似問題的偵測。

如需詳細資訊，請參閱 *Amazon CloudWatch 使用者指南* 中的 [CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) 文件。

# 追蹤 Amazon EC2 的免費方案用量
<a name="ec2-free-tier-usage"></a>

建立 時 AWS 帳戶，您可以使用 [AWS 免費方案](https://aws.amazon.com/free)免費開始使用 Amazon EC2。免費方案優惠會有所不同，具體取決於您是在 2025 年 7 月 15 日之前，還是在 2025 年 7 月 15 日當天或之後建立帳戶。如需詳細資訊，請參閱*AWS Billing 《 使用者指南*》中的[使用 AWS 免費方案探索 AWS 服務](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier.html)。

## 2025 年 7 月 15 日之前和之後的免費方案優惠
<a name="ec2-free-tier-comparison"></a>

下表會根據 AWS 帳戶 建立日期，比較免費方案優惠：


| 免費方案優惠 | 在 2025 年 7 月 15 日之前建立的帳戶 | 在 2025 年 7 月 15 日當天或之後建立的帳戶 | 
| --- | --- | --- | 
| 標記為符合免費方案資格的執行個體類型 |  `t2.micro`, `t3.micro`  |  `t3.micro`, `t3.small`, `t4g.micro`, `t4g.small`, `c7i-flex.large`, `m7i-flex.large`  | 
| 標記為符合免費方案資格的 Amazon EBS 磁碟區類型 |  `standard`, `st1`, `sc1`, `gp2`, 和 `gp3`  |  `standard`, `st1`, `sc1`, `gp2`, 和 `gp3`  | 
| 標記為符合免費方案資格的 AMI。 | 檢查標記為符合免費方案資格的 AMI。 | 檢查標記為符合免費方案資格的 AMI。 | 
| 使用限制 | 受使用限額限制，超過該限制之後，會按使用量付費。 |  獲得 100 美元的註冊抵用金，並獲得高達 100 美元的額外抵用金。  | 
| 免費方案持續時間 | 免費方案自您建立帳戶之日起持續 12 個月。在此期間，如果超過免費方案使用限制，則需要按使用量付費。 | 免費方案自您建立帳戶之日起持續 6 個月，或當抵用金用完時，以先發生者為準。不能超過免費方案限制。 | 

**如需列出符合免費方案資格的執行個體類型**  
使用 [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) 命令並搭配 `free-tier-eligible` 篩選條件。

```
aws ec2 describe-instance-types \
    --filters Name=free-tier-eligible,Values=true \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```

**如需列出符合免費方案資格的 AMI**  
使用具有 `free-tier-eligible` 篩選條件的 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令。

```
aws ec2 describe-images \
    --filters Name=free-tier-eligible,Values=true \
    --query "Images[*].[ImageId]" \
    --output text | sort
```

## 追蹤 2025 年 7 月 15 日之前建立之帳戶的免費方案使用情況
<a name="track-ec2-free-tier-usage"></a>

**注意**  
***本節僅適用於 2025 年 7 月 15 AWS 帳戶 日之前建立的免費方案使用者。如果您在 2025 年 7 月 15 日或之後建立帳戶，請參閱 AWS Billing 《 使用者指南》中的[追蹤您的 AWS 免費方案用量](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/tracking-free-tier-usage.html)。***

如果您在 2025 年 7 月 15 日之前建立帳戶，如果您是 AWS 客戶不到 12 個月且保持在 AWS 免費方案 用量限制內，則可以使用 Amazon EC2 而無需支付費用。請務必要追蹤免費方案的用量，以避免出現意外的帳單費用。如果您超過免費方案限制，將會產生標準的依用量計費費用。如需詳細資訊，請參閱[AWS 免費方案](https://aws.amazon.com/free/)。

**注意**  
如果您已成為 AWS 客戶超過 12 個月，則不再符合免費方案用量的資格，而且不會看到下列程序所述的 **EC2 免費方案**方塊。

**追蹤您的免費方案用量**

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

1. 在導覽窗格中，選擇 **EC2 Dashboard (EC2 儀表板)**。

1. 尋找 **EC2 免費方案**方塊 (位於右上角)。  
![\[EC2 儀表板中的 EC2 免費方案方塊。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/ec2-free-tier-widget.png)

1. 在 **EC2 免費方案**方塊中，檢查您的免費方案用量，如下所示：
   + 在**使用中的 EC2 免費方案優惠**下，請注意以下警告：
     + **月底預測** – 這項警告會提醒您，若您繼續目前的用量模式，則本月將會產生費用。
     + **超過免費方案** – 這項警告會提醒您，已超過了免費方案限制且已產生費用。
   + 請根據**優惠用量 (每月)** 注意您對 Linux 執行個體、Windows 執行個體和 EBS 儲存體的用量。該百分比表示您本月使用了多少免費方案限制。如果您達到 100%，則進一步使用將會產生費用。
**注意**  
本資訊僅限於在您建立了執行個體之後才會顯示。不過，用量資訊並非即時更新；其更新頻率為一天三次。

1. 為了避免產生進一步的費用，請刪除任何現在產生費用的資源，否則若超過免費方案限制用量，將會產生費用。
   + 如需刪除執行個體的指示，請參閱 [終止 Amazon EC2 執行個體](terminating-instances.md)。
   + 若要檢查其他區域中是否有可能產生費用的資源，請在 **EC2 免費方案**方塊中選擇**檢視全域 EC2 資源**以開啟 **EC2 全域檢視**。如需詳細資訊，請參閱[使用 AWS 全域檢視跨區域檢視資源](global-view.md)。

1. 若要檢視 AWS 服務 下所有 的資源用量 AWS 免費方案，請在 **EC2 免費方案**方塊底部，選擇**檢視所有 AWS 免費方案 優惠**。如需詳細資訊，請參閱「AWS 帳單使用者指南」**中的[使用 AWS 免費方案以試用服務](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-free-tier.html)。

# 了解帳單與用量報告中 Amazon EC2 的代碼
<a name="ec2-billing-usage-reports"></a>

當您使用 Amazon EC2 時，我們會在您的 AWS 帳單和用量報告中包含相關代碼。檢閱這些代碼有助於了解 Amazon EC2 的成本與使用模式。追蹤和管理您的支出費用對於成本的最佳化至關重要。

下表說明在帳單和用量報告中顯示的 Amazon EC2 代碼。如需帳單和用量報告中使用的區域代碼清單，請參閱 [AWS Region billing codes](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-region-billing-codes.html)。

**Topics**
+ [

## 執行個體
](#instances-billing-usage-reports)
+ [

## 裸機執行個體
](#bare-metal-instances-billing-usage-reports)
+ [

## 專用執行個體
](#dedicated-hosts-billing-usage-reports)
+ [

## 專用執行個體
](#dedicated-instances-billing-usage-reports)
+ [

## EBS 最佳化
](#ebs-billing-usage-reports)
+ [

## Capacity Reservations
](#capacity-reservation-billing-usage-reports)

**相關資源**
+ [Amazon EC2 帳單與購買選項](instance-purchasing-options.md)
+ [了解 AMI 帳單資訊](ami-billing-info.md)
+ [Amazon EC2 定價](https://aws.amazon.com/ec2/pricing/)

## 執行個體
<a name="instances-billing-usage-reports"></a>


| Code | Description | 單位 | 
| --- | --- | --- | 
| region-BoxUsage：instance-type | 隨需執行個體的執行時間。 | 小時 | 
| region-HostBoxUsage：instance-type | 專用主機上執行個體的執行時間。 | 小時 | 
| region-SpotUsage：instance-type | Spot 執行個體的執行時間。 | 小時 | 



## 裸機執行個體
<a name="bare-metal-instances-billing-usage-reports"></a>


| Code | Description | 單位 | 
| --- | --- | --- | 
| region-BoxUsage：instance-family.metal | 裸機隨需執行個體的執行時間。 | 小時 | 
| region-HostBoxUsage：instance-family.metal | 專用主機上裸機執行個體的執行時間。 | 小時 | 
| region-SpotUsage：instance-family.metal | 裸機 Spot 執行個體的執行時間。 | 小時 | 



## 專用執行個體
<a name="dedicated-hosts-billing-usage-reports"></a>


| Code | Description | 單位 | 
| --- | --- | --- | 
| region-HostUsage:host-type | 專用主機的佈建時間。 | 小時 | 
| region-ReservedHostUsage:host-type | 專用主機保留的套用時間。 | 小時 | 



## 專用執行個體
<a name="dedicated-instances-billing-usage-reports"></a>


| Code | Description | 單位 | 
| --- | --- | --- | 
| region-DedicatedUsage：instance-type | 專用執行個體的執行時間。 | 小時 \$1 每個區域的費用 | 



## EBS 最佳化
<a name="ebs-billing-usage-reports"></a>


| Code | Description | 單位 | 
| --- | --- | --- | 
| region-EBSOptimized：instance-type | EBS 最佳化的啟用時間。 | 小時 | 



## Capacity Reservations
<a name="capacity-reservation-billing-usage-reports"></a>


| Code | Description | 單位 | 
| --- | --- | --- | 
| region-Reservation：instance-type | 容量保留的預留執行個體時間。 | 小時 | 
| region-UnusedBox：instance-type | 容量保留的未使用預留執行個體時間。 | 小時 | 
| region-DedicatedRes：instance-type | 專用容量保留的預留執行個體時間。 | 小時 | 
| region-UnusedDed：instance-type | 專用容量保留的未使用預留執行個體時間。 | 小時 | 



# 建立 EC2 執行個體的庫存
<a name="ec2-data-inventory"></a>

Amazon EC2 提供隨需、可擴展的運算容量。EC2 執行個體是在 AWS 網路中執行的虛擬伺服器。

下表描述了 EC2 執行個體的關鍵特性。系統管理員可運用本指南提供的說明，取得這些特性的相關資訊，並用於配置在內部部署或其他雲端服務供應商網路中執行的功能等效伺服器。


| 特性 | Description | 
| --- | --- | 
| [地理位置](#ec2-data-geographic-location) | Amazon EC2 託管於全球所有 AWS 區域。您可以選取執行個體地點，使其靠近您的客戶。可以在多個地點啟動執行個體。 | 
| [硬體規格](#ec2-data-specifications) | Amazon EC2 提供各式各樣的最佳化執行個體類型，以滿足不同的使用案例。您為執行個體選取的執行個體類型決定其運算、記憶體、聯網和儲存資源。 | 
| [映像](#ec2-data-images) | Amazon Machine Image (AMI) 包含了啟動時要在執行個體上安裝的軟體。其中包括作業系統、軟體套件與自訂組態。 | 
| [IP 位址與 DNS 主機名稱](#ec2-data-ip-dns) | 執行個體會收到私有 IP 位址與私有 DNS 主機名稱。若您為執行個體設定公有 IP 位址，該執行個體也會收到公有 DNS 主機名稱。 | 
| [安全群組規則](#ec2-data-rules) | 與執行個體相關聯的安全群組規則會決定允許哪些傳入流量與輸出流量。 | 
| [使用者資料](#ec2-data-user-data) | 使用者資料會在啟動時，提供給執行個體。它包含 shell 指令碼 (Linux) 或 PowerShell 指令碼 (Windows)。 | 

## 地理位置
<a name="ec2-data-geographic-location"></a>

Amazon EC2 適用於全球每個 AWS 區域。各個 區域為獨立的地理區域。選擇靠近大多數使用者的區域部署伺服器，可降低網路延遲。

您可使用 [Amazon EC2 Global View](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/global-view.html) 列出所有區域的 Amazon EC2 執行個體。使用 AWS 管理主控台 和 API，您必須個別列出每個區域的執行個體。

**為什麼這很重要**  
確認執行個體的部署位置後，您可根據需求決定，將功能等效伺服器部署在相同位置或不同位置。

**取得全部區域的 EC2 執行個體摘要**

1. 前往 [https://console.aws.amazon.com/ec2globalview/home](https://console.aws.amazon.com/ec2globalview/home) 開啟 Amazon EC2 全域檢視主控台。

1. 在**區域瀏覽器**索引標籤的**摘要**下，檢查**執行個體**的資源計數，其中包括執行個體數量與區域數量。點選帶有底線文字，即可查看執行個體數量在各區域的分佈情況。

1. 在**全域搜尋**索引標籤上，選取用戶端篩選條件**資源類型 = 執行個體**。您可以透過指定區域或標籤進一步篩選結果。

**使用 取得區域中的 EC2 執行個體數量 AWS CLI**  
使用下列 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令來計算指定區域的執行個體數量。您必須在擁有執行個體的每個區域中執行此命令。

```
aws ec2 describe-instances \
    --region us-east-2 \
    --query "length(Reservations[*].Instances[])"
```

以下為範例輸出。

```
27
```

若要取得執行個體 ID 清單而非執行個體計數，請改用下列 `--query` 參數。

```
--query "Reservations[*].Instances[].InstanceId"
```

## 硬體規格
<a name="ec2-data-specifications"></a>

您為 EC2 執行個體指定的執行個體類型，會決定其可用的運算、記憶體、儲存及聯網資源。每個執行個體系列皆會提供不同平衡的運算、記憶體、網路和儲存體資源。如需詳細資訊，請參閱 [Amazon EC2 執行個體類型指南](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html)。

**為什麼這些很重要**  
確定執行個體的硬體規格後，您可決定功能等效伺服器所需的最低規格。

**取得執行個體所用的執行個體類型摘要**  
使用下面的 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。**sed** 命令會移除包含括號的行與空白行。您必須在擁有執行個體的每個區域中執行此命令。

```
aws ec2 describe-instances \
    --query "Reservations[*].Instances[].InstanceType" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr
```

以下為範例輸出。

```
  20    "c6i.4xlarge",
   5    "t2.micro",
   2    "g6e.2xlarge",
```

**取得有關特定稽核執行個體的資訊**  
若要描述執行個體類型，請使用下列 [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) 命令。`--query` 參數僅包含輸出中的指定欄位。這些屬於基本特性。您可加入所需的任何額外欄位，或參閱《*Amazon EC2 執行個體類型指南*》中的 [Amazon EC2 執行個體類型規格](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-type-specifications.html)。

```
aws ec2 describe-instance-types \
    --instance-types c6i.4xlarge t2.micro g6e.2xlarge \
    --query "InstanceTypes[*].[InstanceType,VCpuInfo.DefaultVCpus,MemoryInfo.SizeInMiB,NetworkInfo.NetworkPerformance]" \
    --output table
```

以下為範例輸出。這些欄位包括執行個體類型、vCPU、記憶體 (GiB) 和網路頻寬 (Gbps)。

```
------------------------------------------------------
|                DescribeInstanceTypes               |
+--------------+-----+--------+----------------------+
|  t2.micro    |  1  |  1024  |  Low to Moderate     |
|  c6i.4xlarge |  16 |  32768 |  Up to 12.5 Gigabit  |
|  g6e.2xlarge |  8  |  65536 |  Up to 20 Gigabit    |
+--------------+-----+--------+----------------------+
```

## 映像
<a name="ec2-data-images"></a>

Amazon Machine Image (AMI) 提供啟動時安裝在執行個體上的軟體，例如作業系統、服務、開發工具及應用程式。您可將 AMI 匯出為其他格式，以便用於其他伺服器。

**為什麼這些很重要**  
確認您執行個體所使用的 AMI 後，即可規劃功能等效伺服器所需的映像。您可以將 AMI 匯出為可在其他位置使用的格式。或者，您可能需要連線到從每個 AMI 啟動的執行個體，確認已安裝的內容及其設定方式，並確保您擁有所需的一切複本。

**取得執行個體 AMI**  
使用下面的 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。**sed** 命令會移除包含括號的行與空白行。您必須在擁有執行個體的每個區域中執行此命令。

```
aws ec2 describe-instances \
    --query "Reservations[*].Instances[].ImageId" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr
```

以下為範例輸出。

```
20     "ami-0a70b9d193ae8a79",
 5     "ami-07d9cf938edb0739b",
 2     "ami-09245d5773578a1d6",
```

**取得特定 AMI 的相關資訊**  
使用下面的 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令。`--query` 參數僅包含輸出中的指定欄位。您可以包含所需的任何其他欄位。

```
aws ec2 describe-images \
    --image-id ami-0a70b9d193ae8a79 ami-07d9cf938edb0739b ami-09245d5773578a1d6 \
    --query "Images[*].{ID:ImageId,CreateDate:CreationDate,Name:Name,Description:Description}"
```

以下為範例輸出。

```
[
    {
        "ID": "ami-0a70b9d193ae8a799",
        "CreateDate": "2025-03-01T02:22:41.000Z",
        "Name": "web-server-3.1",
        "Description": "Image for web servers"
    },
    {
        "ID": "ami-07d9cf938edb0739b",
        "CreateDate": "2025-02-01T23:59:03.000Z",
        "Name": "awesome-application-11.5",
        "Description": "Image for Awesome Application"
    },
    {
        "ID": "ami-09245d5773578a1d6",
        "CreateDate": "2025-01-31T02:22:41.000Z",
        "Name": "monitoring-4.2",
        "Description": "Monitoring software"
    }
]
```

**從 AMI 建立 VM 檔案**  
使用 [export-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/export-image.html) 命令。支援的影像格式為 VHD (與 Citrix Xen 和 Microsoft Hyper-V 相容)、VMDK (與 VMware ESX 和 VMware vSphere 相容) 以及原始格式 (與 KVM 和 Xen Hypervisor 相容)。如需 VM Import/Export 需求與限制的相關資訊，請參閱 [VM Import/Export 需求](https://docs.aws.amazon.com/vm-import/latest/userguide/vmie_prereqs.html)。

## IP 位址與 DNS 主機名稱
<a name="ec2-data-ip-dns"></a>

您的使用者會使用其公有 DNS 主機名稱，透過網際網路連線至 EC2 執行個體。EC2 執行個體的公有 DNS 主機名稱會解析至其公有 IP 位址。EC2 執行個體可透過其私有 IP 位址互相通訊。

**為什麼這些很重要**  
IP 位址使裝置能夠透過區域網路或網際網路相互通訊。記錄您執行個體的 IP 位址與 DNS 名稱，可協助確保功能等效伺服器能與您的執行個體存取相同的用戶端或裝置。例如，您可更新負載平衡器組態，或為 DNS 供應商建立的 DNS 記錄。

**取得執行個體的 IP 位址和 DNS 主機名稱**  
使用下面的 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。您必須在擁有執行個體的每個區域中執行此命令。`--query` 參數僅包含輸出中的指定欄位。您可以包含所需的任何其他欄位。

```
aws ec2 describe-instances \
    --query "Reservations[*].Instances[].[InstanceId,PrivateIpAddress,PublicDnsName]" \
    --output table
```

以下為範例輸出。這些欄是執行個體 ID、私有 IPv4 位址與公有 IPv4 DNS 名稱。

```
----------------------------------------------------------------------------------------
|                                   DescribeInstances                                  |
+---------------------+------------+---------------------------------------------------+
| i-0bac57d7472c89bac | 10.0.2.139 | ec2-192-0-2-142.us-east-2.compute.amazonaws.com   |
| i-0fa8b7678975a3fff | 10.0.14.85 | ec2-198-51-100-56.us-east-2.compute.amazonaws.com |
  ...
  ...
| i-08fd74f3f1595fdbd | 10.0.1.241 | ec2-203.0.113.13.us-east-2.compute.amazonaws.com  |
+---------------------+------------+---------------------------------------------------+
```

## 安全群組規則
<a name="ec2-data-rules"></a>

安全群組會做為虛擬防火牆。將安全群組與 EC2 執行個體關聯後，其規則允許 EC2 執行個體透過特定連接埠與通訊協定的傳入及傳出流量。

**為什麼這些很重要**  
確認允許抵達您伺服器的傳入流量與允許離開伺服器的輸出流量後，即可規劃功能等效伺服器所需的防火牆規則。

**取得執行個體的安全群組**  
使用下面的 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。**sed** 命令會移除包含括號的行與空白行。您必須在擁有執行個體的每個區域中執行此命令。

```
aws ec2 describe-instances \
    --query "Reservations[*].Instances[].SecurityGroups[].GroupId" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr
```

以下為範例輸出。

```
27     "sg-01dd3383691d02f42",
10     "sg-08c77cc910c0b3b2c",
 2     "sg-00f4e409629f1a42d",
```

**取得安全群組的傳入規則**  
使用如下 [describe-security-group-rules](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-group-rules.html) 命令，顯示指定安全群組的規則，其中 `IsEgress` 為 `false`。

```
aws ec2 describe-security-group-rules \
    --filters Name=group-id,Values=sg-01dd3383691d02f42 \
    --query 'SecurityGroupRules[?IsEgress==`false`]'
```

以下為範例輸出。第一個規則是預設傳入規則，允許來自指派給此安全群組的所有資源的傳入流量。另一個規則允許來自指定字首清單中 IP 位址的 SSH 流量。要描述字首清單中的 CIDR 區塊，請使用 [describe-prefix-lists](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-prefix-lists.html) 命令。

```
[
    {
        "SecurityGroupRuleId": "sgr-06c8b42574a91db1b",
        "GroupId": "sg-01dd3383691d02f42",
        "GroupOwnerId": "123456789012",
        "IsEgress": false,
        "IpProtocol": "-1",
        "FromPort": -1,
        "ToPort": -1,
        "ReferencedGroupInfo": {
            "GroupId": "sg-01dd3383691d02f42",
            "UserId": "123456789012"
        },
        "Tags": [],
        "SecurityGroupRuleArn": "arn:aws:ec2:us-west-2:123456789012:security-group-rule/sgr-06c8b42574a91db1b"
    },
    {
        "SecurityGroupRuleId": "sgr-0886a5d46afcd1758",
        "GroupId": "sg-01dd3383691d02f42",
        "GroupOwnerId": "123456789012",
        "IsEgress": false,
        "IpProtocol": "tcp",
        "FromPort": 22,
        "ToPort": 22,
        "PrefixListId": "pl-f8a6439125e7bf465",
        "Tags": [],
        "SecurityGroupRuleArn": "arn:aws:ec2:us-east-2:123456789012:security-group-rule/sgr-0886a5d46afcd1758"
    }
]
```

**取得安全群組的傳出規則**  
使用如下 [describe-security-group-rules](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-group-rules.html) 命令，顯示指定安全群組的規則，其中 `IsEgress` 為 `true`。

```
aws ec2 describe-security-group-rules \
    --filters Name=group-id,Values=sg-01dd3383691d02f42 \
    --query 'SecurityGroupRules[?IsEgress==`true`]'
```

以下為範例輸出。它僅包含預設傳出規則，允許所有傳出 IPv4 流量。

```
[
    {
        "SecurityGroupRuleId": "sgr-048f09a719247dce7",
        "GroupId": "sg-01dd3383691d02f42",
        "GroupOwnerId": "123456789012",
        "IsEgress": true,
        "IpProtocol": "-1",
        "FromPort": -1,
        "ToPort": -1,
        "CidrIpv4": "0.0.0.0/0",
        "Tags": [],
        "SecurityGroupRuleArn": "arn:aws:ec2:us-east-2:123456789012:security-group-rule/sgr-048f09a719247dce7"
    }
]
```

## 使用者資料
<a name="ec2-data-user-data"></a>

當您啟動 EC2 執行個體時，可藉助使用者資料將 shell 指令碼傳遞至執行個體。請注意，使用者資料是 base64 編碼，因此您需要解碼使用者資料才能讀取指令碼。

**為什麼這很重要**  
若您在啟動時執行命令，做為設定執行個體的一部分，則可能需要在設定功能等效伺服器時執行相同的任務。

**檢視執行個體的解碼後使用者資料**  
使用下列 [describe-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-attribute.html) 命令。**base64** 命令會對使用者資料進行解碼。

```
aws ec2 describe-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --attribute userData \
    --output text \
    --query "UserData.Value" | base64 --decode
```

以下為範例輸出。

```
#!/bin/bash
yum update -y
service httpd start
chkconfig httpd on
```

## 相關資源
<a name="ec2-data-related-resources"></a>

以下是 EC2 執行個體的其他特性：
+ [金鑰對](ec2-key-pairs.md)
+ [儲存](Storage.md)
+ [Tags](Using_Tags.md) (標籤)

您可確認您是否使用下列項目來啟動 EC2 執行個體，或在 EC2 執行個體之間分配流量：
+ [Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html)
+ [EC2 機群](Fleets.md)
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/)