翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
のアクション AWS FIS
実験テンプレートを作成するには、1 つ以上のアクションを定義する必要があります。が提供する事前定義されたアクションのリストについては AWS FIS、「」を参照してくださいアクションリファレンス。
アクションは、実験中に 1 回だけ実行できます。同じ実験で複数回 AWS FIS アクションを実行するには、異なる名前を使用してテンプレートに複数回追加します。
アクションの構文
次にアクションの構文を示します。
{
"actions": {
"action_name
": {
"actionId": "aws:service
:action-type
",
"description": "string
",
"parameters": {
"name
": "value
"
},
"startAfter": ["action_name
", ...],
"targets": {
"ResourceType
": "target_name
"
}
}
}
}
アクションを定義する場合は、以下を指定します。
action_name
-
アクションの名前。
- actionId
- description
-
オプションの説明。
- parameters
-
任意のアクションパラメータ。
- startAfter
-
このアクションを開始する前に完了する必要があるアクション。それ以外の場合、アクションは実験の開始時に実行されます。
- targets
-
すべてのアクションターゲット。
例については、「アクションの例」を参照してください。
アクション識別子
各 AWS FIS アクションには、次の形式の識別子があります。
aws:service-name
:action-type
例えば、次のアクションはターゲット Amazon EC2インスタンスを停止します。
aws:ec2:stop-instances
アクションの完全なリストについては、AWS FIS アクションリファレンス を参照してください。
アクションパラメータ
一部の AWS FIS アクションには、それらのアクションに固有の追加パラメータがあります。これらのパラメータは、アクション実行時に AWS FIS に情報を渡すために使用されます。
AWS FIS は、 SSM エージェントと SSM コマンドドキュメントを使用してターゲットインスタンスに障害条件を作成する aws:ssm:send-command
アクションを使用してカスタム障害タイプをサポートします。aws:ssm:send-command
アクションには、 SSMドキュメントの Amazon リソースネーム (ARN) を値として受け取るdocumentArn
パラメータが含まれます。実験テンプレートにアクションを追加するときに、パラメータの値を指定します。
aws:ssm:send-command
アクションのパラメータを指定する方法の詳細については、「aws:ssm:send-command アクションを使用します」を参照してください。
可能な場合は、アクションパラメータ内のロールバック設定を入力できます (ポストアクションともよばれます) 。ポストアクションは、ターゲットをアクションが実行される前の状態に戻します。ポストアクションは、アクション期間に指定された時間後に実行されます。すべてのアクションがポストアクションをサポートできるわけではありません。例えば、 アクションが Amazon EC2インスタンスを終了する場合、インスタンスの終了後にインスタンスを復元することはできません。
アクションターゲット
アクションは、指定したターゲットリソースで実行されます。ターゲットを定義したら、アクションを定義するときにその名前を指定できます。
"targets": {
"ResourceType
": "resource_name
"
}
AWS FIS アクションでは、アクションターゲットとして以下のリソースタイプがサポートされています。
-
AutoScalingGroups – Amazon EC2 Auto Scaling グループ
-
Buckets - Amazon S3 バケット
-
クラスター – Amazon EKSクラスター
-
クラスター – Amazon ECSクラスターまたは Amazon Aurora DB クラスター
-
DBInstances – Amazon RDS DB インスタンス
-
テーブル – Amazon DynamoDB グローバルテーブル
-
インスタンス – Amazon EC2インスタンス
-
Nodegroups – Amazon EKSノードグループ
-
ポッド – Amazon の Kubernetes ポッド EKS
-
ReplicationGroups – ElastiCache Redis レプリケーショングループ
-
ロール – IAMロール
-
SpotInstances – Amazon EC2 スポットインスタンス
-
サブネット – VPCサブネット
-
タスク – Amazon ECSタスク
-
TransitGateways – トランジットゲートウェイ
-
ボリューム – Amazon EBSボリューム
例については、「アクションの例」を参照してください。
アクション期間
アクションにアクションの継続時間を指定するために使用できるパラメータが含まれている場合、デフォルトでは、このアクションは指定した期間が経過した後にのみ完了とみなされます。emptyTargetResolutionMode
実験オプションを skip
に設定した場合、ターゲットが解決されなかったとき、アクションは「スキップ」ステータスですぐに完了します。例えば、5 分の期間を指定した場合、 AWS FIS は、5 分後にアクションが完了したと見なします。その後、すべてのアクションが完了するまで、次のアクションが開始されます。
期間は、アクション条件が維持される時間、またはメトリクスが監視される時間の長さのいずれかです。例えば、指定した時間の間、レイテンシーが注入されます。インスタンスの終了など、ほぼ瞬時のアクションタイプの場合、停止条件は指定された期間監視されます。
アクションがアクションパラメータ内にポストアクションを含んでいる場合、そのアクションが完了した後にポストアクションが実行されます。ポストアクションを完了するのにかかる時間によって、指定されたアクション期間から次のアクションの開始までの間に遅延が発生することがあります(または、他のすべてのアクションが完了した場合は実験を終了します)。
アクションの例
アクションの例は次のとおりです。
例: EC2インスタンスの停止
次のアクションは、 という名前のターゲットを使用して識別されたEC2インスタンスを停止しますtargetInstances
。2 分後にターゲットのインスタンスが再起動されます。
"actions": { "
stopInstances
": { "actionId": "aws:ec2:stop-instances", "parameters": { "startInstancesAfterDuration": "PT2M
" }, "targets": { "Instances": "targetInstances
" } } }
例: スポットインスタンスの中断
次のアクションは、 という名前のターゲットを使用して識別されたスポットインスタンスを停止しますtargetSpotInstances
。2 分間待ってから、スポットインスタンスが中断されます。
"actions": { "
interruptSpotInstances
": { "actionId": "aws:ec2:send-spot-instance-interruptions", "parameters": { "durationBeforeInterruption": "PT2M
" }, "targets": { "SpotInstances": "targetSpotInstances
" } } }
例: ネットワークトラフィックの中断
次のアクションは、ターゲットサブネットと他のアベイラビリティーゾーン内のサブネット間のトラフィックを拒否します。
"actions": { "
disruptAZConnectivity
": { "actionId": "aws:network:disrupt-connectivity", "parameters": { "scope": "availability-zone", "duration": "PT5M
" }, "targets": { "Subnets": "targetSubnets
" } } }
例: EKSワーカーの終了
次のアクションでは、 という名前のターゲットを使用して識別されたEKSクラスター内のEC2インスタンスの 50% を終了しますtargetNodeGroups
。
"actions": { "
terminateWorkers
": { "actionId": "aws:eks:terminate-nodegroup-instances", "parameters": { "instanceTerminationPercentage": "50
" }, "targets": { "Nodegroups": "targetNodeGroups
" } } }