AWS FIS アクションリファレンス - AWS フォールト・インジェクション・サービス

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

AWS FIS アクションリファレンス

このリファレンスでは AWS FIS、アクションパラメータや必要な IAM 権限に関する情報など、の一般的なアクションについて説明します。 AWS FIS コンソールまたは () の AWS FIS list-actions コマンドを使用して、サポートされているアクションを一覧表示することもできます。 AWS Command Line Interface AWS CLI

詳細については、「以下のアクション: AWS FIS」および「AWS フォールト・インジェクション・サービスと IAM の連携の仕組み」を参照してください。

フォールトインジェクションアクション

AWS FIS 以下のフォールトインジェクションアクションをサポートします。

aws:fis:inject-api-internal-error

ターゲットの IAM ロールからのリクエストに内部エラーを挿入します。

リソースタイプ
  • aws:iam:role

パラメータ
  • duration - 所要時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

  • service— ターゲット AWS API 名前空間。サポート対象の値は ec2 です。

  • percentage - 障害の注入対象になるコールの割合 (1~100)。

  • operations - 障害の注入対象になる操作 (カンマ区切り)。ec2 名前空間の API アクションのリストについては、「Amazon EC2 API リファレンス」のアクションを参照してください。

アクセス許可
  • fis:InjectApiInternalError

aws:fis:inject-api-throttle-error

ターゲットの IAM ロールからのリクエストにスロットリングエラーを挿入します。

リソースタイプ
  • aws:iam:role

パラメータ
  • duration - 所要時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

  • service— ターゲット AWS API 名前空間。サポート対象の値は ec2 です。

  • percentage - 障害の注入対象になるコールの割合 (1~100)。

  • operations - 障害の注入対象になる操作 (カンマ区切り)。ec2 名前空間の API アクションのリストについては、「Amazon EC2 API リファレンス」のアクションを参照してください。

アクセス許可
  • fis:InjectApiThrottleError

aws:fis:inject-api-unavailable-error

ターゲットの IAM ロールからのリクエストに Unavailable エラーを挿入します。

リソースタイプ
  • aws:iam:role

パラメータ
  • duration - 所要時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

  • service— ターゲット AWS API 名前空間。サポート対象の値は ec2 です。

  • percentage - 障害の注入対象になるコールの割合 (1~100)。

  • operations - 障害の注入対象になる操作 (カンマ区切り)。ec2 名前空間の API アクションのリストについては、「Amazon EC2 API リファレンス」のアクションを参照してください。

アクセス許可
  • fis:InjectApiUnavailableError

Wait アクション

AWS FIS 以下の待機アクションをサポートします。

aws:fis:wait

AWS FIS 待機アクションを実行します。

パラメータ
  • duration - 所要時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

アクセス許可
  • なし

Amazon CloudWatch アクション

AWS FIS 次の Amazon CloudWatch アクションをサポートします。

aws:cloudwatch:assert-alarm-state

指定したアラームが指定したアラーム状態のいずれかになっていることを確認します。

リソースタイプ
  • なし

パラメータ
  • alarmArns - アラームの ARN (カンマ区切り)。最大 5 つのアラームを指定できます。

  • alarmStates - アラーム状態 (カンマ区切り)。指定できるアラーム状態は、OKALARM、および INSUFFICIENT_DATA です。

アクセス許可
  • cloudwatch:DescribeAlarms

Amazon DynamoDB のアクション

AWS FIS は次の Amazon DynamoDB アクションをサポートします。

aws:dynamodb:encrypted-global-table-pause-replication

AWS Key Management Service カスタマーマネージドキー (CMK) で暗号化されたテーブルの Amazon DynamoDB グローバルテーブルレプリケーションを一時停止します。このアクションは、ターゲット DynamoDB AWS KMS グローバルテーブル内のデータを保護するために使用されるキーにアクセスするための DynamoDB レプリケーションサービスにリンクされたロールの権限を削除します。テーブルは、アクションが開始した後、最大 5 分間はレプリケートが続行されることがあります。

次のステートメントは、ターゲット DynamoDB AWS KMS グローバルテーブル内のデータを保護するために使用されるキーのポリシーに動的に追加されます。

{ "Sid": "DO_NOT_MODIFY_FIS_DDB_PAUSE_REPLICATION-EXP123456789012345", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:dynamodb:tableName": [ "transactions-global-table", "inventory-global-table" ] } } }

上記のポリシーステートメントは、kms:EncryptionContext:aws:dynamodb:tableName コンテキストキーに一覧表示されているテーブルとの間でデータをレプリケートするための DynamoDB サービスリンクロールのアクセス許可を削除します。上記の例では、transaction-global-tableinventory-global-table という名前の DynamoDB グローバルテーブルのレプリケーションが停止します。

リソースタイプ
  • aws:dynamodb:encrypted-global-table

パラメータ
  • duration— AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

アクセス許可
  • kms:DescribeKey

  • kms:GetKeyPolicy

  • kms:PutKeyPolicy

  • dynamodb:DescribeTable

  • dynamodb:DescribeGlobalTable

  • tag:GetResources

ポリシーの例については、「例: aws:dynamodb:encrypted-global-table-pause-replication を実行するアクセス許可のある実験ロール。」を参照してください。

注記

AWS FIS kms:PutKeyPolicyを使用してDynamoDB、 AWS KMS つまりカスタマー管理キーへのアクセスを拒否します。これにより、レプリケーションが停止します。このアクションにより実験がアクティブに実行されている場合にのみこのロールを使用し、それ以外の場合は、削除することをお勧めします。ロールを削除すると、kms:PutKeyPolicy への FIS アクセス許可が削除されます。実験が完了した後、実験テンプレートの詳細でロールを検索します。IAM コンソールで IAM ロールへのリンクを選択し、[削除] を選択します。ロールを削除したら、 AWS KMS コンソールに移動し、ターゲット DynamoDB AWS KMS テーブル内のデータを保護するために使用されるキーを見つけます。 AWS KMS キーポリシーが期待どおりであることを確認します。 AWS FIS ステートメント (例:FIS_DDB_PAUSE_REPLICATION-EXP123456789012345_DO_NOT_MODIFY) は表示されなくなるはずです。

Amazon EBS アクション

AWS FIS は次の Amazon EBS アクションをサポートします。

aws:ebs:pause-volume-io

ターゲット EBS ボリュームの I/O オペレーションを一時停止します。ターゲットボリュームは同じアベイラビリティーゾーンになければならず、Nitro System に基づいて構築されたインスタンスにアタッチしておく必要があります。ボリュームは、Outpust 上のインスタンスにはアタッチできません。

Amazon EC2 コンソールで実験を開始する方法については、『Amazon EC2 ユーザーガイド』の「Amazon EBS での障害テスト」を参照してください。

リソースタイプ
  • aws:ec2:ebs-volume

パラメータ
  • duration - 所要時間。1 秒から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分、PT5S は 5 秒、PT6H は 6 時間を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。PT5S のように時間が短かければ、I/O は指定された時間だけ一時停止するはずですが、実験の初期化には時間がかかるため、実験が完了するまでの時間が長くなることがあります。

アクセス許可
  • ec2:DescribeVolumes

  • ec2:PauseVolumeIO

  • tag:GetResources

Amazon EC2 アクション

AWS FIS は次の Amazon EC2 アクションをサポートします。

AWS FIS AWS Systems Manager SSM エージェントによるフォールトインジェクションアクションもサポートします。システムマネージャーは EC2 インスタンスで実行するアクションを定義する SSM ドキュメントを使用します。独自のドキュメントを使用したカスタム障害の注入や、事前設定済みの SSM ドキュメントの使用が可能です。詳細については、「Systems Manager SSM ドキュメントを FIS AWS と共に使用する」を参照してください。

aws:ec2:api-insufficient-instance-capacity-error

ターゲットの IAM ロールからのリクエストで InsufficientInstanceCapacity エラーを挿入します。サポートされている操作は RunInstances、、 CreateCapacityReservation StartInstances、 CreateFleet 呼び出しです。複数のアベイラビリティーゾーンでのキャパシティタスクを含むリクエストはサポートされていません。このアクションでは、リソースタグ、フィルタ、またはパラメータを使用したターゲットの定義はサポートされていません。

リソースタイプ
  • aws:iam:role

パラメータ
  • duration— AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

  • availabilityzoneIdentifiers - アベイラビリティーゾーンのカンマ区切りリスト。ゾーン ID ("use1-az1, use1-az2" など) とゾーン名 ("us-east-1a" など) をサポートします。

  • percentage - 障害の注入対象になるコールの割合 (1~100)。

アクセス許可
  • 条件キー ec2:FisActionId の値の ec2:InjectApiErroraws:ec2:api-insufficient-instance-capacity-error に設定し、ec2:FisTargetArns 条件キーをターゲットの IAM ロールに設定します。

ポリシーの例については、「例: ec2:InjectApiError の条件キーを使用します。」を参照してください。

aws:ec2:asg-insufficient-instance-capacity-error

ターゲットの Auto Scaling グループからのリクエストで InsufficientInstanceCapacity エラーを挿入します。このアクションは、起動テンプレートを使用する Auto Scaling グループのみをサポートします。インスタンス容量不足エラーに関する詳細については、「Amazon EC2 ユーザーガイド」を参照してください。

リソースタイプ
  • aws:ec2:autoscaling-group

パラメータ
  • duration— AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

  • availabilityzoneIdentifiers - アベイラビリティーゾーンのカンマ区切りリスト。ゾーン ID ("use1-az1, use1-az2" など) とゾーン名 ("us-east-1a" など) をサポートします。

  • percentage - オプション。障害を挿入するターゲット Auto Scaling グループの起動リクエストの割合 (1~100)。デフォルトは 100 です。

アクセス許可
  • ec2:InjectApiError条件キー ec2: FisActionId aws:ec2:asg-insufficient-instance-capacity-error 値をに設定し、ec2:FisTargetArns条件キーをターゲット Auto Scaling グループに設定します。

  • autoscaling:DescribeAutoScalingGroups

ポリシーの例については、「例: ec2:InjectApiError の条件キーを使用します。」を参照してください。

aws:ec2:reboot-instances

ターゲット EC2 RebootInstancesインスタンスで Amazon EC2 API アクションを実行します。

リソースタイプ
  • aws:ec2:instance

パラメータ
  • なし

アクセス許可
  • ec2:RebootInstances

  • ec2:DescribeInstances

AWS 管理ポリシー

aws:ec2:send-spot-instance-interruptions

ターゲットのスポットインスタンスを中断します。スポットインスタンスの中断通知を送信して、スポットインスタンスを中断する 2 分前にスポットインスタンスをターゲットにします。durationBeforeInterruption中断時間は指定されたパラメータによって決まります。中断時間の 2 分後、スポットインスタンスは中断動作に応じて終了するか停止します。 AWS FIS によって停止されたスポットインスタンスは、ユーザーにより再起動されるまで停止状態を維持します。

アクションの開始直後に、ターゲットインスタンスは、EC2 インスタンスの再調整の推奨指示を受け取ります。指定した場合はdurationBeforeInterruption、リバランスの推奨から中断通知までに遅延が生じる可能性があります。

詳細については、「チュートリアル: AWS FIS でスポットインスタンスの中断をテストする」を参照してください。または、Amazon EC2 コンソールで実験を開始する方法については、『Amazon EC2 ユーザーガイド』の「スポットインスタンスの中断を開始する」を参照してください。

リソースタイプ
  • aws:ec2:spot-instance

パラメータ
  • durationBeforeInterruption - インスタンスが中断されるまでの待機時間。2 分から 15 分です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT2M は 2 分を表します。 AWS FIS コンソールでは、分数を入力します。

アクセス許可
  • ec2:SendSpotInstanceInterruptions

  • ec2:DescribeInstances

AWS 管理ポリシー

aws:ec2:stop-instances

ターゲット EC2 StopInstancesインスタンスで Amazon EC2 API アクションを実行します。

リソースタイプ
  • aws:ec2:instance

パラメータ
  • startInstancesAfterDuration - オプション。インスタンスの起動までの待機時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールで、秒数、分数、または時間数を入力します。インスタンスに暗号化された EBS ボリュームがある場合は、ボリュームの暗号化に使用される KMS AWS FIS キーにアクセス許可を付与するか、KMS キーポリシーに実験ロールを追加する必要があります。

  • completeIfInstancesTerminated - オプション。true の場合、そして startInstancesAfterDuration も true の場合、ターゲットとなる EC2 インスタンスが FIS 外部の別のリクエストによって終了され、再起動できなくなっても、このアクションは失敗しません。例えば、Auto Scaling グループは、このアクションが完了する前に管理され、停止された EC2 インスタンスを終了することがあります。デフォルトは False です。

アクセス許可
  • ec2:StopInstances

  • ec2:StartInstances

  • ec2:DescribeInstances - オプション。completeIfInstancesTerminated では、アクションの終了時にインスタンスの状態を検証するために必要です

  • kms:CreateGrant - オプション。startInstancesAfterDuration では、暗号化されたボリュームを使用してインスタンスを再起動する必要があります。

AWS 管理ポリシー

aws:ec2:terminate-instances

ターゲット EC2 TerminateInstancesインスタンスで Amazon EC2 API アクションを実行します。

リソースタイプ
  • aws:ec2:instance

パラメータ
  • なし

アクセス許可
  • ec2:TerminateInstances

  • ec2:DescribeInstances

AWS 管理ポリシー

Amazon ECS アクション

AWS FIS は次の Amazon ECS アクションをサポートします。

aws:ecs:drain-container-instances

Amazon ECS API UpdateContainerInstancesStateアクションを実行して、ターゲットクラスター上の基盤となる Amazon EC2 インスタンスのうち、指定された割合だけ排出します。

リソースタイプ
  • aws:ecs:cluster

パラメータ
  • drainagePercentage - パーセンテージ(1 から 100)。

  • duration - 所要時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

アクセス許可
  • ecs:DescribeClusters

  • ecs:UpdateContainerInstancesState

  • ecs:ListContainerInstances

  • tag:GetResources

AWS 管理ポリシー

aws:ecs:stop-task

Amazon ECS API StopTaskアクションを実行してターゲットタスクを停止します。

リソースタイプ
  • aws:ecs:task

パラメータ
  • なし

アクセス許可
  • ecs:DescribeTasks

  • ecs:ListTasks

  • ecs:StopTask

  • tag:GetResources

AWS 管理ポリシー

aws:ecs:task-cpu-stress

ターゲットタスクに CPU ストレスを実行します。AWSFIS-Run-CPU-Stress SSM ドキュメントを使用します。タスクはで管理する必要があります。 AWS Systems Manager詳細については、「ECS タスクアクションを使用します」を参照してください。

リソースタイプ
  • aws:ecs:task

パラメータ
  • duration - ストレステストの所要時間(ISO 8601 形式)。

  • percent - オプション。0 (無負荷) から 100 (全負荷) までの目標負荷率。デフォルトは 100 です。

  • workers - オプション。使用するストレッサーの数。デフォルト値は 0 で、すべてのストレッサーを使用します。

  • installDependencies - オプション。値が True の場合、SSM エージェントに対するサイドカーコンテナに必要な依存関係が、Systems Manager によってインストールされます (まだインストールされていない場合)。デフォルトは True です。依存関係は stress-ng です。

アクセス許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-io-stress

ターゲットタスクに I/O ストレスを実行します。AWSFIS-Run-IO-Stress SSM ドキュメントを使用します。タスクはで管理する必要があります。 AWS Systems Manager詳細については、「ECS タスクアクションを使用します」を参照してください。

リソースタイプ
  • aws:ecs:task

パラメータ
  • duration - ストレステストの所要時間(ISO 8601 形式)。

  • percent - オプション。ストレステスト中に使用するファイルシステム上の空き領域の割合。デフォルトは 80% です。

  • workers - オプション。ワーカー数 シーケンシャル、ランダム、およびメモリマップされた読み取り/書き込み操作、強制同期、およびキャッシュドロップの組み合わせを実行するワーカー。複数の子プロセスが同じファイルに対して異なる I/O 操作を実行します。デフォルト は 1 です。

  • installDependencies - オプション。値が True の場合、SSM エージェントに対するサイドカーコンテナに必要な依存関係が、Systems Manager によってインストールされます (まだインストールされていない場合)。デフォルトは True です。依存関係は stress-ng です。

アクセス許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-kill-process

killall コマンドを使用して、タスク内の指定されたプロセスを停止します。AWSFIS-Run-Kill-Process SSM ドキュメントを使用します。タスク定義は pidModetask に設定している必要があります。タスクはで管理する必要があります。 AWS Systems Manager詳細については、「ECS タスクアクションを使用します」を参照してください。

リソースタイプ
  • aws:ecs:task

パラメータ
  • processName – 停止するプロセスの名前。

  • signal - オプション。コマンドと一緒に送信するシグナル。指定できる値は、SIGTERM (受信者が無視することを選択できる) と SIGKILL (無視できない) です。デフォルト: SIGTERM

  • installDependencies - オプション。値が True の場合、SSM エージェントに対するサイドカーコンテナに必要な依存関係が、Systems Manager によってインストールされます (まだインストールされていない場合)。デフォルトは True です。依存関係は killall です。

アクセス許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-network-blackhole-port

指定されたプロトコルおよびポートのインバウンドトラフィックまたはアウトバウンドトラフィックをドロップします。AWSFIS-Run-Network-Blackhole-Port SSM ドキュメントを使用します。タスク定義は pidModetask に設定している必要があります。タスクはで管理する必要があります。 AWS Systems Managerタスク定義では networkModebridge に設定できません。詳細については、「ECS タスクアクションを使用します」を参照してください。

リソースタイプ
  • aws:ecs:task

パラメータ
  • duration - テストの所要時間(ISO 8601 形式)。

  • port - ポート番号。

  • trafficType - トラフィックの種類。指定できる値は ingress および egress です。

  • protocol - オプション。プロトコル。指定できる値は tcp および udp です。デフォルトは tcp です。

  • installDependencies - オプション。値が True の場合、SSM エージェントに対するサイドカーコンテナに必要な依存関係が、Systems Manager によってインストールされます (まだインストールされていない場合)。デフォルトは True です。依存関係は、atddig、および iptables です。

アクセス許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-network-latency

特定のソースへのトラフィックまたは特定のソースからのトラフィックのためのツール tc を使用してネットワークインターフェイスにレイテンシーとジッタを追加します。AWSFIS-Run-Network-Latency-Sources SSM ドキュメントを使用します。タスク定義は pidModetask に設定している必要があります。タスクはで管理する必要があります。 AWS Systems Managerタスク定義では networkModebridge に設定できません。詳細については、「ECS タスクアクションを使用します」を参照してください。

リソースタイプ
  • aws:ecs:task

パラメータ
  • duration - テストの所要時間(ISO 8601 形式)。

  • interface - オプション。ネットワークインターフェース。デフォルト: eth0

  • delayMilliseconds - オプション。遅延 (ミリ秒単位) 。デフォルトは 200 です。

  • jitterMilliseconds - オプション。ジッタ (ミリ秒単位)。デフォルトは 10 です。

  • sources - オプション。ソースはカンマで区切ります。指定できる値は、IPv4 アドレス、IPv4 CIDR ブロック、ドメイン名、DYNAMODB、および S3 です。DYNAMODB または S3 を指定した場合、これは現在のリージョンのリージョナルエンドポイントにのみ適用されます。デフォルトは 0.0.0/0 で、すべての IPv4 トラフィックに一致します。

  • installDependencies - オプション。値が True の場合、SSM エージェントに対するサイドカーコンテナに必要な依存関係が、Systems Manager によってインストールされます (まだインストールされていない場合)。デフォルトは True です。依存関係は、atddigjq および tc です。

アクセス許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-network-packet-loss

tc ツールを使用してネットワークインターフェイスへのパッケージの損失を追加します。AWSFIS-Run-Network-Packet-Loss-Sources SSM ドキュメントを使用します。タスク定義は pidModetask に設定している必要があります。タスクはで管理する必要があります。 AWS Systems Managerタスク定義では networkModebridge に設定できません。詳細については、「ECS タスクアクションを使用します」を参照してください。

リソースタイプ
  • aws:ecs:task

パラメータ
  • duration - テストの所要時間(ISO 8601 形式)。

  • interface - オプション。ネットワークインターフェース。デフォルト: eth0

  • lossPercent - オプション。パケット損失の割合。デフォルトは 7% です。

  • sources - オプション。ソースはカンマで区切ります。指定できる値は、IPv4 アドレス、IPv4 CIDR ブロック、ドメイン名、DYNAMODB、および S3 です。DYNAMODB または S3 を指定した場合、これは現在のリージョンのリージョナルエンドポイントにのみ適用されます。デフォルトは 0.0.0/0 で、すべての IPv4 トラフィックに一致します。

  • installDependencies - オプション。値が True の場合、SSM エージェントに対するサイドカーコンテナに必要な依存関係が、Systems Manager によってインストールされます (まだインストールされていない場合)。デフォルトは True です。依存関係は、atddigjq および tc です。

アクセス許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

Amazon EKS アクション

AWS FIS 次の Amazon EKS アクションをサポートしています。

aws:eks:inject-kubernetes-custom-resource

1 ChaosMesh つのターゲットクラスターでまたは Litmus 実験を実行します。 ChaosMesh または Litmus をターゲットクラスターにインストールする必要があります。

実験テンプレートを作成して aws:eks:cluster タイプのターゲットを定義する場合、このアクションは単一の Amazon リソースネーム (ARN) を対象とする必要があります。このアクションでは、リソースタグ、フィルタ、またはパラメータを使用したターゲットの定義はサポートされていません。

インストール時には ChaosMesh、適切なコンテナランタイムを指定する必要があります。Amazon EKS バージョン 1.23 以降、デフォルトのランタイムを Docker からcontainerd に変更しました。バージョン 1.24 以降、Docker は削除しました。

リソースタイプ
  • aws:eks:cluster

パラメータ
  • kubernetesApiVersion - Kubernetes カスタムリソースの API バージョン。指定できる値は chaos-mesh.org/v1alpha1 | litmuschaos.io/v1alpha1 です。

  • kubernetesKind - Kubernetes カスタムリソースの種類。値は API バージョンに依存します。

    • chaos-mesh.org/v1alpha1 – 指定可能な値は次のとおりです: | AWSChaos | DNSChaos | GCPChaos | HTTPChaos | IOChaos | JVMChaos | KernelChaos | NetworkChaos | PhysicalMachineChaos | PodChaos | PodHttpChaos | PodIOChaos | PodNetworkChaos | Schedule | StressChaos | TimeChaos | 。

    • litmuschaos.io/v1alpha1 – 有効な値は ChaosEngine です。

  • kubernetesNamespace - Kubernetes 名前空間

  • kubernetesSpec - JSON 形式の Kubernetes カスタムリソースの spec セクション。

  • maxDuration – オートメーション実行が完了するまでの最大許容時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

アクセス許可

このアクションには AWS Identity and Access Management (IAM) 権限は必要ありません。このアクションを使用するために必要な権限は、Kubernetes が RBAC 認証を使用して制御します。詳細については、Kubernetes ドキュメントの RBAC 認証の使用を参照してください。Chaos Mesh の詳細については、Chaos Mesh の公式ドキュメントを参照してください。Litmus の詳細については、『Litmus の公式ドキュメント』を参照してください。

aws:eks:pod-cpu-stress

ターゲットポッドに CPU ストレスを実行します。詳細については、「EKS ポッドアクションを使用する」を参照してください。

リソースタイプ
  • aws:eks:pod

パラメータ
  • duration - ストレステストの所要時間(ISO 8601 形式)。

  • percent - オプション。0 (無負荷) から 100 (全負荷) までの目標負荷率。デフォルトは 100 です。

  • workers - オプション。使用するストレッサーの数。デフォルト値は 0 で、すべてのストレッサーを使用します。

  • kubernetesServiceAccount – Kubernetes サービスアカウント。必要な権限の詳細については、「Kubernetes サービスアカウントを設定する」を参照してください。

  • fisPodContainerImage - オプション。フォールトインジェクターポッドの作成に使用するコンテナイメージ。デフォルトでは、 AWS FISが提供するイメージを使用します。詳細については、「ポッドコンテナイメージ」を参照してください。

  • maxErrorsPercent - オプション。フォールトインジェクションが失敗するまでに障害が発生する可能性のあるターゲットの割合。デフォルトは 0 です。

アクセス許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

AWS 管理ポリシー

aws:eks:pod-delete

ターゲットポッドを削除します。詳細については、「EKS ポッドアクションを使用する」を参照してください。

リソースタイプ
  • aws:eks:pod

パラメータ
  • gracePeriodSeconds - オプション。ポッドが正常に終了するまでの待機時間 (秒単位)。値が 0 の場合、アクションはすぐに実行されます。値が nil の場合、Pod のデフォルトの猶予期間を使用します。

  • kubernetesServiceAccount - Kubernetes サービスアカウント 必要な権限の詳細については、「Kubernetes サービスアカウントを設定する」を参照してください。

  • fisPodContainerImage - オプション。フォールトインジェクターポッドの作成に使用するコンテナイメージ。デフォルトでは、が提供する画像を使用します AWS FIS。詳細については、「ポッドコンテナイメージ」を参照してください。

  • maxErrorsPercent - オプション。フォールトインジェクションが失敗するまでに障害が発生する可能性のあるターゲットの割合。デフォルトは 0 です。

アクセス許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

AWS 管理ポリシー

aws:eks:pod-io-stress

ターゲットポッドに I/O ストレスを実行します。詳細については、「EKS ポッドアクションを使用する」を参照してください。

リソースタイプ
  • aws:eks:pod

パラメータ
  • duration - ストレステストの所要時間(ISO 8601 形式)。

  • workers - オプション。ワーカー数 シーケンシャル、ランダム、およびメモリマップされた読み取り/書き込み操作、強制同期、およびキャッシュドロップの組み合わせを実行するワーカー。複数の子プロセスが同じファイルに対して異なる I/O 操作を実行します。デフォルト は 1 です。

  • percent - オプション。ストレステスト中に使用するファイルシステム上の空き領域の割合。デフォルトは 80% です。

  • kubernetesServiceAccount – Kubernetes サービスアカウント 必要な権限の詳細については、「Kubernetes サービスアカウントを設定する」を参照してください。

  • fisPodContainerImage - オプション。フォールトインジェクターポッドの作成に使用するコンテナイメージ。デフォルトでは、が提供する画像を使用します AWS FIS。詳細については、「ポッドコンテナイメージ」を参照してください。

  • maxErrorsPercent - オプション。フォールトインジェクションが失敗するまでに障害が発生する可能性のあるターゲットの割合。デフォルトは 0 です。

アクセス許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

AWS 管理ポリシー

aws:eks:pod-memory-stress

ターゲットポッドにメモリストレスを実行します。詳細については、「EKS ポッドアクションを使用する」を参照してください。

リソースタイプ
  • aws:eks:pod

パラメータ
  • duration - ストレステストの所要時間(ISO 8601 形式)。

  • workers - オプション。使用するストレッサーの数。デフォルト は 1 です。

  • percent - オプション。ストレステスト中に使用する仮想メモリの割合。デフォルトは 80% です。

  • kubernetesServiceAccount – Kubernetes サービスアカウント 必要な権限の詳細については、「Kubernetes サービスアカウントを設定する」を参照してください。

  • fisPodContainerImage - オプション。フォールトインジェクターポッドの作成に使用するコンテナイメージ。デフォルトでは、が提供する画像を使用します AWS FIS。詳細については、「ポッドコンテナイメージ」を参照してください。

  • maxErrorsPercent - オプション。フォールトインジェクションが失敗するまでに障害が発生する可能性のあるターゲットの割合。デフォルトは 0 です。

アクセス許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

AWS 管理ポリシー

aws:eks:pod-network-blackhole-port

プロトコルおよびポートのインバウンドトラフィックまたはアウトバウンドトラフィックをドロップします。詳細については、「EKS ポッドアクションを使用する」を参照してください。

リソースタイプ
  • aws:eks:pod

パラメータ
  • duration - テストの所要時間(ISO 8601 形式)。

  • protocol - オプション。プロトコル。指定できる値は tcp および udp です。デフォルトは tcp です。

  • trafficType - トラフィックの種類。指定できる値は ingress および egress です。

  • port - ポート番号。

  • kubernetesServiceAccount - Kubernetes サービスアカウント 必要な権限の詳細については、「Kubernetes サービスアカウントを設定する」を参照してください。

  • fisPodContainerImage - オプション。フォールトインジェクターポッドの作成に使用するコンテナイメージ。デフォルトでは、が提供する画像を使用します AWS FIS。詳細については、「ポッドコンテナイメージ」を参照してください。

  • maxErrorsPercent - オプション。フォールトインジェクションが失敗するまでに障害が発生する可能性のあるターゲットの割合。デフォルトは 0 です。

アクセス許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

AWS 管理ポリシー

aws:eks:pod-network-latency

特定のソースへのトラフィックまたは特定のソースからのトラフィックのためのツール tc を使用してネットワークインターフェイスにレイテンシーとジッタを追加します。詳細については、「EKS ポッドアクションを使用する」を参照してください。

リソースタイプ
  • aws:eks:pod

パラメータ
  • duration - テストの所要時間(ISO 8601 形式)。

  • interface - オプション。ネットワークインターフェース。デフォルト: eth0

  • delayMilliseconds - オプション。遅延 (ミリ秒単位) 。デフォルトは 200 です。

  • jitterMilliseconds - オプション。ジッタ (ミリ秒単位)。デフォルトは 10 です。

  • sources - オプション。ソースはカンマで区切ります。指定できる値は、IPv4 アドレス、IPv4 CIDR ブロック、ドメイン名、DYNAMODB、および S3 です。DYNAMODB または S3 を指定した場合、これは現在のリージョンのリージョナルエンドポイントにのみ適用されます。デフォルトは 0.0.0/0 で、すべての IPv4 トラフィックに一致します。

  • kubernetesServiceAccount - Kubernetes サービスアカウント 必要な権限の詳細については、「Kubernetes サービスアカウントを設定する」を参照してください。

  • fisPodContainerImage - オプション。フォールトインジェクターポッドの作成に使用するコンテナイメージ。デフォルトでは、が提供する画像を使用します AWS FIS。詳細については、「ポッドコンテナイメージ」を参照してください。

  • maxErrorsPercent - オプション。フォールトインジェクションが失敗するまでに障害が発生する可能性のあるターゲットの割合。デフォルトは 0 です。

アクセス許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

AWS 管理ポリシー

aws:eks:pod-network-packet-loss

tc ツールを使用してネットワークインターフェイスへのパッケージの損失を追加します。詳細については、「EKS ポッドアクションを使用する」を参照してください。

リソースタイプ
  • aws:eks:pod

パラメータ
  • duration - テストの所要時間(ISO 8601 形式)。

  • interface - オプション。ネットワークインターフェース。デフォルト: eth0

  • lossPercent - オプション。パケット損失の割合。デフォルトは 7% です。

  • sources - オプション。ソースはカンマで区切ります。指定できる値は、IPv4 アドレス、IPv4 CIDR ブロック、ドメイン名、DYNAMODB、および S3 です。DYNAMODB または S3 を指定した場合、これは現在のリージョンのリージョナルエンドポイントにのみ適用されます。デフォルトは 0.0.0/0 で、すべての IPv4 トラフィックに一致します。

  • kubernetesServiceAccount - Kubernetes サービスアカウント 必要な権限の詳細については、「Kubernetes サービスアカウントを設定する」を参照してください。

  • fisPodContainerImage - オプション。フォールトインジェクターポッドの作成に使用するコンテナイメージ。デフォルトでは、が提供する画像を使用します AWS FIS。詳細については、「ポッドコンテナイメージ」を参照してください。

  • maxErrorsPercent - オプション。フォールトインジェクションが失敗するまでに障害が発生する可能性のあるターゲットの割合。デフォルトは 0 です。

アクセス許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

AWS 管理ポリシー

aws:eks:terminate-nodegroup-instances

TerminateInstancesターゲットノードグループで Amazon EC2 API アクションを実行します。

リソースタイプ
  • aws:eks:nodegroup

パラメータ
  • instanceTerminationPercentage - 終了するインスタンスの割合 (1 ~ 100)。

アクセス許可
  • ec2:DescribeInstances

  • ec2:TerminateInstances

  • eks:DescribeNodegroup

  • tag:GetResources

AWS 管理ポリシー

Amazon ElastiCache アクション

AWS FIS ElastiCache 以下のアクションをサポートします。

aws:elasticache:interrupt-cluster-az-power

ターゲットの Redis レプリケーショングループの指定されたアベイラビリティーゾーンのノードへの電力を中断します。プライマリノードがターゲットの場合、レプリケーションの遅延が最も小さいリードレプリカがプライマリに昇格されます。このアクションの間、指定されたアベイラビリティーゾーンのリードレプリカの置き換えはブロックされます。つまり、ターゲットのレプリケーショングループは少ない容量で動作します。

リソースタイプ
  • aws:elasticache:redis-replicationgroup

パラメータ
  • duration - 所要時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

アクセス許可
  • elasticache:InterruptClusterAzPower

  • elasticache:DescribeReplicationGroups

  • tag:GetResources

ネットワークアクション

AWS FIS 次のネットワークアクションをサポートします。

aws:network:disrupt-connectivity

ターゲットサブネットへの指定されたトラフィックを拒否します。

リソースタイプ
  • aws:ec2:subnet

パラメータ
  • scope - 拒否するトラフィックのタイプ。指定できる値は以下のとおりです。

    • all - サブネットに出入りするすべてのトラフィックを拒否します。このオプションでは、サブネット内のネットワークインターフェースに出入りするトラフィックを含め、サブネット内トラフィックが許可されることに注意してください。

    • availability-zone - 他のアベイラビリティーゾーン内のサブネットとの間の VPC 内トラフィックを拒否します。

    • dynamodb - 現在のリージョンの DynamoDB のリージョナルエンドポイントとの間のトラフィックを拒否します。

    • prefix-list - 指定されたプレフィックスリストとの間で送受信されるトラフィックを拒否します。

    • s3 - 現在のリージョンの Amazon S3 のリージョンエンドポイントとの間のトラフィックを拒否します。

    • vpc - VPC に出入りするトラフィックを拒否します。

  • duration - 所要時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

  • prefixListIdentifier - スコープがprefix-list の場合、これはカスタマー管理プレフィックスリストの識別子です。名前、ID、または ARN を指定できます。このプレフィックスリストは、最大 10 エントリです。

アクセス許可
  • ec2:CreateNetworkAcl - managedByFIS=true というタグが付いたネットワーク ACL を作成します。

  • ec2:CreateNetworkAclEntry - ネットワーク ACL には managedByFIS=true というタグが付いている必要があります。

  • ec2:CreateTags

  • ec2:DeleteNetworkAcl - ネットワーク ACL には managedByFIS=true というタグが付いている必要があります。

  • ec2:DescribeManagedPrefixLists

  • ec2:DescribeNetworkAcls

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

  • ec2:GetManagedPrefixListEntries

  • ec2:ReplaceNetworkAclAssociation

aws:network:route-table-disrupt-cross-region-connectivity

ターゲットサブネットから発信され、指定されたリージョンを宛てのトラフィックをブロックします。

リソースタイプ
  • aws:ec2:subnet

パラメータ
  • region - 分離するリージョンのコード (eu-west-1 など)。

  • duration — アクションが継続する時間の長さ。 AWS FIS API では、値は ISO 8601 フォーマットの文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

アクセス許可
  • ec2:AssociateRouteTable

  • ec2:CreateManagedPrefixList

  • ec2:CreateNetworkInterface

  • ec2:CreateRoute

  • ec2:CreateRouteTable

  • ec2:CreateTags

  • ec2:DeleteManagedPrefixList

  • ec2:DeleteNetworkInterface

  • ec2:DeleteRouteTable

  • ec2:DescribeManagedPrefixLists

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeRouteTables

  • ec2:DescribeSubnets

  • ec2:DescribeVpcPeeringConnections

  • ec2:DescribeVpcs

  • ec2:DisassociateRouteTable

  • ec2:GetManagedPrefixListEntries

  • ec2:ModifyManagedPrefixList

  • ec2:ModifyVpcEndpoint

  • ec2:ReplaceRouteTableAssociation

† タグ managedByFIS=true を使用してスコープを限定します。

aws:network:transit-gateway-disrupt-cross-region-connectivity

指定されたリージョンを宛先とするターゲットのトランジットゲートウェイピアリングアタッチメントからのトラフィックをブロックします。

リソースタイプ
  • aws:ec2:transit-gateway

パラメータ
  • region - 分離するリージョンのコード (eu-west-1 など)。

  • duration — アクションが継続する時間の長さ。 AWS FIS API では、値は ISO 8601 フォーマットの文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

アクセス許可
  • ec2:AssociateTransitGatewayRouteTable

  • ec2:DescribeTransitGatewayAttachments

  • ec2:DescribeTransitGatewayPeeringAttachments

  • ec2:DescribeTransitGateways

  • ec2:DisassociateTransitGatewayRouteTable

Amazon RDS アクション

AWS FIS は次の Amazon RDS アクションをサポートします。

aws:rds:failover-db-cluster

ターゲットの Aurora DB クラスターに対して Amazon RDS API アクション FailoverDBCluster を実行します。

リソースタイプ
  • aws:rds:cluster

パラメータ
  • なし

アクセス許可
  • rds:FailoverDBCluster

  • rds:DescribeDBClusters

  • tag:GetResources

AWS 管理ポリシー

aws:rds:reboot-db-instances

ターゲットの DB インスタンスに対して Amazon RDS API アクション RebootDBInstance を実行します。

リソースタイプ
  • aws:rds:db

パラメータ
  • forceFailover - オプション。値が true の場合、インスタンスがマルチ AZ の場合は、1 つのアベイラビリティーゾーンから別のアベイラビリティーゾーンへのフェイルオーバーを強制的に実行できます。デフォルトは False です。

アクセス許可
  • rds:RebootDBInstance

  • rds:DescribeDBInstances

  • tag:GetResources

AWS 管理ポリシー

Amazon S3 のアクション

AWS FIS は次の Amazon S3 アクションをサポートします。

aws:s3:bucket-pause-replication

ターゲットのソースバケットから宛先バケットへのレプリケーションを一時停止します。送信先バケットは、異なる AWS リージョンでも、ソースバケットと同じリージョン内でも配置することができます。既存のオブジェクトは、アクションが開始した後、最大 1 時間レプリケートが継続することがあります。このアクションはタグによるターゲティングのみをサポートします。Amazon S3 レプリケーションに関する詳細については、「Amazon S3 ユーザーガイド」を参照してください。

リソースタイプ
  • aws:s3:bucket

パラメータ
  • duration - 所要時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

  • region - 宛先バケットが配置されている AWS リージョン。

  • destinationBuckets - オプション。宛先 S3 バケットのカンマ区切りリスト。

  • prefixes - オプション。レプリケーションルールフィルターからの S3 オブジェクトキープレフィックスのカンマ区切りリスト。プレフィックスに基づくフィルターを使用したターゲットバケットのレプリケーションルールは一時停止されます。

アクセス許可
  • 条件キーが S3:IsReplicationPauseRequestS3:PutReplicationConfigurationTrue に設定する

  • 条件キーが S3:IsReplicationPauseRequestS3:GetReplicationConfigurationTrue に設定する

  • S3:PauseReplication

  • S3:ListAllMyBuckets

  • tag:GetResources

ポリシーの例については、「例: aws:s3:bucket-pause-replication の条件キーを使用します。」を参照してください。

Systems Manager アクション

AWS FIS は、次の Systems Manager アクションをサポートします。

aws:ssm:send-command

ターゲット EC2 SendCommandインスタンスでSystems Manager API アクションを実行します。Systems Manager ドキュメント (SSM ドキュメント) は、Systems Manager がインスタンスで実行するアクションを定義します。詳細については、「aws:ssm:send-command アクションを使用します」を参照してください。

リソースタイプ
  • aws:ec2:instance

パラメータ
  • documentArn - ドキュメントの Amazon リソースネーム (ARN) 。コンソールでは、事前設定された AWS FIS SSM ドキュメントのいずれかに対応する値をアクションタイプから選択すると、このパラメータが自動的に入力されます。

  • documentVersion - オプション。ドキュメントのバージョン。空の場合、デフォルトバージョンが実行されます。

  • documentParameters - 条件付き。ドキュメントが受け入れる必須およびオプションのパラメータ。形式は JSON オブジェクトで、キーは文字列で、値は文字列または文字列の配列です。

  • duration - 所要時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

アクセス許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

AWS 管理ポリシー

aws:ssm:start-automation-execution

Systems Manager API アクションを実行しますStartAutomationExecution

リソースタイプ
  • なし

パラメータ
  • documentArn - オートメーションドキュメントの Amazon リソースネーム (ARN)。

  • documentVersion - オプション。ドキュメントのバージョン。空の場合、デフォルトバージョンが実行されます。

  • documentParameters - 条件付き。ドキュメントが受け入れる必須およびオプションのパラメータ。形式は JSON オブジェクトで、キーは文字列、値は文字列または文字列の配列です。

  • maxDuration - オートメーション実行が完了するまでの最大許容時間。1 分から 12 時間です。 AWS FIS API では、値は ISO 8601 形式の文字列です。例えば、PT1M は 1 分を表します。 AWS FIS コンソールでは、秒、分、または時間数を入力します。

アクセス許可
  • ssm:GetAutomationExecution

  • ssm:StartAutomationExecution

  • ssm:StopAutomationExecution

  • iam:PassRole - オプション。自動化ドキュメントが役割を引き受ける場合は必須です。

AWS 管理ポリシー