で Systems Manager SSMドキュメントを使用する AWS FIS - AWS フォールトインジェクションサービス

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

で Systems Manager SSMドキュメントを使用する AWS FIS

AWS FIS は、 AWS Systems Manager SSM エージェントおよび AWS FIS アクション を通じてカスタム障害タイプをサポートしますaws:ssm:send-command。一般的な障害挿入アクションの作成に使用できる事前設定済みの Systems Manager SSMドキュメント (SSM ドキュメント) は、 AWSFIS- プレフィックスで始まるパブリック AWS ドキュメントとして使用できます。

SSM エージェントは、Amazon EC2インスタンス、オンプレミスサーバー、または仮想マシン () にインストールして設定できる Amazon ソフトウェアですVMs。これにより、これらのリソースは Systems Manager で管理できるようになります。エージェントは Systems Manager からのリクエストを処理し、リクエストに指定されたとおりにそれらを実行します。独自のSSMドキュメントを含めてカスタム障害を挿入したり、Amazon が所有するパブリックドキュメントの 1 つを参照したりできます。

要件

SSM エージェントがターゲットに対してアクションを実行する必要があるアクションについては、以下を確認する必要があります。

  • エージェントがターゲットにインストールされていること。SSM エージェントは、一部の Amazon マシンイメージ () にデフォルトでインストールされますAMIs。それ以外の場合は、インスタンスに SSM エージェントをインストールできます。詳細については、「 AWS Systems Manager ユーザーガイド」のEC2「インスタンス用の SSM エージェントを手動でインストールする」を参照してください。

  • Systems Manager にはインスタンスでアクションを実行する権限がありません。IAM インスタンスプロファイルを使用してアクセス権を付与します。詳細については、「 ユーザーガイド」の「Systems Manager のインスタンスIAMプロファイルを作成する」および「インスタンスプロファイルをインスタンスにアタッチするAWS Systems Manager 」を参照してください。 IAM EC2

aws:ssm:send-command アクションを使用します

SSM ドキュメントは、Systems Manager がマネージドインスタンスで実行するアクションを定義します。Systems Manager には、事前設定済みのドキュメントが多数含まれていますが、独自のドキュメントを作成することもできます。独自のSSMドキュメントの作成の詳細については、「 ユーザーガイド」の「Systems Manager ドキュメントの作成AWS Systems Manager 」を参照してください。SSM ドキュメント全般の詳細については、「 ユーザーガイド」の「 AWS Systems Manager ドキュメントAWS Systems Manager 」を参照してください。

AWS FIS は、事前設定されたSSMドキュメントを提供します。事前設定されたSSMドキュメントは、 AWS Systems Manager コンソールのドキュメント で表示できますhttps://console.aws.amazon.com/systems-manager/。コンソールで AWS FIS、事前設定されたドキュメントから選択できます。詳細については、「事前設定済み AWS FISSSMドキュメント」を参照してください。

実験で AWS FIS SSMドキュメントを使用するには、 aws:ssm:send-commandアクションを使用できます。このアクションは、ターゲットインスタンスで指定されたSSMドキュメントを取得して実行します。

実験テンプレート内で aws:ssm:send-command アクションを使用する場合は、以下を含むアクションの追加パラメータを指定する必要があります。

  • documentArn – 必須。SSM ドキュメントの Amazon リソースネーム (ARN)。

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

  • documentVersion - オプション。実行するSSMドキュメントのバージョン。

Systems Manager コンソールまたはコマンドラインを使用して、 SSM ドキュメントの情報 (ドキュメントのパラメータを含む) を表示できます。

コンソールを使用して SSMドキュメントに関する情報を表示するには
  1. で AWS Systems Manager コンソールを開きますhttps://console.aws.amazon.com/systems-manager/

  2. ナビゲーションペインで、[ドキュメント] を選択します。

  3. ドキュメントを選択し、[Details (詳細)] タブをクリックします。

コマンドラインを使用して SSMドキュメントに関する情報を表示するには

SSM describe-document コマンドを使用します。

事前設定済み AWS FISSSMドキュメント

実験テンプレートの aws:ssm:send-commandアクションで、事前設定された AWS FISSSMドキュメントを使用できます。

要件
  • が提供する AWS FIS事前設定済みSSMドキュメントは、以下のオペレーティングシステムでのみサポートされています。

    • Amazon Linux 2023、Amazon Linux 2、Amazon Linux

    • Ubuntu

    • RHEL 7、8、9

    • CentOS 8、9

  • が提供する AWS FIS事前設定済みSSMドキュメントは、 EC2インスタンスでのみサポートされます。オンプレミスサーバーなど、他のタイプのマネージドノードではサポートされていません。

これらのSSMドキュメントをECSタスクの実験で使用するには、対応する を使用しますAmazon ECSアクション。たとえば、aws:ecs:task-cpu-stress アクションは AWSFIS-Run-CPU-Stress ドキュメントを使用します。

AWSFIS-Run-CPU-Stress

stress-ng ツールを使用してインスタンスにCPUストレスを実行します。AWSFIS-Run--Stress CPUSSMドキュメントを使用します。

アクションタイプ (コンソールのみ)

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 - オプション。ターゲットCPU負荷の割合。0 (負荷なし) から 100 (全負荷) です。デフォルトは 100 です。

  • InstallDependencies - オプション。値が True の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト: True。依存関係は stress-ng です。

以下はコンソールで入力できる文字列の例です。

{"DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Disk-Fill

インスタンスのルートボリュームにディスク容量を割り当てて、ディスクフル障害をシミュレートします。AWSFIS-Run-Disk-Fill SSMドキュメントを使用します。

この障害を挿入する実験が手動または停止条件によって停止された場合、 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。依存関係は、atdfallocate です。

以下はコンソールに入力できる文字列の例です。

{"DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-IO-Stress

stress-ng ツールを使用して、インスタンスに対して IO ストレスを実行します。AWSFIS-Run-IO-Stress SSMドキュメントを使用します。

アクションタイプ (コンソールのみ)

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 SSMドキュメントを使用します。

アクションタイプ (コンソールのみ)

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 SSMドキュメントを使用します。

アクションタイプ (コンソールのみ)

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 SSMドキュメントを使用します。

アクションタイプ (コンソールのみ)

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。依存関係は、atddig、および iptables です。

以下はコンソールに入力できる文字列の例です。

{"Protocol":"tcp", "Port":"8080", "TrafficType":"egress", "DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Network-Latency

tc ツールを使用して、ネットワークインターフェイスにレイテンシーを追加します。AWSFIS-Run-Network-Latency SSMドキュメントを使用します。

アクションタイプ (コンソールのみ)

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。依存関係は、atddig、および tc です。

以下はコンソールに入力できる文字列の例です。

{"DelayMilliseconds":"200", "Interface":"eth0", "DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Network-Latency-Sources

特定のソースへのトラフィックまたは特定のソースからのトラフィックのためのツール tc を使用してネットワークインターフェイスにレイテンシーとジッタを追加します。AWSFIS-Run-Network-Latency-Sources SSMドキュメントを使用します。

アクションタイプ (コンソールのみ)

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アドレス、IPv4CIDRブロック、ドメイン名、、DYNAMODBおよび ですS3DYNAMODB または S3 を指定した場合、これは現在のリージョンのリージョナルエンドポイントにのみ適用されます。

  • TrafficType - オプション。トラフィックの種類。指定できる値は ingress および egress です。デフォルト: ingress

  • DurationSeconds – 必須。ネットワーク遅延テストの継続時間 (秒単位)。

  • InstallDependencies - オプション。値が True の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます (まだインストールされていない場合)。デフォルト: True。依存関係は、atddigjq および 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 SSMドキュメントを使用します。

アクションタイプ (コンソールのみ)

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。依存関係は、atddig、および tc です。

以下はコンソールに入力できる文字列の例です。

{"LossPercent":"15", "Interface":"eth0", "DurationSeconds":"60", "InstallDependencies":"True"}

AWSFIS-Run-Network-Packet-Loss-Sources

特定のソースへのトラフィックまたは特定のソースからのトラフィックのためのツール tc を使用してネットワークインターフェイスへのパッケージの損失を追加します。AWSFIS-Run-Network-Packet-Loss-Sources SSMドキュメントを使用します。

アクションタイプ (コンソールのみ)

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アドレス、IPv4CIDRブロック、ドメイン名、、DYNAMODBおよび ですS3DYNAMODB または S3 を指定した場合、これは現在のリージョンのリージョナルエンドポイントにのみ適用されます。

  • TrafficType - オプション。トラフィックの種類。指定できる値は ingress および egress です。デフォルト: ingress

  • DurationSeconds – 必須。ネットワークパケット損失テストの継続時間 (秒単位)。

  • InstallDependencies - オプション。値が True の場合、ターゲットインスタンスに必要な依存関係が、Systems Manager によってンストールされます。デフォルト: True。依存関係は、atddigjq および 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 ドキュメントに関する問題のトラブルシューティングを行うには
  1. で AWS Systems Manager コンソールを開きますhttps://console.aws.amazon.com/systems-manager/

  2. ナビゲーションペインの [Node Management (ノード管理)] で、[Run Command (コマンドを実行)] を選択します。

  3. [コマンド履歴] タブでは、フィルターを使用してドキュメントの実行場所を特定します。

  4. コマンドの ID を選択して、詳細ページを開きます。

  5. インスタンスの ID を選択します。各ステップの出力とエラーを確認します。