

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

# FIS AWS のアクション
<a name="action-sequence"></a>

実験テンプレートを作成するには、1 つ以上のアクションを定義する必要があります。FIS が提供する事前定義されたアクションのリストについては、 AWS 「」を参照してください[アクションリファレンス](fis-actions-reference.md)。

アクションは、実験中に 1 回だけ実行できます。同じ実験で同じ FIS AWS アクションを複数回実行するには、異なる名前を使用してテンプレートに複数回追加します。

**Topics**
+ [アクションの構文](#action-syntax)
+ [アクション識別子](#action-identifiers)
+ [アクションパラメータ](#action-parameters)
+ [アクションターゲット](#action-targets)
+ [アクション期間](#action-duration)
+ [アクションの例](#example-actions)

## アクションの構文
<a name="action-syntax"></a>

次にアクションの構文を示します。

```
{
    "actions": {
        "action_name": {
            "actionId": "aws:service:action-type",
            "description": "string",
            "parameters": {
                "name": "value"
             },
            "startAfter": ["action_name", ...],
            "targets": {
                "ResourceType": "target_name"
            }
        }
    }
}
```

アクションを定義する場合は、以下を指定します。

***action\$1name***  
アクションの名前。

**actionId**  
[アクション識別子](#action-identifiers)。

**description**  
オプションの説明。

**parameters**  
任意の[アクションパラメータ](#action-parameters)。

**startAfter**  
このアクションを開始する前に完了する必要があるアクション。それ以外の場合、アクションは実験の開始時に実行されます。

**targets**  
すべての[アクションターゲット](#action-targets)。

例については、「[アクションの例](#example-actions)」を参照してください。

## アクション識別子
<a name="action-identifiers"></a>

各 AWS FIS アクションには、次の形式の識別子があります。

```
aws:service-name:action-type
```

例えば、以下のアクションは、ターゲットの Amazon EC2 インスタンスを停止します。

```
aws:ec2:stop-instances
```

アクションの完全なリストについては、[AWS FIS アクションリファレンス](fis-actions-reference.md) を参照してください。

## アクションパラメータ
<a name="action-parameters"></a>

一部の AWS FIS アクションには、アクションに固有の追加のパラメータがあります。これらのパラメータは、アクションの実行時に FIS AWS に情報を渡すために使用されます。

AWS FIS は、 `aws:ssm:send-command`アクションを使用してカスタム障害タイプをサポートします。このアクションでは、SSM エージェントと SSM コマンドドキュメントを使用して、ターゲットインスタンスに障害条件を作成します。`aws:ssm:send-command` アクションには、SSM ドキュメントの Amazon リソースネーム (ARN) を値として取る `documentArn` パラメータが含まれています。実験テンプレートにアクションを追加するときに、パラメータの値を指定します。

`aws:ssm:send-command` アクションのパラメータを指定する方法の詳細については、「[aws:ssm:send-command アクションを使用します](actions-ssm-agent.md#specifying-ssm-actions)」を参照してください。

可能な場合は、アクションパラメータ内のロールバック設定を入力できます (ポストアクション**ともよばれます) 。ポストアクションは、ターゲットをアクションが実行される前の状態に戻します。ポストアクションは、アクション期間に指定された時間後に実行されます。すべてのアクションがポストアクションをサポートできるわけではありません。例えば、アクションによって Amazon EC2 インスタンスが終了した場合、インスタンス終了後にこのインスタンスを回復することはできません。

## アクションターゲット
<a name="action-targets"></a>

アクションは、指定したターゲットリソースで実行されます。ターゲットを定義したら、アクションを定義するときにその名前を指定できます。

```
"targets": {
    "ResourceType": "resource_name"
}
```

AWS FIS アクションは、アクションターゲットに対して次のリソースタイプをサポートします。
+ **AutoScalingGroups** – Amazon EC2 Auto Scaling グループ
+ **Buckets** - Amazon S3 バケット
+ **Cluster** - Amazon EKS クラスター
+ **クラスター** – Amazon ECS、Aurora DSQL、または Amazon Aurora DB クラスター
+ **DBInstances** - Amazon RDS DB インスタンス
+ **関数** – AWS Lambda 関数
+ **Instances** - Amazon EC2 インスタンス
+ **KinesisStreams** – Kinesis データストリーム
+ **ManagedResources** – ARC ゾーンシフトが有効になっている Amazon EKS クラスター、Amazon EC2 Application and Network Load Balancer、および Amazon EC2 Auto Scaling グループ。
+ **MultiRegionClusters** – Amazon MemoryDB マルチリージョンクラスター
+ **Nodegroups** – Amazon EKS のノードグループ
+ **Pods** - Amazon EKS の Kubernetes ポッド
+ **ReplicationGroups** – ElastiCache レプリケーショングループ
+ **Roles** – IAM ロール
+ **SpotInstances** – Amazon EC2 スポットインスタンス
+ **Subnets** - VPC サブネット
+ **テーブル** – Amazon DynamoDB マルチリージョンの強力な結果整合性のあるグローバルテーブル
+ **Tasks** - Amazon ECS タスク
+ **TransitGateways** - トランジットゲートウェイ
+ **VirtualInterfaces** – Direct Connect 仮想インターフェイス
+ **Volumes** - Amazon EBS ボリューム
+ **VPCEndpoints** – Amazon VPC エンドポイント

例については、「[アクションの例](#example-actions)」を参照してください。

## アクション期間
<a name="action-duration"></a>

アクションにアクションの継続時間を指定するために使用できるパラメータが含まれている場合、デフォルトでは、このアクションは指定した期間が経過した後にのみ完了とみなされます。`emptyTargetResolutionMode` 実験オプションを `skip` に設定した場合、ターゲットが解決されなかったとき、アクションは「スキップ」ステータスですぐに完了します。たとえば、5 分の期間を指定すると、 AWS FIS は 5 分後にアクションが完了したと見なします。その後、すべてのアクションが完了するまで、次のアクションが開始されます。

期間は、アクション条件が維持される時間、またはメトリクスが監視される時間の長さのいずれかです。例えば、指定した時間の間、レイテンシーが注入されます。インスタンスの終了など、ほぼ瞬時のアクションタイプの場合、停止条件は指定された期間監視されます。

アクションがアクションパラメータ内にポストアクションを含んでいる場合、そのアクションが完了した後にポストアクションが実行されます。ポストアクションを完了するのにかかる時間によって、指定されたアクション期間から次のアクションの開始までの間に遅延が発生することがあります（または、他のすべてのアクションが完了した場合は実験を終了します）。

## アクションの例
<a name="example-actions"></a>

アクションの例は次のとおりです。

**例**
+ [EC2 インスタンスの停止](#example-action-stop-instances)
+ [スポットインスタンスの中断](#example-action-send-spot-instance-interupptions)
+ [ネットワークトラフィックの中断](#example-action-disrupt-connectivity)
+ [EKS ワーカーの終了](#example-action-terminate-nodegroup-instances)
+ [ARC ゾーンオートシフトを開始する](#example-start-arc-zonal-autoshift)<a name="example-action-stop-instances"></a>

**例: EC2インスタンスを停止する**  
次のアクションは、*targetInstances* という名前のターゲットで識別された EC2 インスタンスを停止します。2 分後にターゲットのインスタンスが再起動されます。

```
"actions": {
    "stopInstances": {
        "actionId": "aws:ec2:stop-instances",
        "parameters": {
            "startInstancesAfterDuration": "PT2M"
        },
        "targets": {
            "Instances": "targetInstances"
        }
    }
}
```<a name="example-action-send-spot-instance-interupptions"></a>

**例: スポットインスタンスの中断**  
次のアクションは、*targetSpotInstances* という名前のターゲットで識別されたスポットインスタンスを停止します。2 分間待ってから、スポットインスタンスが中断されます。

```
"actions": {
    "interruptSpotInstances": {
        "actionId": "aws:ec2:send-spot-instance-interruptions",
        "parameters": {
            "durationBeforeInterruption": "PT2M"
        },
        "targets": {
            "SpotInstances": "targetSpotInstances"
        }
    }
}
```<a name="example-action-disrupt-connectivity"></a>

**例: ネットワークトラフィックの中断**  
次のアクションは、ターゲットサブネットと他のアベイラビリティーゾーン内のサブネット間のトラフィックを拒否します。

```
"actions": {
    "disruptAZConnectivity": {
        "actionId": "aws:network:disrupt-connectivity",
        "parameters": {
            "scope": "availability-zone",
            "duration": "PT5M"
        },
        "targets": {
            "Subnets": "targetSubnets"
        }
    }
}
```<a name="example-action-terminate-nodegroup-instances"></a>

**例: EKS ワーカーの終了**  
次のアクションは、*targetNodeGroups* という名前のターゲットを使用して特定された EKS クラスター内の EC2 インスタンスの 50% を終了します。

```
"actions": {
    "terminateWorkers": {
        "actionId": "aws:eks:terminate-nodegroup-instances",
        "parameters": {
            "instanceTerminationPercentage": "50"
        },
        "targets": {
            "Nodegroups": "targetNodeGroups"
        }
    }
}
```<a name="example-start-arc-zonal-autoshift"></a>

**例: ARC ゾーンオートシフトを開始する**  
次のアクションにより、ARC ゾーンオートシフトが開始されます。ARC ゾーンオートシフトでは、マネージドリソース*az-in-parameters* *duration-in-parameteres*。リソースタイプ`ManagedResources`は、FIS AWS 実験テンプレートのターゲット名のキーとして使用されます。

```
{
    "description": "aaa",
    "targets": {
        "ManagedResources-Target-1": {
            "resourceType": "aws:arc:zonal-shift-managed-resource",
            "resourceArns": [
                "arn:aws:elasticloadbalancing:us-east-1:0124567890:loadbalancer/app/application/11223312312516",
            ],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "arc": {
            "actionId": "aws:arc:start-zonal-autoshift",
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a",
                "duration": "PT1M"
            },
            "targets": {
               "ManagedResources": "ManagedResources-Target-1"
            }
        }
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ],
    "roleArn": "arn:aws:iam::718579638765:role/fis",
    "tags": {},
    "experimentOptions": {
        "accountTargeting": "single-account",
        "emptyTargetResolutionMode": "fail"
    }
}
```