はじめに
AWS のアップデートでAWS Fault Injection Simulator(AWS FIS)に新たな実験が追加されていました。
EC2のルートボリュームのdisk full状態をシミュレートできるようです。
AWS FISについては公式ドキュメントを参照ください。
試す
実際に実験テンプレートを作成し、実験を行って確認してみます。
前提
- EC2インスタンス(t2.micro)にアタッチされているEBSに対し、ディスク容量が90%となった場合を想定した実験を行う
- ディスク容量はCloud Watch Agentを導入し、モニタリングする
実験テンプレートの作成
実験テンプレートは「AWS FIS」→「実験テンプレートの作成」を選択して作成します。
アクションの設定
- Disk Full実験のアクションタイプは「SSM」、ドキュメントは「aws:ssm:send-command/AWSFIS-Run-Disk-Fill」となります。
- その他パラメータは以下です。
- Document ARN :ドキュメントのARN、自動入力されている。
- Document Parameters:ドキュメントに渡すパラメータ。下記のパラメータをjsonで記載する。
- DurationSeconds:負荷をかける時間
- InstallDependencies:必要な依存関係をinstallするか
- Percent:ルートボリュームに何%までの負荷をかけるか
- Document Version :ドキュメントのバージョン。無記入でOK
- Duration:SSM Commandをモニタする期間
{"DurationSeconds":"600", "InstallDependencies":"True","Percent":"90"}
ターゲットの設定
上記アクションを作成すると、「Instance-Target-1」というターゲットが作成されていると思います。
「ターゲットの編集」から、負荷をかけるインスタンスを選択します。
ターゲットメソッドをリソースIDとし、対象のインスタンスIDを選択しました。
後はロールを自動作成し、実験テンプレートを作成します。
実験の実施
AWS FISのコンソールから実験を開始できます。
上記で作成した実験テンプレートを選択し、「実験を開始」を押下します。
実験開始後、CloudWatchを確認すると90%に到達していることが分かります。
約10分後、実験が終了しメトリクス値が元に戻っていました。
おわりに
簡単ですが、追加された実験を試してみました。
EC2ルートボリュームのディスクフル状態を確認したい場合は利用したいと思います。