3
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?

More than 3 years have passed since last update.

【初心者】AWS AutoScalingについて(ハンズオン③:オートスケーリングポリシーの作成)

Posted at

#はじめに

AWS AutoScaling・・EC2を処理負荷に合わせて、増やしたり減らしたりすることができる便利なサービス
[公式サイト](https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html"AWS AutoScaling")

こちらは前回の記事の続きとなっています。
【初心者】AWS AutoScalingについて(ハンズオン①:起動テンプレートの作成)
【初心者】AWS AutoScalingについて(ハンズオン②:オートスケーリンググループの作成)

#オートスケーリングポリシーの種類

2021/02時点で3つのポリシーがあります。公式サイト
どのようにスケーリングさせたいかでポリシーを選択します。

■ターゲットポリシー
 特定のメトリクスのターゲット値に基づいて、グループの現在の容量を増減させる
 例:「CPU使用率60%と指定」(※数の調整はオートスケーリングが自動で実施)

■ステップポリシー
 複数段階でのインスタンスの追加、削除を設定し、
 例:「平均CPU使用率60%超えたら1台追加、80%超えたらもう1台追加」

■シンプルポリシー
 1 つのスケーリング調整値に基づいて、グループの現在の容量を増減させる
 例:「平均CPU使用率が80%超えたら、2台追加」

#ハンズオン③:オートスケーリングポリシーの作成

前回作成したオートスケーリンググループにオートスケーリングポリシーを追加します。
今回はオートスケーリンググループで作成されたEC2のCPU使用率が70%超えたらEC2を1台追加、30%より小さくなったらEC2を1台削除するアラームを作成し、それに基づいてインスタンスの数を増減させるシンプルポリシーを実践したいと思います。

1.png

CloudWatchサービスより「アラーム」、「アラームの作成」を選択
2.png

「メトリクスの選択」を選択

3.png
4.png
5.png
今回対象とするメトリクスをAutoScalingグループのCPU使用率とするため、「EC2」「AutoScalingグループ別」「CPUUtilization」を選択し、「メトリクスの選択」を選択
6.png
まず、CPU使用率が70%超えた場合のアラームを作成します。

・条件:より大きい
・しきい値:70
・欠落データの処理:欠落データを不正(しきい値を超えている)として処理
※CPU使用率がいきなり上昇した場合、データが欠落する可能性があるため上記を選択しています。

7.png
アラーム状態になった場合に通知するSNSトピックの選択
**「既存のSNSトピック」もしくは「新しいトピックの作成」**を選択し、通知するメールアドレスを決定

8.png
アラーム名と説明(任意)を指定

・アラーム名:CPU-High

これでアラームが1つ作成されました。
同様の手順でCPU使用率が30%以下になったときのアラーム「CPU-Low」も作成します。

11.png
ここから作成したアラームをオートスケーリングポリシーに追加します。

事前に作成したAutoScalingグループを選択し、「自動スケーリング」より「ポリシーの追加」を選択
12.PNG

「CPU_high」アラームが発生した場合に、EC2を1台追加したいので、以下のように設定を行います。

・ポリシータイプ:シンプルなスケーリング
・スケーリングポリシー名:CPU_add
・CloudWatchアラーム:CPU_high
・アクションを実行:追加 1 キャパシティユニット

13.PNG「CPU_Low」アラームが発生した場合に、EC2を1台追削除したいので、以下のように設定を行います。

・ポリシータイプ:シンプルなスケーリング
・スケーリングポリシー名:CPU_delete
・CloudWatchアラーム:CPU_Low
・アクションを実行:削除 1 キャパシティユニット

以上で、オートスケーリングポリシーの設定は完了です。
実際に負荷をかけて、EC2の数が増減するのを確認したいと思います。

オートスケーリンググループで起動されたEC2に接続し、以下のコマンドでCPUに負荷をかけます。

yes >> /dev/null &

そのまま5分ほど待ちます…
※1プロセスだと負荷がかかりにくいので、同じコマンドを実行し、5プロセスぐらい起動させると早く負荷がかかります。

14.PNG

CPU_Highがアラーム状態となりました。
この時AutoScalingグループの「アクティビティ履歴」を確認すると...

15.PNG
EC2インスタンスが2→3台に増加したことが確認できます。
そのまま更に5分ほど待つと…

16.PNG
EC2インスタンスが3→4台に増加したことが確認できます。
そのまま5分ほど待っても上限で決めた4台以上になることはありませんでした。

次にEC2インスタンスが削除されるのを確認するために、負荷コマンドを実行したプロセスを停止します。
以下のコマンドでプロセスを停止することができます。

top 
(CPUに負荷をかけているプロセスIDを確認)
kill [プロセスID] 

そのまま5分、10分と待つと…
17.PNG
CPU_Lowがアラーム状態となりました。
この時AutoScalingグループの「アクティビティ履歴」を確認すると...

18.PNG
EC2インスタンスが4→3→2台に減少したことが確認できました。

ハンズオンは以上となります。
#最後に

今回は3つの記事にわたって、「起動テンプレートの作成」「オートスケーリンググループの作成」「オートスケーリングポリシーの作成」を行いました。
慣れるまで設定するのが大変でしたが、一度作成すれば要領を掴むことができるので、実際に手を動かしてやってみることが大事ですね:hugging:

この記事はAWS初学者を導く体系的な動画学習サービス「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com

3
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
3
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?