AWSは、カオスエンジニアリング・アズ・ア・サービスの次のリリースを発表した。フォールトインジェクションサービス(FIS)は、多数のAWSサービスにわたってフルマネージドのカオス実験を提供する。このサービスには、一般的な実世界のイベントを模倣した中断を生成するビルド済みのテンプレートが含まれている。APIを介してCIパイプラインに統合できる。
最近re:Invent 2020で発表されたこのサービスは、2021年内に完全に利用できるようになる予定である。発表の時点で、FISはEC2、Elastic Kubernetes Service (EKS)、ECS、RDSに対する実験の実行をサポートしている。自動ロールバックと特定の条件に達したときに停止する機能により、本番環境での実験を安全に実行できる。
このサービスは、リソース、API、サービス、地理的な場所のパフォーマンスを徐々に同時に低下させていくことをサポートしている。中断を生成するために、事前に作成済みのテンプレートが提供されている。中断には、サービス遅延、データベースエラー、CPUの増加、メモリの増加などがある。
一部のアクションでは、サーバに追加のエージェントやソフトウェアをインストールする必要はない。ただし、CPU増加やメモリ増加などのインスタンスレベルの障害では、SSMエージェントをインストールする必要がある。インジェクトされたアクションは、実際の同等のものをほぼ模倣する条件を作成するように設計されている。たとえば、CPU使用率アクションは実際にCPUリソースを消費する。APIスロットルアクションは、コントロールプレーンレベルでリクエストを調整する。
含まれているビルド済みテンプレートに加えて、AWS System Managerを使用してカスタム障害タイプを作成できる。実験にアクセスして実行する権限を持つユーザとリソースを制御するために、FISはIAMと完全に統合されている。これは、どのリソースとサービスが影響を受ける可能性のあるかを制限および制御するためにも使用できる。
実行中の実験のモニタリングは、CloudWatchまたはEventBridgeを介したサードパーティのモニタリングツールを介して可能である。コンソールとAPIはどちらによっても、実行されたアクションを可視化することができる。実験が完了すると、実行されたアクション、満たされた停止条件、および定常状態と比較したメトリックの詳細を確認できる。
有料サービスあるいはオープンソースのどちらとしても利用できる同様のサービスがいくつかある。例えば、AWSのオープンソースライブラリであるAWSSSMChaosRunnerである。このライブラリは、AWS System Manager SendCommandを使用して、EC2とECSの両方への障害のインジェクションを容易にする。現在利用可能な障害のインジェクションには、インバウンド/アウトバウンドコールへの遅延の追加、パケットのドロップ、メモリへの影響、ディスクスペースの消費、およびCPU使用率がある。
Amazonは、AWSSSMChaosRunnerを活用して、Prime Videoサービスの新機能をテストおよび検証した。新機能はPrime Videoプロファイルであり、サービスは分散システムの一部としてである。タイムアウト、再試行、サーキットブレーカーの設定を検証するために、AWSSSMChaosRunnerからDependencyLatency攻撃が使用された。
AWSは、カオス実験の実行ができるようになる多数のSSMドキュメントもオープンソース化している。これには、EC2インスタンスのランダムな停止、EBSボリュームのデタッチ、CPUストレスの導入などがある。カオスエンジニアリングのその他の代替手段には、オープンソースのChaos Monkeyや有料サービスのGremlinがある。