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

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

教學課程:CPUstress 執行個體上使用 AWS FIS

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

如需詳細資訊,請參閱預先設定 AWS FISSSM的文件

必要條件

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

建立 IAM 角色

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

驗證存取權 AWS FIS

確保您可以訪問 AWS FIS。如需詳細資訊,請參閱 AWS FIS政策範例

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

  • 執行個體必須由管理SSM。若要確認執行個體是由管理員SSM,請開啟叢集管理員主控台。如果執行個體不是由管理SSM,請確認已安裝SSM代理程式,以及執行個體具有 A mazonSSMManaged InstanceCore 原則的連結IAM角色。若要驗證已安裝的 SSM Agent,請連線至您的執行個體並執行下列命令。

    Amazon Linux 2

    yum info amazon-ssm-agent

    Ubuntu

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

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

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

若要建立警示,以指出CPU使用率何時超過臨界值
  1. 在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中,選擇 Instances (執行個體)。

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

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

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

    • 樣本分組依據最大值

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

    • 百分比:50

    • 期間1 Minute

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

步驟 2:建立實驗範本

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

建立實驗樣板的步驟
  1. 打開 AWS FIS控制台在https://console.aws.amazon.com/fis/

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

  3. 選擇創建實驗模板

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

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

    1. 選擇新增動作

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

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

    4. 對於目標保持目標 AWS FIS為您創造。

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

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

    7. 選擇 Save (儲存)。

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

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

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

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

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

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

    6. 選擇 Save (儲存)。

  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 選單中選擇「放大」。

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

    此圖表顯示一段時間內的CPU使用率,紅色臨界值線為 50%。
  3. 當CPU使用率降低到閾值以下時,綠色邊框和綠色核取記號圖示表示警示狀態已變更為OK

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

步驟 6:清除

如果您不再需要為此實驗創建的測試實EC2例,則可以終止它。

若要終止執行個體
  1. 在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中,選擇 Instances (執行個體)。

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

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

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

若要使用刪除實驗範本 AWS FIS控制台
  1. 打開 AWS FIS控制台在https://console.aws.amazon.com/fis/

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

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

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