加藤がAuto Scalingについて話したよ。
参考にしたBlack Belt: Amazon EC2 Auto Scaling and AWS Auto Scaling
AWS Auto ScalingのBlackBeltで話していたことは以下の5つ(アジェンダから抜粋)
今回は1-3についてお伝えする。
AWS Auto Scalingとは、インスタンスやクラスタ等のキャパシティをいい感じに保ってくれるサービス
こちらで設定するのは一つだけ。「希望容量」を設定すること
AWS Auto Scalingがやってくれることは3つだけ
「希望容量と現実容量の差分監視」「スケールアウト」「スケールイン」
「希望容量と現実容量の差分監視」の動作定義を「スケーリングオプション」という。
「スケーリングオプション」は3種類ある。
動的スケーリング、予測スケーリング、スケジュールスケーリング。
動的スケーリングの設定方法は2種類ある。
しきい値か目標値。
しきい値を超えたらスケールアウトするか、目標値に達するまでスケールアウトし続けるか、といった違い。
例えば、前者は「CPU使用率が50を超えたら1台追加」後者は「CPU使用率を40に維持するのに必要なら1台追加」
予測スケーリングの設定方法は1つだけ。
2周間分のメトリクスを分析し、次の2日の需要を予測し、予測した結果でスケジュールして台数を増減する
スケジュールスケーリングの設定方法は2つある。
一回だけ、定期的な設定。cronみたいなもん。
MinCapacityかMaxCapacityか両方を指定して、それに応じて指定タイミングでスケールイン・スケールアウトする。
で、できることはわかったけどどれにすればいいの?という話しについて。
予測スケーリングと動的スケーリングをセットで使うのがおすすめ。
大まかなキャパシティ増減は予測スケーリングで対応できる。そのうえで実際の不可に対して不足した分を目標値設定で補充する。つまり、「予測の通り動かす」「ただしCPU利用率を40%に維持するのに必要なら1台追加」8割位は予測でカバーできそう。
ただ、これはEC2にしか使えない。予測スケーリングがEC2でしか使えないので。
EC2以外なら動的スケーリングだけを使う。