LoginSignup
1
2

More than 3 years have passed since last update.

AWS Fault Injection Simulator のSystemsManagerの実験を試してみた

Last updated at Posted at 2021-03-26

概要

AWSからカオスエンジニアリングサービス「AWS Fault Injection Simulator」の中の
SystemsManagerを利用した実験を実施してみたいと思います。

ざっくり、AWS FISについてのおさらい

利用可能リージョン

大阪と中国の2つのリージョンを除く全てで利用可能です。

料金

使用したアクション分ごと

実験可能なサービスとアクション

サービス アクション
EC2 起動
停止
終了
ECS コンテナインスタンスのドレインステータスへの変更
コンテナインスタンスのドレインとは
EKS ノードグループインスタンスの削除
RDS フェイルオーバー
再起動
SystemsManager CPU負荷
タスク終了
メモリ負荷
ネットワーク遅延
フォールトインジェクションアクション inject-api-internal-error
inject-api-throttle-error
inject-api-unavailable-error
アクションを待つ wait

実験開始

今回は、SystemsManagerを利用した実験をやってみたいと思いますが、
細かいところはチュートリアル等々で記載されているため割愛してあります。

前提条件

ターゲットインスタンスにSSMエージェントがインストールされて利用可能になっていること

参考

実験テンプレートの作成

マネコンで「実験テンプレートを作成」を選択します。
説明、事前に作成したIAMロールを選択します。

アクション

名前を入力し、アクションタイプから
「AWSFIS-Run-Network-Latency」を選択する
ターゲットはAWSFISが自動で作成されたものを選択する

documentArnは、変更なし
documentParametersに以下を入力(入力値の説明は後述)


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

documentVersionは、何も入力しない
durationは、「5」を入力して、保存ボタンを押します。

awsfis_003.png
AWSFIS-Run-Network-Latencyのパラメータ説明
サービス アクション デフォルト
DelayMillisecond インターフェースに追加する遅延(ミリ秒単位) 200
インターフェース 遅延するインターフェース eth0
DurationSeconds ネットワーク遅延テストの期間(秒単位) 60
InstallDependencies trueに設定すると、SystemsManagerは必要な依存関係をターゲットインスタンスにインストールします true
参考

ターゲット

AWS FISが自動的に作成したターゲットがあるため、そちらを編集します。
名前はそのままで、リソースタイプに「aws:ec2:instance」が選択されていることを確認します。
ターゲットメソッドで、リソースIDを選択し、ターゲットにするインスタンスIDを設定、
選択モードはすべてのままで、保存ボタンを押します。

awsfis_004.png

停止条件、タグは何も設定せずに実験テンプレートの作成を押します。

実験開始

実験を開始し、しばらく待ちます。

awsfis_005.png
awsfis_018.png

実験中のPing画面

ネットワークが遅延しているのが確認出来ます。

awsfis_010.png
awsfis_011.png

実験停止

次に、実験を停止の挙動をみてみたいと思います。

実験テンプレート一覧へ戻り、実験テンプレートを選択し、実験を開始します。
実験が開始されたら、アクションの「実験の停止」を選択します。

awsfis_006.png

実験中のPing画面

ネットワークの遅延が発生していることが確認できました。
その後、停止を実行して、少し遅れて止まったことが確認出来ました。

awsfis_012.png

実験テンプレートの更新

次に「duration」の値を変更した場合にどのような挙動をするのか見てみたいと思います。
「duration」を変更するため、テンプレートを更新します。

アクションの「更新」を選択
アクションのセクションから、該当のアクションを編集します。
durationを「5」から「10」に変更して、保存、テンプレートの更新を押します。

awsfis_013.png

実験の再開

再度、実験を開始してみます。
ステータスが「pending」から、「Completed」になったら、実験終了です。

awsfis_014.png
awsfis_015.png

実験中のPing画面

ネットワークの遅延が発生するタイミングは、
durationが「5」と「10」の場合で体感的に違いは感じませんでした。

awsfis_010.png
awsfis_011.png

所感

自前で実装しているようなところがAWSのマネージサービスを利用して試験が可能となり、
かつAWSへの申請も不要?となるのであれば、利用用途はあるのではないかと思いました。

今後も色々な機能が追加されるとのことなので、引き続き、追っていきたいサービスだと思いました。

誰かの参考になれば幸いです。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2