#はじめに
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台削除するアラームを作成し、それに基づいてインスタンスの数を増減させるシンプルポリシーを実践したいと思います。
CloudWatchサービスより「アラーム」、「アラームの作成」を選択
「メトリクスの選択」を選択
今回対象とするメトリクスをAutoScalingグループのCPU使用率とするため、「EC2」「AutoScalingグループ別」「CPUUtilization」を選択し、「メトリクスの選択」を選択
まず、CPU使用率が70%超えた場合のアラームを作成します。
・条件:より大きい
・しきい値:70
・欠落データの処理:欠落データを不正(しきい値を超えている)として処理
※CPU使用率がいきなり上昇した場合、データが欠落する可能性があるため上記を選択しています。
アラーム状態になった場合に通知するSNSトピックの選択
**「既存のSNSトピック」もしくは「新しいトピックの作成」**を選択し、通知するメールアドレスを決定
・アラーム名:CPU-High
これでアラームが1つ作成されました。
同様の手順でCPU使用率が30%以下になったときのアラーム「CPU-Low」も作成します。
ここから作成したアラームをオートスケーリングポリシーに追加します。
事前に作成したAutoScalingグループを選択し、「自動スケーリング」より「ポリシーの追加」を選択
「CPU_high」アラームが発生した場合に、EC2を1台追加したいので、以下のように設定を行います。
・ポリシータイプ:シンプルなスケーリング
・スケーリングポリシー名:CPU_add
・CloudWatchアラーム:CPU_high
・アクションを実行:追加 1 キャパシティユニット
「CPU_Low」アラームが発生した場合に、EC2を1台追削除したいので、以下のように設定を行います。
・ポリシータイプ:シンプルなスケーリング
・スケーリングポリシー名:CPU_delete
・CloudWatchアラーム:CPU_Low
・アクションを実行:削除 1 キャパシティユニット
以上で、オートスケーリングポリシーの設定は完了です。
実際に負荷をかけて、EC2の数が増減するのを確認したいと思います。
オートスケーリンググループで起動されたEC2に接続し、以下のコマンドでCPUに負荷をかけます。
yes >> /dev/null &
そのまま5分ほど待ちます…
※1プロセスだと負荷がかかりにくいので、同じコマンドを実行し、5プロセスぐらい起動させると早く負荷がかかります。
CPU_Highがアラーム状態となりました。
この時AutoScalingグループの「アクティビティ履歴」を確認すると...
EC2インスタンスが2→3台に増加したことが確認できます。
そのまま更に5分ほど待つと…
EC2インスタンスが3→4台に増加したことが確認できます。
そのまま5分ほど待っても上限で決めた4台以上になることはありませんでした。
次にEC2インスタンスが削除されるのを確認するために、負荷コマンドを実行したプロセスを停止します。
以下のコマンドでプロセスを停止することができます。
top
(CPUに負荷をかけているプロセスIDを確認)
kill [プロセスID]
そのまま5分、10分と待つと…
CPU_Lowがアラーム状態となりました。
この時AutoScalingグループの「アクティビティ履歴」を確認すると...
EC2インスタンスが4→3→2台に減少したことが確認できました。
ハンズオンは以上となります。
#最後に
今回は3つの記事にわたって、「起動テンプレートの作成」「オートスケーリンググループの作成」「オートスケーリングポリシーの作成」を行いました。
慣れるまで設定するのが大変でしたが、一度作成すれば要領を掴むことができるので、実際に手を動かしてやってみることが大事ですね
この記事はAWS初学者を導く体系的な動画学習サービス「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com