はじめに
お久しぶりです。さつま揚げです。SAAの勉強頑張っています。
CLFの知識を頼りにSAAの問題を解いていると「知っているサービスなのに知らないことしだした」みたいな状況に遭遇します。
今日はEC2 Auto Scalingのスケーリングポリシーです。
じゃあ今回で覚えちゃいましょう!ということで記事を書いています。
問題をみて宇宙猫になってしまったワケ🙀
タイトルが物騒ですが、スケーリングポリシーの問題と遭遇したときに実際出た言葉です。
結論、EC2 Auto Scaling...というかAuto Scalingへの理解があまりにも浅かったから。
学習前のEC2 Auto Scaling知識
- EC2を増減できる
本当に書いてある通りのまま。
設定するだけで特に何の取り決めもなく勝手に増減してくれると思っていました。
CLFはこの知識だけでも合格できましたが、SAAは太刀打ちできません。
勉強します。
まずAuto Scalingをちゃんと知る
学習前のEC2 Auto Scalingの知識も恥ずかしいものでしたが、そもそもAuto Scalingに種類があることを知らなかったのが現実。
EC2 Auto Scaling(今回のやつ)
対象サービス:EC2
機能:スケーリングポリシーに従い、EC2インスタンスをスケーリングする
Application Auto Scaling
対象サービス:EC2以外
機能:Amazon ECSサービスやAmazon EMRクラスター、Amazon AuroraレプリカなどEC2以外のリソースを使用状況に応じて自動スケーリングする。
AWS Auto Scaling
対象サービス:EC2、EC2以外 (EC2インスタンスやECSサービス、Auroraレプリカなど)
機能:自動スケーリングと予測スケーリングの機能を持つ。予測スケーリングでは過去のメトリクス(CPUの使用率などのリソース使用状況)を分析して、その結果に基づいて今後の利用量を予測し適切なシステム利用状況になるよう管理する。
1つしかないと思っていたAuto Scalingでしたが実は3種類ありました!
知らなかった!!
スケーリングポリシーとは
!! いつ・どうやって台数を増減させるかを決めるルール !!
EC2を増減させるのにも用途に合わせてルールを決めることができます。
まずは「いつ・どのような条件でAuto Scalingを実行するか」を定義します。
具体的には以下の条件が指定できます。
- 正常なインスタンス数を維持するように実行
- 手動でスケーリングを実行
- スケジュールを指定して実行(個人的にSAAでよく見かける!)
- CloudWatchのメトリクスに応じて自動実行
上記のうち、自動実行の場合はさらに以下のポリシータイプが設定可能になります。
このポリシータイプが今回の目玉、スケーリングポリシーです。
※例で記載するEC2インスタンスの前提は以下となっています。
動いている台数:2台
監視対象:CPU使用率
①シンプルスケーリング
1つのスケーリングポリシーに基づいて実行
例)「CPU > 70%」なら「2台追加」
→「CPU使用率が80%」になったら「4台」になる
②ステップスケーリング
Amazon CloudWatchアラームの設定に応じた一連のスケーリングポリシーに基づいて実行
例)「CPU使用率が70%~80%」なら「1台追加」
「CPU使用率が80%~90%」なら「3台追加」
「CPU使用率が90%以上」 なら「5台追加」
→「CPU使用率が75%」になったら「3台」になる
③ターゲットトラッキングスケーリング
特定のメトリクスのターゲット値を維持するように実行
例)「CPU 50%を維持したい」と設定する
→AWSが勝手に増減をしてくれる!
④予測スケーリング
過去のAmazon CloudWatch履歴データから予測データを作成し、その予測に基づいて実行
※ 事前に履歴データが作成されている必要があります。
例)先週から毎日12時にアクセス急増
↓
AWSが11:50には増やしておいてくれる
次見たときは怒らない!簡単まとめ
-
EC2のAuto Scalingには用途に沿ったルールを設定することができる!!
手動やスケジュールを組んで設定をしたり、Cloud Watchのメトリクスに応じて自動実行できる。 -
自動実行の場合はスケーリングポリシーを設定できる!!
①シンプルスケーリング:設定は簡単だけど詳細設定はできない
②ステップスケーリング:柔軟な設定ができる
③ターゲットトラッキングスケーリング:設定楽+運用の負荷も少ない!
④予測スケーリング:未来予知みたい
これできっと!次は自信を持って回答できるはず...!
前の記事同様、学びながらまとめているので、もし解釈にズレがあればぜひ教えてください!
同じように学習中の方の参考になれば嬉しいです😉