ナスです。
Auto Scaling のスケーリングポリシーを見ると、ステップで何段階かに分けて設定できることを知ったので、とりあえずやってみました。
設定してみたスケーリングポリシー
Auto Scaling Group の CPU 負荷が60〜80%未満なら1台追加する、80%以上なら2台追加する、という内容です。また CPU 負荷が 10% 以下になったら 1 台削除する、という内容です。
まずは EC2 インスタンスに stress コマンドで CPU 負荷を 99% くらいにする
最初は EC2 インスタンスを 1 台の状態で開始したので、当然アラームに引っかかります。結果どうなったかというと、2 台一気に増えました。
スケーリングポリシーでステップと書かれていますが、実際にはただの if 文だと思った方がいいですね。
stress プロセスを止めました
これで CPU 負荷が 10% 以下になります。どうなったかというと、1 台削除されました。
そのまま放っていると、1 台ずつ EC2 インスタンスが削除されていきました。
まぁこんな感じです。今までのオンプレミスでのサーバ運用の考え方や運用方法でやっていると、本当に AutoScaling で痛い目にあいます。EC2 インスタンスは死んでもいいように設計しましょう。DB は AutoScaling 外に置きましょう。ログも CloudWatch Logs に出力しましょう。これで一安心です。
元記事はこちら
「スケーリングポリシーの動きを確かめてみた [cloudpack OSAKA blog]」