やさしいEC2 Auto Scaling

2019-07-17

EC2 Auto Scaling による動的なスケーリング

  • EC2を動的にスケーリングさせる場合、需要の増減に応じてスケールする方法を定義します。例えば、Auto ScalingグループのCPU使用率を約60%に維持する必要がある場合、このCPU使用率を満たす様にスケーリングするAuto Scalingグループを設定できます。

スケーリングポリシーのタイプ

  • Amazon EC2 Auto Scalingは、以下のタイプのスケーリングポリシーをサポートしています。(出典:Amazon EC2 Auto Scaling ユーザーガイド
    • Target tracking scaling – 特定のメトリクスのターゲット値に基づいて、グループの現在の容量を増減させます。これはサーモスタットで家の温度を管理する方法と似ています (温度を選択すれば、後はサーモスタットがすべてを実行する)。
    • Step scaling – アラーム超過のサイズに応じて変動する一連のスケーリング調整値 (ステップ調整値と呼ばれる) に基づいて、グループの現在の容量を増減させます。
    • Simple scaling – 1 つのスケーリング調整値に基づいて、グループの現在の容量を増減させます。
  • 色々と検討した結果、Target tracking scalingを選びました。理由は、簡単に設定できること、3つの選択肢の中で実現したいことと一番合うことでした。
  • 上記需要に応じてスケーリングさせるスケーリングポリシー以外に、手動でのスケーリング、スケジュールに応じたスケーリングの方法があります。

Target tracking scalingの設定方法

  • 今回は、ポリシーのターゲット値をCPU使用率50% に設定します。Auto Scalingはポリシーに設定したターゲット値をキープするようにインスタンスを増減させます。
  • スケーリングのポリシー設定はAuto Scalingグループのスケーリングポリシーを編集します。CPUの平均使用率であればデフォルトで準備されているため、アラームの作成は不要になります。この点もTarget tracking scalingが手軽に設定できるポイントの1つです。
  • この場合、自動でスケールインさせたくなければ、スケールインの無効化を設定します。
 

Auto Scalingのテスト

  • 対象のEC2に負荷を掛けます。CloudWatch からCPU使用率が50%を超えたことを確認しました。
 
  • Auto Scalingグループからインスタンス数が増えたことを確認します。設定したポリシーがちゃんと動いた時はやはり嬉しいものです。

AWS, EC2, ELB

Posted by takaaki