翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
FIS で Systems Manager SSM AWS ドキュメントを使用する
AWS FIS は、SSM Agent AWS Systems Manager および FIS AWS アクション を通じてカスタム障害タイプをサポートしますaws:ssm:send-command。一般的なフォールトインジェクションアクションの作成に使用できる事前設定された Systems Manager SSM ドキュメント (SSM ドキュメント) は、AWSFIS- プレフィックスで始まるパブリック AWS ドキュメントとして使用できます。
SSM Agentは、 Amazon EC2 インスタンス、オンプレミスサーバー、または仮想マシン (VM) にインストールして設定することができる Amazon のソフトウェアです。これにより、これらのリソースは Systems Manager で管理できるようになります。エージェントは Systems Manager からのリクエストを処理し、リクエストに指定されたとおりにそれらを実行します。独自の SSM ドキュメントを含めて、カスタム障害を注入したり、Amazon が所有するパブリックドキュメントの 1 つを参照したりできます。
要件
SSM Agent がターゲットに対して実行することになるアクションについては、次のことを確認する必要があります。
-
エージェントがターゲットにインストールされていること。SSM Agent が、Amazon マシンイメージ (AMI) にデフォルトで事前インストールされていること。または、インスタンスに SSM Agent をインストールできます。詳細については、『AWS Systems Manager ユーザーガイド』の「Linux 用 EC2 インスタンスに SSM Agent を手動でインストールする」を参照してください。
-
Systems Manager にはインスタンスでアクションを実行する権限がありません。IAM インスタンスプロファイルを使用してアクセスを許可する必要があります。詳細については、『AWS Systems Manager ユーザーガイド』の「Systems Manager の IAM インスタンスプロファイルを作成する」および「IAM インスタンスプロファイルを EC2 インスタンスにアタッチする」を参照してください。
aws:ssm:send-command アクションを使用します
SSM ドキュメントは、マネージドインスタンスで Systems Manager が実行するアクションを定義します。Systems Manager には、事前設定済みのドキュメントが多数含まれていますが、独自のドキュメントを作成することもできます。独自の SSM ドキュメント作成に関する詳細については、『AWS Systems Manager ユーザーガイド』の「Systems Manager のドキュメントを作成する」を参照してください。SSM ドキュメント全般の詳細については、『AWS Systems Manager ユーザーガイド』の「AWS Systems Manager ドキュメント」を参照してください。
AWS FIS は、事前設定された SSM ドキュメントを提供します。事前設定された SSM ドキュメントは、 AWS Systems Manager コンソールのドキュメント https://console.aws.amazon.com/systems-manager/documents
FIS 実験で SSM AWS ドキュメントを使用するには、 aws:ssm:send-commandアクションを使用できます。このアクションは、ターゲットインスタンスで指定された SSM ドキュメントをフェッチして実行します。
実験テンプレート内で aws:ssm:send-command
アクションを使用する場合は、以下を含むアクションの追加パラメータを指定する必要があります。
-
documentArn – 必須。SSM ドキュメントの Amazon リソースネーム (ARN) 。
-
documentParameters - 条件付き。SSM ドキュメントに指定されている必須およびオプションのパラメータ。形式は JSON オブジェクトで、キーは文字列、値は文字列または文字列の配列です。
-
documentVersion - オプション。実行する SSM ドキュメントのバージョン。
Systems Manager コンソールまたはコマンドラインを使用して、SSM ドキュメントの情報 (ドキュメントのパラメータを含む) を表示できます。
コンソールを使用して、SSM ドキュメントについての情報を表示するには
-
https://console.aws.amazon.com/systems-manager/
で AWS Systems Manager コンソールを開きます。 -
ナビゲーションペインで、[ドキュメント] を選択します。
-
ドキュメントを選択し、[Details (詳細)] タブをクリックします。
コマンドラインを使用して、SSM ドキュメントについての情報を表示するには
SSM describe-document コマンドを使用します。
事前設定された AWS FIS SSM ドキュメント
実験テンプレートの aws:ssm:send-command
アクションで、事前設定された AWS FIS SSM ドキュメントを使用できます。
要件
-
FIS が提供する事前設定済みの SSM AWS ドキュメントは、次のオペレーティングシステムでのみサポートされています。
Amazon Linux 2023、Amazon Linux 2、Amazon Linux
Ubuntu
RHEL 8、9
CentOS 8、9
-
FIS が提供する事前設定済みの SSM AWS ドキュメントは、EC2 インスタンスでのみサポートされています。オンプレミスサーバーなど、他のタイプのマネージドノードではサポートされていません。
ECS タスクの実験でこれらの SSM ドキュメントを使用するには、対応する Amazon ECS アクション を使用してください。たとえば、aws:ecs:task-cpu-stress アクションは AWSFIS-Run-CPU-Stress ドキュメントを使用します。
ドキュメント
FIS SSM AWS ドキュメントのアクション期間と DurationSeconds の違い
一部の SSM ドキュメントでは、独自の実行時間が制限されます。例えば、DurationSeconds パラメータは、事前設定された FIS SSM AWS ドキュメントの一部で使用されます。そのため、FIS アクション定義で 2 AWS つの独立した期間を指定する必要があります。
-
Action duration: 1 つのアクションの実験の場合、アクション期間は実験期間と同等です。複数のアクションの場合、実験期間は個々のアクション期間と実行順序によって異なります。 AWS FIS は、アクション期間が経過するまで各アクションをモニタリングします。
-
ドキュメントパラメータ DurationSeconds: SSM ドキュメントが実行される時間を秒単位で指定します。
2 種類の期間で異なる値を選択できます。
-
Action duration exceeds DurationSeconds: SSM ドキュメントの実行はアクションが完了する前に終了します。 AWS FIS は、後続のアクションが開始される前にアクション期間が経過するまで待機します。
-
Action duration is shorter than DurationSeconds: SSM ドキュメントは、アクションが完了した後も実行を続行します。SSM ドキュメントの実行がまだ進行中で、アクション期間が経過した場合、アクションのステータスは Completed に設定されます。 AWS FIS は、アクション期間が経過するまで実行のみをモニタリングします。
一部の SSM ドキュメントには可変期間があることに注意してください。たとえば AWS 、FIS SSM ドキュメントには前提条件をインストールするオプションがあり、全体的な実行時間を指定された DurationSeconds パラメータを超えて延長できます。したがって、アクション期間と DurationSeconds を同じ値に設定すると、SSM スクリプトがアクション期間よりも長く実行される可能性があります。
AWSFIS-Run-CPU-Stress
stress-ng ツールを使用して、インスタンスに対して CPU ストレスを実行します。AWSFIS-Run-CPU-Stress
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-CPU-Stress
ARN
arn:aws:ssm:region::document/AWSFIS-Run-CPU-Stress
ドキュメントパラメータ
-
DurationSeconds – 必須。CPU ストレステストの継続時間 (秒単位)。
-
CPU - オプション。使用する CPU ストレッサーの数。デフォルト値は 0 で、すべての CPU ストレッサーを使用します。
-
LoadPercent - オプション。0 (無負荷) から 100 (全負荷) までのターゲット CPU 負荷率。デフォルトは 100 です。
-
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト:True
。依存関係は stress-ng です。
以下はコンソールで入力できる文字列の例です。
{"DurationSeconds":"60", "InstallDependencies":"True"}
AWSFIS-Run-Disk-Fill
インスタンスのルートボリュームにディスク容量を割り当てて、ディスクフル障害をシミュレートします。AWSFIS-Run-Disk-Fill
この障害を挿入する実験が手動または停止条件によって停止された場合、 AWS FIS は実行中の SSM ドキュメントをキャンセルしてロールバックを試みます。ただし、障害または障害とアプリケーションのアクティビティが原因で、ディスクが 100% フルになると、Systems Manager でキャンセル操作を完了できないことがあります。そのため、実験を中止しなければならない場合は、ディスクを 100% フルにしないでください。
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-Disk-Fill
ARN
arn:aws:ssm:region::document/AWSFIS-Run-Disk-Fill
ドキュメントパラメータ
-
DurationSeconds – 必須。ディスクフィルテストの継続時間 (秒単位)。
-
Percent - オプション。ディスクフィルテスト中に割り当てるディスクの割合。デフォルトは 95% です。
-
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト:True
。依存関係は、atd と fallocate です。
以下はコンソールに入力できる文字列の例です。
{"DurationSeconds":"60", "InstallDependencies":"True"}
AWSFIS-Run-IO-Stress
stress-ng ツールを使用して、インスタンスに対して IO ストレスを実行します。AWSFIS-Run-IO-Stress
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-IO-Stress
ARN
arn:aws:ssm:region::document/AWSFIS-Run-IO-Stress
ドキュメントパラメータ
-
DurationSeconds – 必須。IO ストレステストの継続時間 (秒単位)。
-
Workers - オプション。シーケンシャル、ランダム、およびメモリマップされた読み取り/書き込み操作、強制同期、およびキャッシュドロップの組み合わせを実行する Workers の数。複数の子プロセスが同じファイルに対して異なる I/O 操作を実行します。デフォルトは 1 です。
-
Percent - オプション。I/O ストレステスト中に使用するファイルシステム上の空き領域の割合。デフォルトは 80% です。
-
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト:True
。依存関係は stress-ng です。
以下はコンソールに入力できる文字列の例です。
{"Workers":"1", "Percent":"80", "DurationSeconds":"60", "InstallDependencies":"True"}
AWSFIS-Run-Kill-Process
killall コマンドを使用して、インスタンス内の指定されたプロセスを停止します。AWSFIS-Run-Kill-Process
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-Kill-Process
ARN
arn:aws:ssm:region::document/AWSFIS-Run-Kill-Process
ドキュメントパラメータ
-
ProcessName – 必須。停止するプロセスの名前。
-
Signal - オプション。コマンドと一緒に送信するシグナル。指定できる値は、
SIGTERM
(受信者が無視することを選択できる) とSIGKILL
(無視できない) です。デフォルト:SIGTERM
。 -
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト:True
。依存関係は killall です。
以下はコンソールに入力できる文字列の例です。
{"ProcessName":"myapplication", "Signal":"SIGTERM"}
AWSFIS-Run-Memory-Stress
stress-ng ツールを使用して、インスタンスに対してメモリストレスを実行します。AWSFIS-Run-Memory-Stress
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-Memory-Stress
ARN
arn:aws:ssm:region::document/AWSFIS-Run-Memory-Stress
ドキュメントパラメータ
-
DurationSeconds – 必須。メモリストレステストの継続時間 (秒単位)。
-
Workers - オプション。仮想メモリストレッサーの数。デフォルトは 1 です。
-
Percent – 必須。メモリストレステスト中に使用する仮想メモリの割合。
-
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト:True
。依存関係は stress-ng です。
以下はコンソールに入力できる文字列の例です。
{"Percent":"80", "DurationSeconds":"60", "InstallDependencies":"True"}
AWSFIS-Run-Network-Blackhole-Port
iptablesツールを使用して、プロトコルおよびポートのインバウンドトラフィックまたはアウトバウンドトラフィックをドロップします。AWSFIS-Run-Network-Blackhole-Port
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-Network-Blackhole-Port
ARN
arn:aws:ssm:region::document/AWSFIS-Run-Network-Blackhole-Port
ドキュメントパラメータ
-
Protocol – 必須。プロトコル。指定できる値は
tcp
およびudp
です。 -
Port – 必須。ポート番号。
-
TrafficType - オプション。トラフィックの種類。指定できる値は
ingress
およびegress
です。デフォルト:ingress
。 -
DurationSeconds – 必須。ネットワークブラックホールテストの継続時間 (秒単位)。
-
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト:True
。依存関係は、atd、dig、および iptables です。
以下はコンソールに入力できる文字列の例です。
{"Protocol":"tcp", "Port":"8080", "TrafficType":"egress", "DurationSeconds":"60", "InstallDependencies":"True"}
AWSFIS-Run-Network-Latency
tc ツールを使用して、ネットワークインターフェイスにレイテンシーを追加します。AWSFIS-Run-Network-Latency
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-Network-Latency
ARN
arn:aws:ssm:region::document/AWSFIS-Run-Network-Latency
ドキュメントパラメータ
-
Interface - オプション。ネットワークインターフェース。デフォルト:
eth0
。 -
DelayMilliseconds - オプション。遅延 (ミリ秒単位) 。デフォルトは 200 です。
-
DurationSeconds – 必須。ネットワーク遅延テストの継続時間 (秒単位)。
-
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト:True
。依存関係は、atd、dig、および tc です。
以下はコンソールに入力できる文字列の例です。
{"DelayMilliseconds":"200", "Interface":"eth0", "DurationSeconds":"60", "InstallDependencies":"True"}
AWSFIS-Run-Network-Latency-Sources
特定のソースへのトラフィックまたは特定のソースからのトラフィックのためのツール tc を使用してネットワークインターフェイスにレイテンシーとジッタを追加します。AWSFIS-Run-Network-Latency-Sources
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-Network-Latency-Sources
ARN
arn:aws:ssm:region::document/AWSFIS-Run-Network-Latency-Sources
ドキュメントパラメータ
-
Interface - オプション。ネットワークインターフェース。デフォルト:
eth0
。 -
DelayMilliseconds - オプション。遅延 (ミリ秒単位) 。デフォルトは 200 です。
-
JitterMilliseconds - オプション。ジッタ (ミリ秒単位)。デフォルトは 10 です。
-
Sources – 必須。ソースはカンマで区切ります。指定できる値は、IPv4 アドレス、IPv4 CIDR ブロック、ドメイン名、
DYNAMODB
、およびS3
です。DYNAMODB
またはS3
を指定した場合、これは現在のリージョンのリージョナルエンドポイントにのみ適用されます。 -
TrafficType - オプション。トラフィックの種類。指定できる値は
ingress
およびegress
です。デフォルト:ingress
。 -
DurationSeconds – 必須。ネットワーク遅延テストの継続時間 (秒単位)。
-
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト:True
。依存関係は、atd、dig、 jq および tc です。
以下はコンソールに入力できる文字列の例です。
{"DelayMilliseconds":"200", "JitterMilliseconds":"15", "Sources":"S3,www.example.com,72.21.198.67", "Interface":"eth0", "TrafficType":"egress", "DurationSeconds":"60", "InstallDependencies":"True"}
AWSFIS-Run-Network-Packet-Loss
tc ツールを使用してネットワークインターフェイスへのパッケージの損失を追加します。AWSFIS-Run-Network-Packet-Loss
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-Network-Packet-Loss
ARN
arn:aws:ssm:region::document/AWSFIS-Run-Network-Packet-Loss
ドキュメントパラメータ
-
Interface - オプション。ネットワークインターフェース。デフォルト:
eth0
。 -
LossPercent - オプション。パケット損失の割合。デフォルトは 7% です。
-
DurationSeconds – 必須。ネットワークパケット損失テストの継続時間 (秒単位)。
-
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます。デフォルト:True
。依存関係は、atd、dig、および tc です。
以下はコンソールに入力できる文字列の例です。
{"LossPercent":"15", "Interface":"eth0", "DurationSeconds":"60", "InstallDependencies":"True"}
AWSFIS-Run-Network-Packet-Loss-Sources
特定のソースへのトラフィックまたは特定のソースからのトラフィックのためのツール tc を使用してネットワークインターフェイスへのパッケージの損失を追加します。AWSFIS-Run-Network-Packet-Loss-Sources
アクションタイプ (コンソールのみ)
aws:ssm:send-command/AWSFIS-Run-Network-Packet-Loss-Sources
ARN
arn:aws:ssm:region::document/AWSFIS-Run-Network-Packet-Loss-Sources
ドキュメントパラメータ
-
Interface - オプション。ネットワークインターフェース。デフォルト:
eth0
。 -
LossPercent - オプション。パケット損失の割合。デフォルトは 7% です。
-
Sources – 必須。ソースはカンマで区切ります。指定できる値は、IPv4 アドレス、IPv4 CIDR ブロック、ドメイン名、
DYNAMODB
、およびS3
です。DYNAMODB
またはS3
を指定した場合、これは現在のリージョンのリージョナルエンドポイントにのみ適用されます。 -
TrafficType - オプション。トラフィックの種類。指定できる値は
ingress
およびegress
です。デフォルト:ingress
。 -
DurationSeconds – 必須。ネットワークパケット損失テストの継続時間 (秒単位)。
-
InstallDependencies - オプション。値が
True
の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます。デフォルト:True
。依存関係は、atd、dig、 jq および tc です。
以下はコンソールに入力できる文字列の例です。
{"LossPercent":"15", "Sources":"S3,www.example.com,72.21.198.67", "Interface":"eth0", "TrafficType":"egress", "DurationSeconds":"60", "InstallDependencies":"True"}
例
実験テンプレートの例については、「事前設定された AWS FIS SSM ドキュメントを実行する」を参照してください。
チュートリアルの例については、「インスタンス上で CPU ストレスを実行する」を参照してください。
トラブルシューティング
次の手順を使用して、問題のトラブルシューティングを行います。
SSM ドキュメントを使用して問題のトラブルシューティングを行います
https://console.aws.amazon.com/systems-manager/
で AWS Systems Manager コンソールを開きます。 -
ナビゲーションペインの [Node Management (ノード管理)] で、[Run Command (コマンドを実行)] を選択します。
-
[コマンド履歴] タブでは、フィルターを使用してドキュメントの実行場所を特定します。
-
コマンドの ID を選択して、詳細ページを開きます。
-
インスタンスの ID を選択します。各ステップの出力とエラーを確認します。