2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS FISでターゲット追跡スケーリング(CPU使用率)の挙動確認してみる。

Posted at

はじめに

このアップデートの検証をしてみたいな。と思いつつ、まだFIS(AWS Falt Injection Service)を触ったことがなかったので、今回は入門としてEC2のCPU負荷が上がっている状況をシュミレーションしてみようと思います。

Aurora DSQL now supports resilience testing with AWS Fault Injection Service
https://aws.amazon.com/jp/about-aws/whats-new/2025/08/aurora-dsql-resilience-testing-with-aws-fault-injection/

AWS FIS(Fault Injection Service)とは?

一言で言うと、耐障害性テストツールみたいです。

このツールを使い、意図的に障害を起こして、システムが障害時に正しく動くかを確認できる模様。

いわゆるカオスエンジニアリングのためのツールと考えればよさそう。

どんなテストができる?

ここに一覧がありました。

一つのテストを実験って呼ぶみたいですが、この実験を作成するときにアクションを指定することで、どのような障害を起こすかを指定できます。

image.png

料金は?

以下のページに記載があります。

基本は$0.10 per action-minute(1アクション・1分あたり)です。
また、レポート作成機能がありますが、これが1レポート$5の模様。

試してみます!

もう一つくらい記事を作りますが、今回は簡単にCPU使用率を対象にしたターゲット追跡スケーリングでAuto Scalingグループの動作確認をしてみます。

起動テンプレートの作成

適当な起動テンプレートを指定しておきます。

AWS FISはSSMとの通信が必要なので、今回はコスト面を考慮し、パブリックサブネットに配置する設定としました。

本来はNAT Gatewayまたは、VPCエンドポイントを使ってプライベートサブネットに配置すべきです。

パブリックサブネットに配置する場合、パブリックIPの自動割り当てを有効にしておく必要があります。

スクリーンショット 2025-09-02 5.04.53.png

あと、Auto Scalingグループ作成時に配置するAZと対応したVPCのセキュリティグループを指定する必要があります。(VPC IDを見て指定するの分かりづいらい)

Auto Scalingグループの作成

続いて、Auto Scalingグループも作っておきます。(抜粋して手順書いておきます)

先ほど作った起動テンプレートと、配置先のVPCとパブリックサブネットを指定します。

スクリーンショット 2025-09-02 5.10.21.png

グループサイズは1〜2台とし、平均CPU利用率が70%未満となるターゲット追跡スケーリングポリシーを作成し、完了です。

image.png

作成すると、1台起動してきます。

image.png

SSM Agentと通信が成功していることを確認するために、セッションマネージャーを確認します。

接続ボタンがアクティブになっていれば、成功です!
スクリーンショット 2025-09-02 5.19.00.png

またAuto Scalingグループ経由で起動したEC2には以下のようなタグがついているので、覚えておきます。
(このタグ値で、FISの試験対象を指定します。)

image.png

実験テンプレートの作成

どのような試験をするか?を指定する実験テンプレートを作成していきます。

今回はAWS FISのトップページにある、シナリオからテストを作成から作成していきます。

image.png

シナリオライブラリからEC2 ストレス:CPUを選択します。

image.png

ここはそのまま。

image.png

ここからシナリオを指定していきます。

左側に3つのアクションがあります。
このキャプチャ上からは分かりませんが、CPU使用率を5分周期で80->90->100%としていくシナリオです。

今回は簡単な動作確認なので80%のアクション以外は削除しておきます。

image.png

次にターゲットを指定します。

特定のインスタンスIDを指定することもできますが、今回は下記のようにタグの状態で指定するようにしました。

スクリーンショット 2025-09-02 5.28.50.png

サービスロールは新規作成。

image.png

レポート設定や、ログの設定をしておきます。

また、停止条件ですが今回は5分で勝手に終了にするので、指定なしとしました。

レポートは追加料金($5)かかります!

image.png

実験してみる!

では、実験してみます。

CPU使用率をみるため、対象のインスタンス上でtopをしておきます。

image.png

作成した実験テンプレートを選択し、実験を開始から開始します。
スクリーンショット 2025-09-02 5.43.08.png

stress-ng-cpuってプロセスがCPU負荷を上げている!
image.png

3分待つと、ターゲット追跡スケーリングポリシー作成時に作ったアラームが発砲します。

image.png

そして、アラーム発報をトリガーに、スケールアウトが行われました!
うまく実験できましたね。

スクリーンショット 2025-09-02 5.53.05.png

なお、スケールインはスケールイン用のアラームの閾値が15ポイントになっているので、15分後に行われます。

スクリーンショット 2025-09-02 6.00.58.png

実験レポート

実験が完了すると、レポートがS3に格納されています。

これで5ドル…。

image.png

以下みたいな簡単なレポートでした。

image.png

image.png

image.png

まとめ

簡単にAWS FISの動きを確認してみました。

次は別のアクションでFISでないとできないような実験をしてみたいと思います!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?