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

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

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

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

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

要件

SSM Agent がターゲットに対して実行することになるアクションについては、次のことを確認する必要があります。

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 ドキュメントは、コンソールの https://console.aws.amazon.com/systems-manager/documents の [ドキュメント] で確認できます。 AWS Systems ManagerFIS AWS コンソールの事前設定済みドキュメントの中から選択することもできます。詳細については、「設定済みの AWS FIS SSM ドキュメント」を参照してください。

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. https://console.aws.amazon.com/systems-manager/ AWS Systems Manager でコンソールを開きます。

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

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

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

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

設定済みの AWS FIS SSM ドキュメント

実験テンプレートのアクションには、事前設定済みの AWS FIS SSM ドキュメントを使用できます。aws:ssm:send-command

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

    • Amazon Linux 2023、Amazon Linux 2、Amazon Linux

    • Ubuntu

    • RHEL 7、8、9

    • CentOS 7、8、9

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

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

AWSFIS-Run-CPU-Stress

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

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

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 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 ストレスを実行します。-run-IO-Stress SSM ドキュメントを使用します。AWSFIS

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

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 コマンドを使用して、インスタンス内の指定されたプロセスを停止します。-Run-Kill-Process SSM ドキュメントを使用します。AWSFIS

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

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 ツールを使用して、インスタンスに対してメモリストレスを実行します。-Run-Memory-Stress SSM ドキュメントを使用します。AWSFIS

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

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ツールを使用して、プロトコルおよびポートのインバウンドトラフィックまたはアウトバウンドトラフィックをドロップします。-Run-Network-Blackhole-Port SSM ドキュメントを使用します。AWSFIS

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

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 を使用してネットワークインターフェイスにレイテンシーとジッタを追加します。-Run-Network-Latency-Sources SSM ドキュメントを使用します。AWSFIS

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

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 です。依存関係は、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 アドレス、IPv4 CIDR ブロック、ドメイン名、DYNAMODB、および S3 です。DYNAMODB または 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. ナビゲーションペインの [ノード管理] で、[コマンドを実行] を選択します。

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

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

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