はじめに
この記事ではAWSが提供するAWS Fault Injection Serviceを学習していく内容となっています。
主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば修正していく想定です。
AWS Fault Injection Serviceとは
まずはサービス概要を見ていきましょう。AWS Fault Injection Service(以下、FIS)とはなんでしょうか。AWSの公式サイトには下記のように表現されています。
コントロールされた実験で回復性とパフォーマンスを改善する
耐障害性テストツール – AWS フォールトインジェクション Service – AWS
AWS FISはAWS で実行されているアプリケーションの回復力を向上させるためのマネージドサービスです。FIS を使用すると、本番環境に近い形で障害を発生させることで、アプリケーションの挙動をテストできます。また、AWS Resilience Hubから利用できる機能です。
FIS には、独自の用語がいくつかあります。
- 実験:FIS を使用して障害を注入する一連のアクションです
- 実験テンプレート:実験の設定を定義したものです
- アクション:実験中に実行される個々の操作です
- ターゲット:アクションの対象となるリソースです
- 停止条件:実験を停止する条件です
- ロールバック:実験前の状態に戻すことです
実験?テンプレート?アクション?ターゲット?何がなんだかわからないので1つずつ見ていきましょう。
実験
実験は、FIS を使用して障害を注入する一連の操作です。実験は、実験テンプレートに基づいて実行されます。
実験テンプレート
実験テンプレートは、実験の設定を定義したものです。実験テンプレートには、アクション、ターゲット、停止条件などが含まれます。
アクション
アクションは、実験中に実行される個々の操作です。FIS では、さまざまなアクションが用意されています。たとえば、EC2 インスタンスを停止させたりできます。
ターゲット
ターゲットは、アクションの対象となるリソースです。ターゲットには、EC2 インスタンス、RDS インスタンス、API Gateway などを指定できます。
停止条件
停止条件は、実験を停止する条件です。停止条件には、CloudWatch アラームを指定できます。たとえば、CPU 使用率が 90% を超えたら実験を停止する
といった条件を設定できます。
ロールバック
ロールバックは、実験前の状態に戻すことです。FIS では、実験前にスナップショットを作成することで、ロールバックを簡単に行うことができます。
料金面
AWS Fault Injection Service (FIS) の料金は、実際に使用した分だけを支払う従量課金制です。初期費用や最低料金はありません。
FIS の料金は、主に以下の要素で構成されます。
-
実験レポート
- 実験レポートは、実験のアクションと、お客様が提供する CloudWatch ダッシュボードからのアプリケーションの応答をまとめたものです
- FIS の実験レポートの料金は、1レポートあたり 5 ドルです
-
アクションの実行時間
- アクションの実行時間に対して課金されます
- 1アクションにつき1分ごとに0.1ドルの料金が発生します
FIS を使用して実行したアクションによっては別途、料金が発生します。
- たとえば、EC2 インスタンスを停止するアクションを実行した場合、EC2 インスタンスの料金が発生します
料金の詳細については、AWS の公式 Web サイトをご確認ください。
まとめ
AWS Fault Injection Service (FIS) は、AWS 上で実行するアプリケーションの回復力テストを行うためのサービスです。
FIS でできること
- 本番環境に近い形で障害を発生させることができます
- 障害発生時のアプリケーションの挙動をテストできます
- テスト結果を分析して、アプリケーションの弱点を見つけ、改善できます