AWS FIS のスポットインスタンスの中断が EC2 コンソールから簡単に実行出来るようになりました

2022.10.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

AWS Fault Injection Simulator (AWS FIS) は AWS 上での様々な障害を発生させることが出来るカオスエンジニアリングのためのサービスです。
これまで AWS FIS を使ったスポットインスタンスの中断を行うことが出来ていましたが、今回のアップデートで EC2 コンソール上から直接実験の実行が出来るようになりました。

いままで

今までは以下のような手順を踏む必要がありました。

  • 実験テンプレートの作成
    • アクションの追加
    • ターゲットの定義
  • テンプレートを使った実験の開始

FIS に慣れていないと最初の準備段階で少し億劫になってしまったり、あるいは繰り返しターゲット定義を行う際に冗長な作業と感じることがありました。

EC2 コンソールからテンプレート作成&実行が出来るように

これからは EC2 コンソールのスポットリクエストメニューからインスタンスを指定して「中断を開始」アクションを使うことが出来るようになりました。
実行すると以下のような流れになります。

指定したインスタンスをターゲットに実験テンプレートの自動作成と実行を行う画面へ遷移します。
あとは「Initiate Interruption」を選択するだけで、特に面倒な設定は不要です。

スポットインスタンス中断アクションが実行されましたね。

フリートでは中断されたインスタンスは終了しキャパシティをキープする設定にしていたので新しいインスタンスが立ち上がっていることが確認出来ます。

単一のスポットインスタンスを選択する必要がある

利用にあたってですが、まずフリートではなくインスタンスを選択する必要があります。
フリート選択時は「中断を開始」アクションが選択出来ません。

「高度な実験を作成する」というアクションメニューがありますが、こちらは AWS FIS コンソールへ遷移するだけの機能となっています。

また、フリートではなくインスタンスを選択した場合でも、複数インスタンス選択は出来ません。
同様にメニューが操作できなくなります。

複数のインスタンスをターゲットにしたり、条件を特定の AZ のインスタンス全てなどと指定したい場合は実験テンプレートの条件機能を使ったりターゲットを追加したり、カスタマイズする必要があります。
単一インスタンスをサクッと中断実験させる機能だと用途を理解しておくのが良さそうですね。

本日時点では大阪リージョンでは使えない

また、本日時点では東京リージョンでは利用可能ですが、大阪リージョンでは利用が出来ませんでした。

というよりも本日時点では AWS FIS 自体が大阪リージョンでまだ利用が出来ないのです。こちらは FIS が大阪リージョンで利用出来るようになれば使えるようになりそうかなというところですね。

さいごに

本日は AWS FIS のスポットインスタンスの中断が EC2 コンソールから簡単に実行出来るようになったので使ってみました。

RDS の AZ 間のフェイルオーバーをマネジメントコンソールから実行すること多いと思いますが、あのような感じでサクッと使えました。
一瞬 FIS の存在が見え隠れはしますが、あまり意識せずにいい感じの設定で使い始めることが出来るので FIS を使ったことがないよという方でも問題なく利用出来ると思います。

今回使って思ったのが FIS の統合はなかなか直感的で使いやすいなと感じました。
スポットインスタンスに関わらず EC2 や ENI の一覧から障害を一時的に発生させる機能があると、お手軽にテストしやすくて良いなと感じました。