昨年の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/