[アップデート] AWS Fault Injection Simulator のタグ指定によるリソース指定の上限数が Service Quotas から緩和申請出来るようになりました

2023.01.20

いわさです。

AWS Fault Injection Simulator (FIS) では擬似的に障害を発生させることが出来ますが、実はこれまでは障害を発生させることの出来るリソース数に制限がありました。
そのため、タグを指定して複数インスタンスを大規模に停止させたい場合などに実験が失敗することがありました。

今回のアップデートでこの上限をサービスクォータから緩和申請することが出来るようになりました。

こちらを使って従来は実行出来なかった台数を実験してみます。

以前まで

以前は最大 5 つのリソースが上限で、かつサービスクォータから緩和申請することが出来ませんでした。
今回上限緩和出来るようになりましたが、デフォルトの上限は 5 のままです。

まずは上限に達したときの挙動を見てみましょう。

以下のようにタグを使って複数の EC2 インスタンスをまとめて停止する実験テンプレートを作成します。

そして、ターゲットの EC2 インスタンスが 6 台以上になるように起動しておきます。

先程のテンプレートを使って実験を開始してみます。
以下のいようにエラーメッセージが表示され、開始した実験は中断されるはずです。

The experiment has failed.
Number of resources per experiment target cannot exceed 5

上限緩和出来るようになった

これが、アップデートによってサービスクォータから上限緩和出来るようになりました。
試してみましょう。

Service Quotas メニューから AWS services を選択し AWS Fault Injection Simulator を選択します。

次のように調整可能な項目がいくつか存在することが確認出来ます。
以前は調整出来る項目がありませんでした。

なお、この上限はアクションごとにクォーターの調整になっているのですが、AWS FIS で利用出来る全てのアクションがサービスクォータでサポートされているわけではありません。ご利用のアクションが対象かどうか事前にサービスクォータメニューから確認するようにしてください。

今回は調整可能なアクションである EC2 の停止を行います。

変更前とデフォルトが 5 になっていますので、ここでは 10 でリクエストを送信してみました。
なお、この説明内容からすると、タグで指定された時のリソース数が対象のようです。

私が試した時にはリクエスト送信後即クォータが増加しました。

最後に、先程失敗した実験テンプレートを再実行してみると、今度は上限に関するエラーが発生せずに次のように全てのインスタンスが期待どおり停止されました。

リソース直接指定で 6 つ以上指定するとどうなるか

FIS の実験テンプレートではタグで指定する以外に複数リソースを直接指定することが出来ます。
サービスクォータの対象項目の説明に「タグによる〜」の記述があったので、直接指定の場合に影響があるのかも確認してみました。

次のように 7 つの EC2 インスタンスを指定します。

しかし、実験テンプレートを作成しようとしたところこのようにエラーとなりました。
この結果から、サービスクォータで緩和出来る対象は、説明分のとおりタグで指定した場合と解釈して良さそうですね。

さいごに

本日は AWS FIS でタグを使って指定出来る対象リソースの上限緩和が出来るようになったので試してみました。

5 つという上限があるのを実は知らなかったのですが結構少ないですね。
大規模なワークロードで障害テストしようとすると今までこのあたりの上限が障壁になりそうなので FIS の採用を見送った人とかいるかもしれないですね。
今回上限緩和出来るようになったので、上限によって諦めていた方は再度検討されてみては如何でしょうか。