

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

# FIS AWS 実験テンプレートの管理
<a name="manage-experiment-template"></a>

FIS AWS コンソールまたはコマンドラインを使用して、実験テンプレートを作成および管理できます。実験テンプレートには、指定したターゲットに対して実験中に実行する 1 つ以上のアクションが含まれています。また、実験が範囲外になるのを防ぐ停止条件も含まれています。実験テンプレートのコンポーネントの詳細については、「[実験テンプレートのコンポーネント](experiment-templates.md)」を参照してください。作成した実験テンプレートは、実験の実行に使用できます。

**Topics**
+ [実験テンプレートの作成](create-template.md)
+ [実験テンプレートを表示する](view-template.md)
+ [実験テンプレートからターゲットプレビューを生成する](generate-target-preview.md)
+ [テンプレートから実験を開始する](start-experiment-from-template.md)
+ [実験テンプレートを更新する](update-template.md)
+ [実験テンプレートにタグ付けする](tag-experiment-template.md)
+ [実験テンプレートを削除する](delete-template.md)
+ [FIS AWS 実験テンプレートの例](experiment-template-example.md)

# 実験テンプレートの作成
<a name="create-template"></a>

開始する前に、以下のタスクを完了します。
+ [実験の計画](getting-started-planning.md)。
+ ユーザーに代わってアクションを実行するアクセス許可を FIS AWS サービスに付与する IAM ロールを作成します。詳細については、「[FIS 実験の IAM AWS ロール](getting-started-iam-service-role.md)」を参照してください。
+ FIS AWS にアクセスできることを確認します。詳細については、「[AWS FIS ポリシー例](security_iam_id-based-policy-examples.md)」を参照してください。

**コンソールを使用して実験テンプレートを作成するには**

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

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

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

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

   1. **説明と名前**に、 などのテンプレートの説明を入力します`Amazon S3 Network Disrupt Connectivity`。

   1. (オプション) **[アカウントターゲティング]** の場合、**[複数アカウント]** を選択してマルチアカウント実験テンプレートを設定します。

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

1. **[アクション]** で、テンプレートに対する一連のアクションを指定します。アクションごとに、**アクションの追加**をクリックし、以下を完了します。
   + **[名前]** に、アクションの名前を入力します。

     使用できる文字は、英数字、ピリオド (.)、および下線 (\$1) です。名前の最初は、文字で始まっている必要があります。スペースは使用できません。それぞれのアクションの名前はテンプレート内で一意である必要があります。
   + (オプション) **[説明]** に、アクションの簡潔な説明を入力します。最大長は 512 文字です。
   + (オプション) **[開始後]** で、現在のアクションを開始する前に完了する必要がある別のアクションをこのテンプレートから選択します。それ以外の場合、アクションは実験の開始時に実行されます。
   + **アクションタイプ**で、FIS AWS アクションを選択します。
   + **[ターゲット]** で、**[ターゲット]** セクションで定義したターゲットを選択します。このアクションのターゲットをまだ定義していない場合、 AWS FIS は新しいターゲットを作成します。
   + **[アクションパラメータ]** には、アクションのパラメータを指定します。このセクションは、FIS AWS アクションにパラメータがある場合にのみ表示されます。
   + **[保存]** を選択します。

1. **[ターゲット]** で、アクションを実行するターゲットリソースを定義します。ターゲットには、少なくとも 1 つのリソース ID または少なくとも 1 つのリソースタグを指定する必要があります。**編集** を選択して、前のステップで FIS AWS が作成したターゲットを編集するか、**ターゲットの追加** を選択します。各ターゲットで、以下の作業を行います。
   + **[名前]** に、ターゲットの名前を入力します。

     使用できる文字は、英数字、ピリオド (.)、および下線 (\$1) です。名前の最初は、文字で始まっている必要があります。スペースは使用できません。各ターゲット名はテンプレート内で一意である必要があります。
   + **[リソースタイプ]** で、アクションでサポートされているリソースタイプを選択します。
   + **[ターゲットメソッド]** には、以下のいずれかを選択します。
     + **[リソース ID]** を選択し、リソース ID を選択、または追加します。
     + **[リソースタグ]、[フィルター]、[パラメータ]** を選択し、必要なタグとフィルターを追加します。詳細については、「[ターゲットリソースを識別する](targets.md#target-identification)」を参照してください。
   + **[選択モード]** では、**[カウント]** を選択して指定した数の識別されたターゲットに対してアクションを実行するか、**[パーセント]** を選択して指定した割合の識別されたターゲットに対してアクションを実行します。デフォルトでは、アクションは特定されたすべてのターゲットに対して実行されます。
   + **[Save (保存)]** を選択します。

1. 作成したターゲットでアクションを更新するには、**[アクション」**でアクションを探して **[編集]** を選択し、**[ターゲット]** を更新します。複数のアクションに同じターゲットを使用できます。

1. (オプション) **実験オプション**では、空のターゲット解決モードの動作を選択します。

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

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

1. (マルチアカウント実験のみ) **[ターゲットアカウント設定]** で、各ターゲットアカウントにロールの ARN とオプションの説明を追加します。ターゲットアカウントロールの ARN を CSV ファイルでアップロードするには、**[すべてのターゲットアカウントのロール ARN をアップロード]** を選択し、**[.CSV ファイルを選択]** を選択します。

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

1. **停止条件**を使用する場合、停止条件の 1 つまたは複数の Amazon CloudWatch アラームを選択します。詳細については、「[FIS AWS の停止条件](stop-conditions.md)」を参照してください。

1. (オプション) **[ログ]** には、宛先オプションを設定します。S3 バケットにログを送信するには、**[Amazon S3 バケットに送信]** を選択し、バケット名とプレフィックスを入力します。CloudWatch ログにログを送信するには、**[CloudWatch Logs に送信]** を選択し、ロググループを入力します。

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

1. **次**へ を選択して**ステップ 5、確認して作成**に進みます。

1. テンプレートを確認し、**実験テンプレートの作成**を選択します。確認を求められたら、「」と入力し`create`、**実験テンプレートの作成**を選択します。

**CLI を使用して実験テンプレートを作成するには**  
[create-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/create-experiment-template.html) コマンドを使用します。

JSON ファイルから実験テンプレートを読み込むことができます。

`--cli-input-json` パラメータを使用します。

```
aws fis create-experiment-template --cli-input-json fileb://<path-to-json-file>
```

詳細については、「AWS Command Line Interface ユーザーガイド**」の「[CLI スケルトンテンプレートの生成](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-skeleton.html)」を参照してください。テンプレートの例については、「[FIS AWS 実験テンプレートの例](experiment-template-example.md)」を参照してください。

# 実験テンプレートを表示する
<a name="view-template"></a>

作成した実験テンプレートを表示できます。

**コンソールを使用して実験テンプレートを表示するには**

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

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

1. 特定のテンプレートに関する情報を表示するには、**[実験テンプレート ID]** を選択します。

1. **[詳細]** セクションでは、テンプレートの説明と停止条件を表示できます。

1. 実験テンプレートのアクションを表示するには、**[アクション]** を選択します。

1. 実験テンプレートのターゲットを表示するには、**[ターゲット]**を選択します。

1. 実験テンプレートのタグを表示するには、**[タグ]** を選択します。

**CLI を使用して実験テンプレートを表示するには**  
[list-experiment-templates](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/list-experiment-templates.html)コマンドで、実験テンプレートのリストを取得し、[get-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/get-experiment-template.html) コマンドで、特定の実験テンプレートに関する情報を取得します。

# 実験テンプレートからターゲットプレビューを生成する
<a name="generate-target-preview"></a>

 実験を開始する前に、ターゲットプレビューを生成して、実験テンプレートが想定されるリソースをターゲットにするように設定されていることを確認します。リソースはランダムに削除、更新、サンプリングされるため、実際の実験を開始するときにターゲットとされるリソースはプレビューのリソースとは異なる場合があります。ターゲットプレビューを生成すると、すべてのアクションをスキップする実験が開始されます。

**注記**  
ターゲットプレビューを生成しても、リソースに対してアクションを実行するために必要なアクセス許可があることは確認できません。

**コンソールを使用してターゲットプレビューを開始するには**

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

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

1. 実験テンプレートのターゲットを表示するには、**[ターゲット]**を選択します。

1. 実験テンプレートのターゲットリソースを確認するには、**[プレビューの生成]** を選択します。実験を実行すると、このターゲットプレビューは最新の実験のターゲットで自動的に更新されます。

**CLI を使用してターゲットプレビューを開始するには**
+ 次の [start-experiment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/start-experiment.html) コマンドを実行します。斜体で示された値を、実際の値に置き換えます。

  ```
  aws fis start-experiment \
      --experiment-options actionsMode=skip-all \
      --experiment-template-id EXTxxxxxxxxx
  ```

# テンプレートから実験を開始する
<a name="start-experiment-from-template"></a>

実験テンプレートを作成したら、そのテンプレートを使用して実験を開始できます。

実験を開始すると、指定したテンプレートのスナップショットを作成し、そのスナップショットを使用して実験を実行します。したがって、実験の実行中に実験テンプレートが更新または削除された場合、それらの変更は実行中の実験に影響を与えません。

実験を開始すると、 AWS FIS はユーザーに代わってサービスにリンクされたロールを作成します。詳細については、「[Fault Injection Service AWS のサービスにリンクされたロールを使用する](using-service-linked-roles.md)」を参照してください。

実験を開始したら、いつでも停止できます。詳細については、「[実験を中止する](stop-experiment.md)」を参照してください。

**コンソールを使用して実験を開始するには**

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

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

1. 実験テンプレートを選択し、**[実験を開始する]** を選択します。

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

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

**CLI を使用して実験を開始するには**  
[start-experiment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/start-experiment.html) コマンドを使用します。

# 実験テンプレートを更新する
<a name="update-template"></a>

既存の実験テンプレートを更新できます。実験テンプレートを更新しても、そのテンプレートを使用する実行中の実験には影響しません。

**コンソールを使用して実験テンプレートを更新するには**

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

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

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

1. 必要に応じてテンプレートの詳細を変更し、**[実験テンプレートを更新する]** を選択します。

**CLI を使用して実験テンプレートを更新するには**  
[update-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/update-experiment-template.html) コマンドを使用します。

# 実験テンプレートにタグ付けする
<a name="tag-experiment-template"></a>

実験テンプレートを整理しやすくするために、実験テンプレートに独自のタグを適用できます。また、[タグベースの IAM ポリシー](security_iam_service-with-iam.md#security_iam_service-with-iam-tags)を使用して、実験テンプレートへのアクセスへの制御を実装することもできます。

**コンソールを使用して実験テンプレートにタグを付けるには**

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

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

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

1. タグを追加するには、**[新しいタグを追加]** を選択し、キー名とキーの値を指定します。

   タグを削除するには、 タグの **[Remove (削除)]** を選択します。

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

**CLI を使用して実験テンプレートにタグを付けるには**  
[tag-resource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/tag-resource.html) コマンドを使用します。

# 実験テンプレートを削除する
<a name="delete-template"></a>

実験テンプレートが不要になった場合は、削除できます。実験テンプレートを削除しても、そのテンプレートを使用する実行中の実験は影響を受けません。実験は、完了または停止するまで実行され続けます。ただし、削除された実験テンプレートは、コンソールの **[Experiments]** ページで見ることはできません。

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

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

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

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

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

**CLI を使用して実験テンプレートを削除するには**  
[delete-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/delete-experiment-template.html) コマンドを使用します。

# FIS AWS 実験テンプレートの例
<a name="experiment-template-example"></a>

 AWS FIS API またはコマンドラインツールを使用して実験テンプレートを作成する場合は、JavaScript Object Notation (JSON) でテンプレートを作成できます。実験テンプレートのコンポーネントの詳細については、「[AWS FIS 実験テンプレートコンポーネント](experiment-templates.md)」を参照してください。

サンプルテンプレートのいずれかを使用して実験テンプレートを作成するには、それを JSON ファイルに保存します (例えば、`my-template.json`)。そして独自の値で、*斜体*のプレースホルダの値を置き換えて、次の[実験テンプレートの作成](https://docs.aws.amazon.com/cli/latest/reference/fis/create-experiment-template.html)コマンドを実行します。

```
aws fis create-experiment-template --cli-input-json file://my-template.json
```

**Topics**
+ [フィルターに基づいて EC2 インスタンスを停止する](#stop-instances-filters)
+ [指定された数の EC2 インスタンスを停止する](#stop-instances-count)
+ [事前設定済みの AWS FIS SSM ドキュメントを実行する](#cpu-fault-injection)
+ [事前定義されたオートメーション Runbook を実行する](#run-automation-runbook)
+ [ターゲット IAM ロールを使用して EC2 インスタンスの API アクションをスロットルします](#inject-api-throttle)
+ [Kubernetes クラスタ内のポッドの CPU のストレステスト](#stress-test)
+ [指定された数の Kinesis Data Streams のプロビジョンドスループット例外](#throughput-kinesis)
+ [実験ロールのアクセス許可の例](#permissions-example)

## フィルターに基づいて EC2 インスタンスを停止する
<a name="stop-instances-filters"></a>

次の例では、指定された VPC 内の指定されたタグを持つ、指定されたリージョンで実行中の Amazon EC2 インスタンスをすべて停止します。2 分後に再起動します。

```
{
    "tags": {
        "Name": "StopEC2InstancesWithFilters"
    },
    "description": "Stop and restart all instances in us-east-1b with the tag env=prod in the specified VPC",
    "targets": {
        "myInstances": {
            "resourceType": "aws:ec2:instance",
            "resourceTags": {
                "env": "prod"
            },
            "filters": [
                {
                    "path": "Placement.AvailabilityZone",
                    "values": ["us-east-1b"]
                },
                {
                    "path": "State.Name",
                    "values": ["running"]
                },
                {
                    "path": "VpcId",
                    "values": [ "vpc-aabbcc11223344556"]
                }
            ],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "StopInstances": {
            "actionId": "aws:ec2:stop-instances",
            "description": "stop the instances",
            "parameters": {
                "startInstancesAfterDuration": "PT2M"
            },
            "targets": {
                "Instances": "myInstances"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": "arn:aws:cloudwatch:us-east-1:111122223333:alarm:alarm-name"
        }
    ],
    "roleArn": "arn:aws:iam::111122223333:role/role-name"
}
```

## 指定された数の EC2 インスタンスを停止する
<a name="stop-instances-count"></a>

次の の例では、指定されたタグで 3 つのインスタンスを停止します。 AWS FIS は、ランダムに停止する特定のインスタンスを選択します。2 分後にこれらのインスタンスが再起動されます。

```
{
    "tags": {
        "Name": "StopEC2InstancesByCount"
    },
    "description": "Stop and restart three instances with the specified tag",
    "targets": {
        "myInstances": {
            "resourceType": "aws:ec2:instance",
            "resourceTags": {
                "env": "prod"
            },
            "selectionMode": "COUNT(3)"
        }
    },
    "actions": {
        "StopInstances": {
            "actionId": "aws:ec2:stop-instances",
            "description": "stop the instances",
            "parameters": {
                "startInstancesAfterDuration": "PT2M"
            },
            "targets": {
                "Instances": "myInstances"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": "arn:aws:cloudwatch:us-east-1:111122223333:alarm:alarm-name"
        }
    ],
    "roleArn": "arn:aws:iam::111122223333:role/role-name"
}
```

## 事前設定済みの AWS FIS SSM ドキュメントを実行する
<a name="cpu-fault-injection"></a>

次の例では、事前設定された FIS SSM AWS ドキュメント [AWSFIS-Run-CPU-Stress](actions-ssm-agent.md#awsfis-run-cpu-stress). AWS FIS を使用して、指定された EC2 インスタンスで 60 秒間 CPU フォールトインジェクションを実行します。

```
{
    "tags": {
        "Name": "CPUStress"
    },
    "description": "Run a CPU fault injection on the specified instance",
    "targets": {
        "myInstance": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": ["arn:aws:ec2:us-east-1:111122223333:instance/instance-id"],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "CPUStress": {
            "actionId": "aws:ssm:send-command",
            "description": "run cpu stress using ssm",
            "parameters": {
                "duration": "PT2M",
                "documentArn": "arn:aws:ssm:us-east-1::document/AWSFIS-Run-CPU-Stress",
                "documentParameters": "{\"DurationSeconds\": \"60\", \"InstallDependencies\": \"True\", \"CPU\": \"0\"}"
            },
            "targets": {
                "Instances": "myInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": "arn:aws:cloudwatch:us-east-1:111122223333:alarm:alarm-name"
        }
    ],
    "roleArn": "arn:aws:iam::111122223333:role/role-name"
}
```

## 事前定義されたオートメーション Runbook を実行する
<a name="run-automation-runbook"></a>

次の例では、Systems Manager が提供する Runbook を使用して Amazon SNS に通知を発行します。[AWS-PublishSNSNotification](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-publishsnsnotification.html)。指定された SNS トピックに通知を発行する権限をロールに付与する必要があります。

```
{
    "description": "Publish event through SNS",
    "stopConditions": [
        {
            "source": "none"
        }
    ],
    "targets": {
    },
    "actions": {
        "sendToSns": {
            "actionId": "aws:ssm:start-automation-execution",
            "description": "Publish message to SNS",
            "parameters": {
                "documentArn": "arn:aws:ssm:us-east-1::document/AWS-PublishSNSNotification",
                "documentParameters": "{\"Message\": \"Hello, world\", \"TopicArn\": \"arn:aws:sns:us-east-1:111122223333:topic-name\"}",
                "maxDuration": "PT1M"
            },
            "targets": {
            }
        }
    },
    "roleArn": "arn:aws:iam::111122223333:role/role-name"
}
```

## ターゲット IAM ロールを使用して EC2 インスタンスの API アクションをスロットルします
<a name="inject-api-throttle"></a>

次の例では、ターゲット定義で指定された IAM ロールによって実行された API コールのアクション定義で指定された API コールの 100% をスロットリングします。

**注記**  
Auto Scaling グループのメンバーである EC2 インスタンスをターゲットにする場合は、代わりに **[aws:ec2:asg-insufficient-instance-capacity-error]** アクションを使用し、Auto Scaling グループでターゲットにしてください。詳細については、「[aws:ec2:asg-insufficient-instance-capacity-error](fis-actions-reference.md#asg-ice)」を参照してください。

```
{
    "tags": {
        "Name": "ThrottleEC2APIActions"
    },
    "description": "Throttle the specified EC2 API actions on the specified IAM role",
    "targets": {
        "myRole": {
            "resourceType": "aws:iam:role",
            "resourceArns": ["arn:aws:iam::111122223333:role/role-name"],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "ThrottleAPI": {
            "actionId": "aws:fis:inject-api-throttle-error",
            "description": "Throttle APIs for 5 minutes",
            "parameters": {
                "service": "ec2",
                "operations": "DescribeInstances,DescribeVolumes",
                "percentage": "100",
                "duration": "PT2M"
            },
            "targets": {
                "Roles": "myRole"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": "arn:aws:cloudwatch:us-east-1:111122223333:alarm:alarm-name"
        }
    ],
    "roleArn": "arn:aws:iam::111122223333:role/role-name"
}
```

## Kubernetes クラスタ内のポッドの CPU のストレステスト
<a name="stress-test"></a>

次の例では、Chaos Mesh を使用して Amazon EKS Kubernetes クラスター内のポッドの CPU について 1 分間ストレステストを行います。

```
{
    "description": "ChaosMesh StressChaos example",
    "targets": {
        "Cluster-Target-1": {
            "resourceType": "aws:eks:cluster",
            "resourceArns": [
                "arn:aws:eks:arn:aws::111122223333:cluster/cluster-id"
            ],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "TestCPUStress": {
            "actionId": "aws:eks:inject-kubernetes-custom-resource",
            "parameters": {
                "maxDuration": "PT2M",
                "kubernetesApiVersion": "chaos-mesh.org/v1alpha1",
                "kubernetesKind": "StressChaos",
                "kubernetesNamespace": "default",
                "kubernetesSpec": "{\"selector\":{\"namespaces\":[\"default\"],\"labelSelectors\":{\"run\":\"nginx\"}},\"mode\":\"all\",\"stressors\": {\"cpu\":{\"workers\":1,\"load\":50}},\"duration\":\"1m\"}"
            },
            "targets": {
                "Cluster": "Cluster-Target-1"
            }
        }
    },
    "stopConditions": [{
        "source": "none"
    }],
    "roleArn": "arn:aws:iam::111122223333:role/role-name",
    "tags": {}
}
```

以下の例では、Litmus を使用して Amazon EKS Kubernetes クラスター内のポッドの CPU について 1 分間ストレステストを行います。

```
{
    "description": "Litmus CPU Hog",
    "targets": {
        "MyCluster": {
            "resourceType": "aws:eks:cluster",
            "resourceArns": [
                "arn:aws:eks:arn:aws::111122223333:cluster/cluster-id"
            ],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "MyAction": {
            "actionId": "aws:eks:inject-kubernetes-custom-resource",
            "parameters": {
                "maxDuration": "PT2M",
                "kubernetesApiVersion": "litmuschaos.io/v1alpha1",
                "kubernetesKind": "ChaosEngine",
                "kubernetesNamespace": "litmus",
                "kubernetesSpec": "{\"engineState\":\"active\",\"appinfo\":{\"appns\":\"default\",\"applabel\":\"run=nginx\",\"appkind\":\"deployment\"},\"chaosServiceAccount\":\"litmus-admin\",\"experiments\":[{\"name\":\"pod-cpu-hog\",\"spec\":{\"components\":{\"env\":[{\"name\":\"TOTAL_CHAOS_DURATION\",\"value\":\"60\"},{\"name\":\"CPU_CORES\",\"value\":\"1\"},{\"name\":\"PODS_AFFECTED_PERC\",\"value\":\"100\"},{\"name\":\"CONTAINER_RUNTIME\",\"value\":\"docker\"},{\"name\":\"SOCKET_PATH\",\"value\":\"/var/run/docker.sock\"}]},\"probe\":[]}}],\"annotationCheck\":\"false\"}"
            },
            "targets": {
                "Cluster": "MyCluster"
            }
        }
    },
    "stopConditions": [{
        "source": "none"
    }],
    "roleArn": "arn:aws:iam::111122223333:role/role-name",
    "tags": {}
}
```

## 指定された数の Kinesis Data Streams のプロビジョンドスループット例外
<a name="throughput-kinesis"></a>

次の の例では、指定されたタグを持つ最大 5 つの Kinesis Data Streams リクエストの 100% に対してプロビジョニングされたスループット例外をスローします。 AWS FIS は、ランダムに影響するストリームを選択します。5 分後、障害は削除されます。

```
{
    "description": "Kinesis stream experiment",
    "targets": {
        "KinesisStreams-Target-1": {
            "resourceType": "aws:kinesis:stream",
            "resourceTags": {
                   "tag-key": "tag-value"
            },
            "selectionMode": "COUNT(5)"
        }
    },
    "actions": {
         "kinesis": {
              "actionId": "aws:kinesis:stream-provisioned-throughput-exception",
              "description": "my-stream",
              "parameters": {
                   "duration": "PT5M",
                   "percentage": "100",
                   "service": "kinesis"
              },
              "targets": {
                    "KinesisStreams": "KinesisStreams-Target-1"
              }
         }
   },
   "stopConditions": [
         {
              "source": "none"
         }
   ],
   "roleArn": "arn:aws:iam::111122223333:role/role-name",
   "tags": {},
   "experimentOptions": {
       "accountTargeting": "single-account",
       "emptyTargetResolutionMode": "fail"
   }    
}
```

## 実験ロールのアクセス許可の例
<a name="permissions-example"></a>

次のアクセス許可により、リクエストの 50% に影響する特定のストリームで `aws:kinesis:stream-provisioned-throughput-exception`および `aws:kinesis:stream-expired-iterator-exception`アクションを実行できます。

```
{
    "Version": "2012-10-17",		 	 	 
     "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesis:InjectApiError",
            "Resource": "*"
            "Condition": {
                "ForAllValues:StringEquals": {
                    "kinesis:FisActionId": [
                        "aws:kinesis:stream-provisioned-throughput-exception",
                        "aws:kinesis:stream-expired-iterator-exception" 
                    ],
                    "kinesis:FisTargetArns": [
                        "arn:aws:kinesis:us-east-1:111122223333:stream/stream-name"
                    ],
                },
                "NumericEquals": {
                    "kinesis:FisInjectPercentage": "50"
                }
            }
        },
        {
             "Action": [
                   "kinesis:DescribeStreamSummary",
              ],
             "Resource": "*",
             "Effect": "Allow"
        }
    ]
}
```