

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

# 教學課程：使用 AWS FIS 在執行個體上執行 CPU 壓力
<a name="fis-tutorial-run-cpu-stress"></a>

您可以使用 AWS Fault Injection Service (AWS FIS) 來測試應用程式如何處理 CPU 壓力。使用此教學課程來建立實驗範本，該範本使用 AWS FIS 來執行在執行個體上執行 CPU 應力的預先設定 SSM 文件。當執行個體的 CPU 使用率超過設定的閾值時，教學課程會使用停止條件來停止實驗。

如需詳細資訊，請參閱[預先設定的 AWS FIS SSM 文件](actions-ssm-agent.md#fis-ssm-docs)。

## 先決條件
<a name="run-cpu-stress-prerequisites"></a>

請先完成下列先決條件，才能使用 AWS FIS 執行 CPU 壓力。

**建立 IAM 角色**  
建立角色並連接政策，讓 AWS FIS 代表您使用 `aws:ssm:send-command`動作。如需詳細資訊，請參閱[AWS FIS 實驗的 IAM 角色](getting-started-iam-service-role.md)。

**驗證對 AWS FIS 的存取**  
確定您能夠存取 AWS FIS。如需詳細資訊，請參閱 [AWS FIS 政策範例](security_iam_id-based-policy-examples.md)。

**準備測試 EC2 執行個體**
+ 根據預先設定的 SSM 文件的要求，使用 Amazon Linux 2 或 Ubuntu 啟動 EC2 執行個體。
+ 執行個體必須由 SSM 管理。若要驗證執行個體是由 SSM 管理，請開啟 [Fleet Manager 主控台](https://console.aws.amazon.com/systems-manager/managed-instances)。如果執行個體不是由 SSM 管理，請確認已安裝 SSM 代理程式，且執行個體具有與 **AmazonSSMManagedInstanceCore** 政策連接的 IAM 角色。若要驗證已安裝的 SSM Agent，請連線至您的執行個體並執行下列命令。

  **Amazon Linux 2**

  ```
  yum info amazon-ssm-agent
  ```

  **Ubuntu**

  ```
  apt list amazon-ssm-agent
  ```
+ 啟用執行個體的詳細監控。這會在 1 分鐘內提供資料，需額外付費。選取執行個體，然後選擇**動作**、**監控和疑難排解**、**管理詳細監控**。

## 步驟 1：為停止條件建立 CloudWatch 警示
<a name="getting-started-create-alarms"></a>

設定 CloudWatch 警示，以便在 CPU 使用率超過您指定的閾值時停止實驗。下列程序會將目標執行個體的閾值設定為 50% CPU 使用率。如需詳細資訊，請參閱[停止條件](stop-conditions.md)。

**建立警示，指出 CPU 使用率何時超過閾值**

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

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

1. 選取目標執行個體，然後選擇**動作**、**監控和疑難排解**、**管理 CloudWatch 警示**。

1. 對於**警示通知**，請使用切換來關閉 Amazon SNS 通知。

1. 對於**警示閾值**，請使用下列設定：
   + **分組範例依據**：**Maximum**
   + **要取樣的資料類型**：**CPU 使用率**
   + **百分比**： **50**
   + **期間**： **1 Minute**

1. 完成警示的設定後，請選擇**建立**。

## 步驟 2：建立實驗範本
<a name="run-cpu-stress-create-template"></a>

使用 AWS FIS 主控台建立實驗範本。在範本中，您可以指定要執行的下列動作：[aws：ssm：send-command/AWSFIS-Run-CPU-Stress](actions-ssm-agent.md#awsfis-run-cpu-stress)。

**建立實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在導覽窗格中，選擇**實驗範本**。

1. 選擇**建立實驗範本**。

1. 針對**步驟 1，指定範本詳細資訊**，執行下列動作：

   1. 針對**描述和名稱**，輸入範本的描述。

   1. 選擇**下一步**，然後移至**步驟 2，指定動作和目標**。

1. 對於 **Actions (動作)**，執行下列動作：

   1. 選擇**新增動作**。

   1. 輸入動作的名稱。例如，​輸入 **runCpuStress**。

   1. 針對**動作類型**，選擇 **aws：ssm：send-command/AWSFIS-Run-CPU-Stress**。這會自動將 SSM 文件的 ARN 新增至**文件 ARN**。

   1. 對於**目標**，請保留 AWS FIS 為您建立的目標。

   1. 針對**動作參數**、**文件參數**，輸入下列內容：

      ```
      {"DurationSeconds":"120"}
      ```

   1. 針對**動作參數**、**持續時間**，指定 5 分鐘 (PT5M)。

   1. 選擇**儲存**。

1. 對於 **Targets (目標)**，執行下列動作：

   1. 針對 AWS FIS 在上一個步驟中自動為您建立的目標，選擇**編輯**。

   1. 以更描述性的名稱取代預設名稱。例如，​輸入 **testInstance**。

   1. 確認**資源類型**為 **aws：ec2：instance**。

   1. 針對**目標方法**，選擇**資源 IDs**，然後選擇測試執行個體的 ID。

   1. 針對**選取模式**，選擇**全部**。

   1. 選擇**儲存**。

1. 選擇**下一步**以移至**步驟 3，設定服務存取**。

1. 針對**服務存取**，選擇**使用現有的 IAM 角色**，然後選擇您建立的 IAM 角色，如本教學課程的先決條件所述。如果您的角色未顯示，請確認其具有所需的信任關係。如需詳細資訊，請參閱[AWS FIS 實驗的 IAM 角色](getting-started-iam-service-role.md)。

1. 選擇**下一步**以移至**步驟 4，設定選用設定**。

1. 針對**停止條件**，選取您在步驟 1 中建立的 CloudWatch 警示。

1. （選用） 針對**標籤**，選擇**新增標籤**並指定標籤索引鍵和標籤值。您新增的標籤會套用至實驗範本，而不是使用範本執行的實驗。

1. 選擇**下一步**以移至**步驟 5，檢閱並建立**。

1. 檢閱範本，然後選擇**建立實驗範本**。出現確認提示時，輸入 `create`，然後選擇**建立實驗範本**。

**（選用） 檢視實驗範本 JSON**  
選擇**匯出**索引標籤。以下是上述主控台程序所建立的 JSON 範例。

```
{
    "description": "Test CPU stress predefined SSM document",
    "targets": {
        "testInstance": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:{{region}}:{{123456789012}}:instance/{{instance_id}}"
            ],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "runCpuStress": {
            "actionId": "aws:ssm:send-command",
            "parameters": {
                "documentArn": "arn:aws:ssm:{{region}}::document/AWSFIS-Run-CPU-Stress",
                "documentParameters": "{\"DurationSeconds\":\"120\"}",
                "duration": "PT5M"
            },
            "targets": {
                "Instances": "testInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": "arn:aws:cloudwatch:{{region}}:{{123456789012}}:alarm:awsec2-{{instance_id}}-GreaterThanOrEqualToThreshold-CPUUtilization"
        }
    ],
    "roleArn": "arn:aws:iam::{{123456789012}}:role/{{AllowFISSSMActions}}",
    "tags": {}
}
```

## 步驟 3：開始實驗
<a name="run-cpu-stress-start-experiment"></a>

完成建立實驗範本後，您可以使用它來開始實驗。

**開始實驗**

1. 您應該位於您剛建立之實驗範本的詳細資訊頁面。否則，請選擇**實驗範本**，然後選取實驗範本的 ID 以開啟詳細資訊頁面。

1. 選擇 **Start experiment** (開始實驗)。

1. （選用） 若要將標籤新增至實驗，請選擇**新增標籤**，然後輸入標籤索引鍵和標籤值。

1. 選擇 **Start experiment** (開始實驗)。出現確認提示時，請按一下 **start**。選擇 **Start experiment** (開始實驗)。

## 步驟 4：追蹤實驗進度
<a name="run-cpu-stress-track-experiment"></a>

您可以追蹤執行中實驗的進度，直到實驗完成、停止或失敗為止。

**追蹤實驗的進度**

1. 您應該位於您剛開始之實驗的詳細資訊頁面。否則，請選擇**實驗**，然後選取實驗的 ID 以開啟實驗的詳細資訊頁面。

1. 若要檢視實驗狀態，請在**詳細資訊**窗格中檢查**狀態**。如需詳細資訊，請參閱[實驗狀態](view-experiment-progress.md#experiment-states)。

1. 當實驗狀態為**執行**中時，請移至下一個步驟。

## 步驟 5：驗證實驗結果
<a name="run-cpu-stress-verify-experiment-results"></a>

您可以在實驗執行時監控執行個體的 CPU 使用率。當 CPU 使用率達到閾值時，會觸發警示，且實驗會因停止條件而停止。

**驗證實驗的結果**

1. 選擇**停止條件**索引標籤。綠色邊界和綠色核取記號圖示表示警示的初始狀態為 `OK`。紅線表示警示閾值。如果您偏好更詳細的圖形，請從小工具功能表中選擇**放大**。  
![顯示活動量低期間約 50% 後 CPU 使用率遽增至 100% 的圖表。](http://docs.aws.amazon.com/zh_tw/fis/latest/userguide/images/stop-conditions-pane-ok.png)

1. 當 CPU 使用率超過閾值時，**停止條件**索引標籤中的紅色邊界和紅色驚嘆號圖示表示警示狀態已變更為 `ALARM`。在**詳細資訊**窗格中，實驗的狀態為**已停止**。如果您選取 狀態，則顯示的訊息為「由停止條件停止試驗」。  
![圖表顯示 CPU 使用率隨時間的變化，紅色閾值線為 50%。](http://docs.aws.amazon.com/zh_tw/fis/latest/userguide/images/stop-conditions-pane-in-alarm.png)

1. 當 CPU 使用率低於閾值時，綠色邊界和綠色核取記號圖示表示警示狀態已變更為 `OK`。

1. （選用） 從小工具功能表中選擇在**警示中檢視**。這會在 CloudWatch 主控台中開啟警示詳細資訊頁面，您可以在其中取得警示的詳細資訊或編輯警示設定。

## 步驟 6：清除
<a name="stop-instances-cleanup"></a>

如果您不再需要為此實驗建立的測試 EC2 執行個體，您可以將其終止。

**若要終止執行個體**

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

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

1. 選取測試執行個體，然後選擇**執行個體狀態**、**終止執行個體**。

1. 出現確認提示時，請選擇**終止**。

如果您不再需要實驗範本，可以將其刪除。

**使用 AWS FIS 主控台刪除實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在導覽窗格中，選擇**實驗範本**。

1. 選取實驗範本，然後選擇**動作**、**刪除實驗範本**。

1. 出現確認提示時，輸入 **delete**，然後選擇**刪除實驗範本**。