教學課程:使用 AWS FIS 在執行個體上執行 CPU stress - AWS 故障注入服務

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

教學課程:使用 AWS FIS 在執行個體上執行 CPU stress

您可以使用AWS故障注入服務 (AWSFIS) 來測試應用程式如何處理 CPU stress。使用此教學課程建立實驗範本,該範本使用 AWS FIS 執行預先設定的 SSM 文件,該文件會在執行個體上執行 CPU stress。當執行個體的 CPU 使用率超過設定的臨界值時,教學課程會使用停止條件來中止實驗。

如需詳細資訊,請參閱 預先設定 AWS 的金融資訊系統 SSM 文件

必要條件

在您可以使用 AWS FIS 執行 CPU stress 之前,請先完成下列先決條件。

建立 IAM 角色

建立角色並附加原則,讓 AWS FIS 代表您使用aws:ssm:send-command動作。如需詳細資訊,請參閱 適用於 AWS FIS 實驗的 IAM 角色

驗證對 AWS FIS 的存取

請確定您可以存取 AWS FIS。如需詳細資訊,請參閱 AWSFIS 原則範例

準備一個測試 EC2 實例
  • 根據預先設定的 SSM 文件的要求,使用 Amazon Linux 2 或 Ubuntu 啟動 EC2 執行個體。

  • 執行個體必須由 SSM 管理。若要確認執行個體是否由 SSM 管理,請開啟叢集管理員主控台。如果執行個體不是由 SSM 管理,請確認 SSM 代理程式已安裝,並且執行個體具有附加的 IAM 角色與 Amazon ManagedInstanceCore SSM 政策。若要驗證已安裝的 SSM 代理程式,請連線至您的執行個體並執行下列命令。

    Amazon Linux 2

    yum info amazon-ssm-agent

    Ubuntu

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

步驟 1:建立停止狀態的 CloudWatch 警示

設定 CloudWatch 警示,以便在 CPU 使用率超過您指定的閾值時停止實驗。下列程序會將目標執行個體的臨界值設定為 50% CPU 使用率。如需詳細資訊,請參閱 停止條件

建立警示以指出 CPU 使用率何時超過臨界值
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇執行個體

  3. 選取目標執行個體,然後選擇 [動作]、[監視及疑難排解]、 CloudWatch [管理

  4. 對於警示通知,請使用開關關閉 Amazon SNS 通知。

  5. 對於警示臨界值,請使用下列設定:

    • 樣本分組依據最大

    • 要取樣的資料類型CPU 使用率

    • 百分比:50

    • 期間1 Minute

  6. 設定完鬧鐘後,請選擇 [建立]。

步驟 2:建立實驗範本

使用 AWS FIS 主控台建立實驗範本。在範本中,您可以指定下列要執行的動作:aw: ssm: AWSFIS 傳送命令/-Run CPU 應力。

建立實驗樣板的步驟
  1. 開啟AWS金融資訊系統控制台,網址為 https://console.aws.amazon.com/fis/

  2. 在導覽窗格中,選擇 [實驗範本]。

  3. 選擇創建實驗模板

  4. 在「描述」和「名稱」中,輸入範本的描述和名稱。

  5. 對於 Actions (動作),執行下列動作:

    1. 選擇新增動作

    2. 輸入動作的名稱。例如,​輸入 runCpuStress

    3. 針對「動作類型」,選擇 aw: SSM: AWSFIS 傳送指令/-執行 CPU 應力。這會自動將 SSM 文件的 ARN 新增至件 ARN。

    4. 針對目標,請保留 AWS FIS 為您建立的目標。

    5. 針對「作業」參數的「文件」參數,輸入下列內容:

      {"DurationSeconds":"120"}
    6. 對於「動作參數」 的「持續時間」,指定 5 分鐘 (PT5M)。

    7. 選擇儲存

  6. 對於 Targets (目標),執行下列動作:

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

    2. 以更具描述性的名稱取代預設名稱。例如,​輸入 testInstance

    3. 驗證資源類型aw:ec2: 實例。

    4. 對於 Target 方法,請選擇資源 ID,然後選擇測試實例的 ID。

    5. 針對「選取」模式,選擇「全部

    6. 選擇儲存

  7. 對於「服務存取」,請選擇「使用現有的 IAM 角色」,然後按照本教學課程的先決條件中所述選擇您建立的 IAM 角色。如果未顯示您的角色,請確認其具有必要的信任關係。如需詳細資訊,請參閱 適用於 AWS FIS 實驗的 IAM 角色

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

  9. (選擇性) 對於,請選擇「新增標籤」,然後指定標籤鍵和標籤值。您新增的標籤會套用至您的實驗範本,而不是使用範本執行的實驗。

  10. 選擇創建實驗模板

(選擇性) 若要檢視實驗範本 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:開始實驗

完成實驗模板的創建後,您可以使用它來開始實驗。

開始實驗的步驟
  1. 您應該在剛剛創建的實驗模板的詳細信息頁面上。否則,請選擇實驗模板,然後選擇實驗模板的 ID 以打開詳細信息頁面。

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

  3. (可選)要在實驗中添加標籤,請選擇「添加新標籤」,然後輸入標籤鍵和標籤值。

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

步驟 4:追蹤實驗進度

您可以跟踪正在運行的實驗的進度,直到實驗完成,停止或失敗。

追蹤實驗進度
  1. 您應該在剛開始實驗的詳細信息頁面上。否則,請選擇實驗,然後選擇實驗的 ID 以打開實驗的詳細信息頁面。

  2. 要查看實驗的狀態,請檢查詳細信息窗格中的狀態。如需詳細資訊,請參閱實驗狀態

  3. 當實驗狀態為「執行中」時,請前往下一個步驟。

步驟 5:驗證實驗結果

您可以在實驗執行時監控執行個體的 CPU 使用率。當 CPU 使用率達到閾值時,會觸發警報,並由停止條件停止實驗。

驗證實驗結果
  1. 選擇「停止條件」標籤。綠色邊框和綠色核取記號圖示表示警示的初始狀態為OK。紅線表示警示臨界值。如果您偏好更詳細的圖表,請從 Widget 選單中選擇「放大」。

  2. 當 CPU 使用率超過臨界值時,[停止條件] 索引標籤中的紅色邊框和紅色驚嘆號圖示表示警示狀態已變更為ALARM。在「詳細資料」窗格中,實驗的狀態為「已停止」。如果選擇狀態,則顯示的消息是「實驗停止條件中止」。

  3. 當 CPU 使用率降低到臨界值以下時,綠色邊框和綠色核取記號圖示表示警示狀態已變更為OK

  4. (選擇性) 從小工具選單中選擇在鬧鐘中檢視。這會開啟 CloudWatch 主控台中的警示詳細資訊頁面,您可以在其中取得有關鬧鐘的詳細資訊或編輯鬧鐘設定。

步驟 6:清除

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

若要終止執行個體
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇執行個體

  3. 選擇測試實例,然後選擇實例狀態終止實例

  4. 出現確認提示時,請選擇終止

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

使用 AWS FIS 控制台刪除實驗範本
  1. 開啟AWS金融資訊系統控制台,網址為 https://console.aws.amazon.com/fis/

  2. 在導覽窗格中,選擇 [實驗範本]。

  3. 選取實驗範本,然後選擇 [動作] > [刪除實驗範本]。

  4. 當系統提示您進行確認時,請輸入,delete然後選擇刪除實驗模板