祝★AWS Fault Injection Simulator


昨年のre:Inventで発表された中で個人的に注目していたサービス、「AWS Fault Injection Simulator(以降、FISと記載)」がリリースされました。

What is "AWS Fault Injection Simulator"

一言で言えば、マネージドなカオスエンジニアリングサービスです。

EC2を落としたり、RDSをフェイルオーバーさせたり、OSにコマンドを送って負荷をかけたりといったことが実現可能です。

Get Started(ハンズオン的チュートリアル)(*1)も用意されているので、設定方法は割愛します。
ここでは、あくまで個人的に感じるFISの導入メリットを記載したいと思います。

デメリット(?)

その前に、先立ってデメリット。
「追加コストがかかる」
この一点だけだと思います。FISはアクション時間に対しコストがかかります(*2)。
$0.10 per action-minute
ざっと見る限り、ほとんどのアクションはAPIやスクリプトで実現できそうなので、自前でもよく似たことは実現できそう。

メリット

ここからが本題。
以下のような利点が挙げられます。

再実行が容易

テストシナリオはテンプレートとして保存可能です。
テンプレートを指定して、簡単に再実行可能です。
億劫になりがちな障害テストを簡単に実行できることが、品質の向上につながります。

テスト対象のコントロール

リソースIDやタグなどで、簡単にテスト対象を定義することが可能です。

セキュア

障害訓練を実行するために必要となるIAMポリシーは、強い権限になりがちです。
FISではAssume Roleの機構を使った権限の譲渡を、ユーザー側で作る必要なく実現できます。

実行履歴の管理

過去のテスト実施記録をコンソールなどで簡単に閲覧できます。
これは、ガバナンス構築の面で非常に強力なツールになります。

(必要に応じて)後片付け

テスト後の環境ロールバック処理なども設定しておくことが可能です。

まとめ

メリットを眺めて、そんなの昔から自前実装でやっているよ!って方もおられるかも知れません。
確かに、冒頭でも書いたとおり、自前でほぼ同じことは実現可能です。
または、すでにカオスエンジニアリングサービスを使って実現している方も一定数おられると思います。(実は自分自身も)
ただ、事前の知識がなくとも、これらのテストが行えるようになったことは、カオスエンジニアリングがさらに普及する上で、非常にいいサービスではなかろうかと思っています。
デメリットとして書いた料金の十分元を取れるサービスではないかと思っています。

Well-Architected Frameworkでも推奨されるカオスエンジニアリング、是非お試しいただければと思います!

参照

(*1) https://docs.aws.amazon.com/fis/latest/userguide/getting-started.html
(*2) https://aws.amazon.com/jp/fis/pricing/