こんにちは!
アイレットに入社して1年が経っていたことにさっき気がついたヤマダです。歳を取るごとに1年間を早く感じるようになってきました。このペースだと40歳になる頃には盆と正月が一緒に来てしまいそうです。

この記事は「もくもく会ブログリレー」 13日目 の記事です。

私はアイレットに入社してから業務でも本格的にクラウドサービスに触れることができる様になりました!そこで1年経った今、AWSを勉強し始めていた頃に触った思い出深いサービスである「AWS FIS」をもう一度楽しんで触りたいなと思った次第です🙇‍♂️

初めて触った時の話は下記の雲勉LTで熱く語っているのでよければ見てください。

https://www.youtube.com/watch?v=fkoDafe6VnI

AWS FISとは

AWS Fault Injection Service(FIS)はアプリケーションのパフォーマンス、オブザーバビリティ、回復性を向上させるために、フォールトインジェクション実験を実行するためのフルマネージドサービスです。

公式の文言をお借りしましたが、簡単に言うとAWSでフォールトインジェクション実験ができるサービスです。フォールトインジェクションというのはシステムに意図的に障害や負荷をかけて動作をテストすることです。例えばAWSで言うとAWS Auto ScalingやAmazon RDSに負荷をかけてサービスに影響がないかをテストするといえばイメージしやすいでしょうか。

以前私がAWS FISを初めて触った時はAuto Scaling Groupに負荷をかけた時に実際に自動でインスタンスが増えるかどうかを検証しました。AWS FISを利用することでGroup内のインスタンスにそれぞれ負荷をかける必要がなく、ボタンひとつでCPU負荷がかかって非常に愉快でした。

今回の目的

今回は上記の初めて触った時と同じ状況をより簡単にテンプレートから作成してみたいと思います🧪

  • なるべく楽で簡単に初心に帰る
  • 実験を最大限楽しむ
  • ボタンひとつでCPUに負荷がかかる快感を思い出す

こんな感じで進めていきます。

実験

環境準備

Auto Scalingの環境が必要なので、AWS Hands-on for Beginnersから「Amazon EC2 Auto Scaling スケーリング基礎編」を途中まで進めてその環境を利用します。

Auto Scaling Groupは以下のような設定にしました。

希望:1
最小:1
最大:2
条件:CPU使用率70%

この後作成するAWS FISの実験でEC2インスタンスが2台に増えたら成功です。

AWS FISを触る

サービスページ

懐かしきAWS FISのページ…と、言いたいところですが初めて触った時と全然違います。なんなら雲勉LTで触った時とも違う様な気がしなくもないです🤔

とにかく簡単に初心に帰ることが目的なので「シナリオからテストを作成」を活用させていただきます。

実験テンプレートの作成

めちゃくちゃちょうどいいシナリオがありました。Auto Scalingの挙動を確認したいので「EC2ストレス:CPU」を選択してテンプレートを作成していきます。

説明や名前はデフォルトで入力されていました。とりあえずそのままでいいかなと思ったのでここはノータッチです。

次にアクションの設定です。デフォルトではいくつか負荷をかけてくれそうなアクションが設定されていましたが、今回は1つで問題ないので必要のないアクションは削除します。

ではターゲットとアクションの詳細をそれぞれ見てみます。

ターゲットはデフォルトだと存在するインスタンスをすべて狙っているような気がしたのでリソースIDから指定しました。ここで注意点ですが、おそらくSSMの設定がされているインスタンスしか表示されていないようです。これはAWS FIS負荷をかける際にEC2と接続するために必要な設定ですね。

アクションはパッと見変更する部分はありませんでした。私はCPU使用率70%以上を条件としたので、”LoadPercent”が80になっているのでクリアできそうです。ここで設定できる負荷は安定しないので、確実にスケールアウトが発火するように+10%くらいを目安にするといいと思います。

サービスアクセスは「実験テンプレート用の新しいロールを作成する」を選択します。

最後にタグですが、なぜかデフォルトでは入力できない文字列が入っていました。すぐに消す予定なのでタグは削除して、実験テンプレートを作成します。

これで実験テンプレートの作成は完了です!

実験!!!

ここまできたら後は「ボタンひとつでCPU負荷」を体感するだけです。ポチッと「実験を開始」を押しちゃいましょう👆

少し様子を見ていると…

Auto Scalingが動いてインスタンスが2つに増えていました!!!
やっぱりボタンひとつでCPU負荷最高〜〜〜!!!🎉🎉🎉

最後に

無事に初心に帰ることができました。あの頃はこの作業でも詰まっては調べてを繰り返していたなと懐かしくなりました。まだまだ分からないことの方が多い私ですが、これからも楽しむ心を忘れずに精進したいと思います🦀

最後にあからさまに負荷がかかった美しいグラフをパシャリ。
ここまで読んでいただきありがとうございました!

明日の記事は、みちのすけさんの「クラウド時代は CRUD ではなく CQRS で考えよう」です。クラウド時代っていう文言がありったけの夢を感じさせてくれますね!
みんな、絶対見てくれよな!👊👊👊