AWS Resilience Hub の Fault Injection Service 統合が CloudFormation によるデプロイではなくなっていた
いわさです。
AWS Resilience Hub ではアーキテクチャに関する耐障害向上レコメンデーション以外に「オペレーションに関するレコメンデーション」を受けることが出来ます。
それらのレコメンデーションは、アラームや SOP(Standard Operating Procedure:標準作業手順書)、故障注入実験テンプレートなどが存在しています。
このうち、故障注入実験テンプレートの実体は Fault Injection Service の実験テンプレートを指しています。
私の認識ではこれまで各オペレーションレコメンデーションの推奨事項をデプロイする際には Resilience Hub から CloudFormation テンプレート経由でデプロイされる認識だったのですが、今朝確認してみたところ直接 FIS 実験テンプレートを作成出来るようになっていました。いつからだろう。
2 ヶ月ほど前に Resilience Hub の Black Belt が公開されていたのですが、そちらのキャプチャでは CloudFormation でデプロイする画面になっているので割と最近なのかもしれないです。
AWS Resilience Hub Part 2 (実践編)【AWS Black Belt】 - YouTube より
ということで今回こちらの機能を使って実験テンプレートをデプロイし、レジリエンススコアが向上される様子を観察してみたので紹介します。
故障注入実験テンプレートに関するレコメンデーションを発生させる
FIS 実験テンプレートのレコメンドは使っている AWS サービスに依存して発生します。
例えば S3 のみのワークロードだと実験テンプレートのレコメンドはされないので、今回はシンプルに EC2 をワークロードに含めるようにしました。
アセスメントを実施しレコメンデーションを確認してみましょう。
アラームや SOP についてはこれまでと同様に「CloudFormation テンプレートを作成」ボタンが表示されます。これで推奨事項をデプロイする形ですね。
故障注入実験についてもレコメンデーションが生成されていました。
ただし、アラームや SOP と異なり CloudFormation テンプレートを作成ボタンが無いのですよ。これです。
ここで各アクションのリンクをクリックして推奨される実験の詳細画面に遷移出来ます。こちらを確認してみましょう。
見てみると「実験を開始する」ボタンが設置されています。これがおそらく新しいデプロイ方法なのかな。押してみましょう。
そうすると、AWS FIS コンソールに遷移し、実験テンプレート作成画面が開かれています。
CloudFormation ではなくてそのまま実験テンプレートを作成する感じですね。この機能、うまく統合されているようでして、対象のアクションやターゲットインスタンスなどは Resilience Hub の情報を引き継いでいます。なので基本的には入力値を変更せずにポチポチと次へボタンを押すだけで、対象アプリケーション用の実験テンプレートが作成出来ます。
確認してみると、こんな感じでターゲット EC2 が自動で指定されていることが確認できますね。
いくつか実験を行った後に再評価を行ってみました。これだけでアセスメント範囲に入ってくるのかな。
確認してみるとステータスが実装済みとなっていました。
ただ、上から3つの実験テンプレートを実装したのですよね。「aws:ec2:reboot-instances」についてはなぜか未実装のままでした。ちょっとこれは原因わからず。なんどか実験と再評価を行って経過を観察してみたいと思います。
なお、11 月のアップデートで概要タブのレジリエンススコアのチャート描画周りがアップデートされわかりやすくなったというアップデートがあったようです。[1]ちょっとリッチになっていました。
こちらのチャートでも、先程実装した実験テンプレートに基づいてレジリエンススコアの改善が確認出来ました。
さいごに
本日は AWS Resilience Hub の Fault Injection Service 統合が CloudFormation によるデプロイではなくなっていたので、(おそらく)新しいデプロイ方法を試してみました。
余計な CloudFormation スタックなしで、かつ Resilience Hub からシームレスに値が引き継がれる形で作成出来るので使いやすくなってました。
Resiience Hub どうなるのかなと思っていたのですが、最近も結構細かいアップデート入っていてちょっと安心しました。