

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# チュートリアル: FIS を使用してインスタンスで CPU AWS ストレスを実行する
<a name="fis-tutorial-run-cpu-stress"></a>

Fault Injection Service (AWS FIS) を使用して、アプリケーションが CPU AWS ストレスをどのように処理するかをテストできます。このチュートリアルを使用して、インスタンスで CPU AWS ストレスを実行する事前設定済みの SSM ドキュメントを実行する FIS を使用する実験テンプレートを作成します。このチュートリアルでは、インスタンスの CPU 使用率が事前設定済みのしきい値を超えた場合に、停止条件を使用して実験を停止します。

詳細については、「[事前設定された AWS FIS SSM ドキュメント](actions-ssm-agent.md#fis-ssm-docs)」を参照してください。

## 前提条件
<a name="run-cpu-stress-prerequisites"></a>

FIS AWS を使用して CPU ストレスを実行する前に、次の前提条件を完了してください。

**IAM ロールを作成する**  
ロールを作成し、FIS AWS がユーザーに代わって `aws:ssm:send-command`アクションを使用できるようにするポリシーをアタッチします。詳細については、「[FIS 実験の IAM AWS ロール](getting-started-iam-service-role.md)」を参照してください。

**FIS AWS へのアクセスを検証する**  
FIS AWS にアクセスできることを確認します。詳細については、「[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 Agent がインストールされていることと、インスタンスに **AmazonSSMManagedInstanceCore** ポリシーを持つ IAM ロールがアタッチされていることを確認してください。インストールされている SSM Agentを確認するには、インスタンスに接続し、以下のコマンドを実行します。

  **Amazon Linux 2**

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

  **Ubuntu**

  ```
  apt list amazon-ssm-agent
  ```
+ インスタンスの詳細モニタリングを有効にします。追加料金で、1 分間のデータを取得できます。インスタンスを選択し、**[Actions (アクション)]**、**[Monitor and troubleshoot] (モニタリングとトラブルシューティング)**、**[Manage detailed monitoring (詳細モニタリングの管理)]** の順に選択します。

## ステップ 1: 停止条件の CloudWatch アラームを作成する
<a name="getting-started-create-alarms"></a>

CPU 使用率が指定したしきい値を超えた場合に実験を停止できるように CloudWatch アラームを設定します。次の手順では、ターゲットインスタンスの CPU 使用率を 50% に設定します。詳細については、「[停止条件](stop-conditions.md)」を参照してください。

**CPU 使用率がしきい値を超えたことを示すアラームを作成するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、**[インスタンス]** を選択します。

1. ターゲットインスタンスを選択し、**[アクション]**、**[モニタリングとトラブルシューティング]**、**[CloudWatch アラームの管理]** の順に選択します。

1. **[Alarm notification (アラーム通知)]** で、トグルを使用して Amazon SNS 通知をオフにします。

1. **アラームのしきい値**を使用する場合は、以下の設定を使用します。
   + **サンプルのグループ化**: **最大**
   + **サンプリングするデータのタイプ**: **CPU 使用率**
   + **割合 (%)**: **50**
   + **間隔**: **1 Minute**

1. アラームの設定が終わったら、**[Create (作成)]** を選択します。

## ステップ 2: 実験テンプレートを作成する
<a name="run-cpu-stress-create-template"></a>

FIS AWS コンソールを使用して実験テンプレートを作成します。テンプレートで、実行するアクションを指定します。[aws:ssm:send-command/AWSFIS-Run-CPU-Stress](actions-ssm-agent.md#awsfis-run-cpu-stress)。

**実験テンプレートを作成するには**

1. [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) AWS で FIS コンソールを開きます。

1. ナビゲーションペインで、**[実験テンプレート]** を選択します。

1. **[実験テンプレートの作成]** を選択します。

1. **ステップ 1 でテンプレートの詳細を指定する**には、次の手順を実行します。

   1. **説明と名前**に、テンプレートの説明を入力します。

   1. **次**へを選択し、**ステップ 2、アクションとターゲットを指定する**に移動します。

1. **[操作]** で、以下の作業を行います。

   1. **[アクションの追加]** を選択します。

   1. アクションに名前を入力します。例えば、**runCpuStress** と入力します。

   1. **[アクションの種類]** で、**aws:ssm:send-command/AWSFIS-Run-CPU-Stress** を選択します。これにより、SSM ドキュメントの ARN が**ドキュメント ARN** に自動的に追加されます。

   1. Target の場合、FIS AWS が作成するターゲット****を保持します。

   1. **[アクションパラメーター]**、**[ドキュメントパラメータ]** には、次のように入力します。

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

   1. **[アクションパラメータ]**、**[継続時間]**で、5 分 (PT5M) を指定します。

   1. **[Save (保存)]** を選択します。

1. **[ターゲット]** で、以下の作業を行います。

   1. 前のステップで FIS AWS が自動的に作成したターゲット**の編集**を選択します。

   1. デフォルト名を、よりわかりやすい名前に置き換えます。例えば、 **testInstance**と入力します。

   1. **[リソースタイプ]** で**aws:ec2:instance**になっていることを確認します。

   1. **[ターゲットメソッド]** で、**[リソース ID]** を選択し、テストインスタンスの ID を選択します。

   1. **選択モード**で、**すべて**を選択します。

   1. **[保存]** を選択します。

1. **次**へ を選択して、**ステップ 3、サービスアクセスの設定**に移動します。

1. **Service Access** では、**[既存の IAM ロールを使用する]** を選択し、このチュートリアルの前提条件の説明に従って、作成した IAM ロールを選択します。ロールが表示されない場合は、必要な信頼関係があることを確認してください。詳細については、「[FIS 実験の IAM AWS ロール](getting-started-iam-service-role.md)」を参照してください。

1. **次**へ を選択して、**ステップ 4、オプション設定の構成**に移動します。

1. **[停止条件]** で、ステップ 1 で作成した CloudWatch アラームを選択します。

1. (オプション) **[タグ]** で、**[Add Tag (タグの追加)]** を選択して、タグのキーと値を指定します。追加するタグは、テンプレートを使用して実行される実験ではなく、実験テンプレートに適用されます。

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. **[実験を開始する]** を選択します。

1. (オプション) 実験にタグを追加するには、**[新しいタグを追加]** を選択し、タグキーとタグ値を入力します。

1. **[実験を開始する]** を選択します。確認を求められたら、**start** をクリックします。**[実験を開始する]** を選択します。

## ステップ 4: 実験の進行状況を追跡する
<a name="run-cpu-stress-track-experiment"></a>

実験が完了、停止、または失敗するまで、実行中の実験の進行状況を追跡できます。

**実験の進行状況を追跡するには**

1. 始めたばかりの実験の詳細ページにいるはずです。または、[Experiments (実験)] の ID を選択して、詳細ページを開きます。

1. 実験の状態を表示するには、**状態**の**の詳細**ペインを確認してください。詳細については、「[実験状態](view-experiment-progress.md#experiment-states)」を参照してください。

1. 実験状態が**実行中**のときは、次のステップに進みます。

## ステップ 5: 実験結果の検証
<a name="run-cpu-stress-verify-experiment-results"></a>

実験の実行中に、インスタンスの CPU 使用率を監視できます。CPU 使用率がしきい値に達すると、アラームがトリガーされ、停止条件によって実験が停止されます。

**実験の結果を検証するには**

1. **[停止条件]** タブを選択します。緑の境界線と緑のチェックマークアイコンは、アラームの初期状態が `OK` であることを示しています。赤い線は、アラームのしきい値を示します。より詳細なグラフが必要な場合は、ウイジェットメニューから **[拡大する]** を選択します。  
![CPU 使用率が約 50% の低アクティビティ期間後に 100% に急上昇したことを示すグラフ。](http://docs.aws.amazon.com/ja_jp/fis/latest/userguide/images/stop-conditions-pane-ok.png)

1. CPU 使用率がしきい値を超えると、**停止条件**タブの赤い境界線と赤い感嘆符のアイコンが、アラームの状態が `ALARM` に変わったことを示します。**詳細**ペインでは、実験の状態は**停止**です。状態を選択すると、表示されるメッセージは「実験を停止条件で停止しました」です。  
![赤色のしきい値線が 50% の経時的な CPU 使用率を示すグラフ。](http://docs.aws.amazon.com/ja_jp/fis/latest/userguide/images/stop-conditions-pane-in-alarm.png)

1. CPU 使用率がしきい値を下回ると、緑の境界線と緑のチェックマークアイコンは、アラームの状態が `OK` に変わったことを示します。

1. (オプション) ウィジェットメニューから **[アラームの表示]** を選択します。これにより、CloudWatch コンソールにアラームの詳細ページが開き、アラームの詳細を取得したり、アラーム設定を編集したりできます。

## ステップ 6: クリーンアップする
<a name="stop-instances-cleanup"></a>

この実験で作成したテスト EC2 インスタンスが不要になった場合は、終了できます。

**インスタンスを終了するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、**[インスタンス]** を選択します。

1. テストインスタンスを選択し、**[インスタンスの状態]**、**[インスタンスの終了]** の順に選択します。

1. 確認を求めるメッセージが表示されたら、**[終了]** を選択します。

実験テンプレートが不要になった場合は、削除できます。

**FIS AWS コンソールを使用して実験テンプレートを削除するには**

1. [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) AWS で FIS コンソールを開きます。

1. ナビゲーションペインで、**[Experiment templates (実験テンプレート)]** を選択します。

1. 実験テンプレートを選択し、**[アクション]**、**[実験テンプレートの削除]** を選択します。

1. 確認を求められたら、**delete** と入力し、**[実験テンプレートの削除]** を選択します。