LoginSignup
4
3

More than 5 years have passed since last update.

【AWS】Auto Scaling スケジュール登録

Last updated at Posted at 2016-01-31

はじめに

AWSでEC2を利用する際、ほとんどの場合Auto Scaling を利用してスケールアウト・インを行い、無駄なコストを抑えつつ可用性を担保させるかと思います。
自分も例に漏れずAuto Scaling を利用しているのですが、最初の方はどういった内容でScaling Policy を作成すればいいかわからなかったので、これまでのアクセス数の推移から、一旦スケジューリングによってScalingさせることにしました。
Auto Scaling のスケジュールはコンソール画面からは変更ができず、CLIやAPIからしか変更できません。1
メモ程度ですが、CLIからスケジュールを登録・更新する方法を記載します。

前提

  • PutScheduledUpdateGroupActionの権限をユーザが保持していること。
  • Auto Scaling Group が既に作成されていること。
  • 今回は以下のようにinstance数を増減させる想定とします。
    2:00~6:30 ⇒ 2つ
    6:30~17:30 ⇒ 4つ
    17:30~2:00 ⇒ 6つ

変更手順

  • 深夜2時にinstance数を2つに設定
    aws autoscaling put-scheduled-update-group-action --auto-scaling-group-name [対象のオートスケーリンググループ名] --scheduled-action-name [任意のアクション名] --recurrence "0 17 * * *" --min-size 2 --max-size 6 --desired-capacity 2
    スケジュール登録するときに注意することは時刻がUTCであるということです。
  • 6時30分頃にinstance数を4つに増加
    aws autoscaling put-scheduled-update-group-action --auto-scaling-group-name [対象のオートスケーリンググループ名] --scheduled-action-name [任意のアクション名] --recurrence "15 21 * * *" --min-size 4 --max-size 6 --desired-capacity 4
    ここで6時15分(JST)にして設定しているのはinstanceの起動には時間を要するため、6時30分に4つinstanceが欲しい場合は、それより10分~15分程度前にinstance起動を開始させる必要があるためです。
  • 17時30分頃にinstance数を6つに設定
    aws autoscaling put-scheduled-update-group-action --auto-scaling-group-name [対象のオートスケーリンググループ名] --scheduled-action-name [任意のアクション名] --recurrence "15 8 * * *" --min-size 6 --max-size 6 --desired-capacity 6
    ここで17時15分(JST)にして設定しているのは先ほどと同じ理由です。
  • 設定の確認
    最後にちゃんと設定されているか確認します。
    aws autoscaling describe-scheduled-actions --auto-scaling-group-name [対象のオートスケーリンググループ名]

スケジュールの更新も同じaws autoscaling put-scheduled-update-group-actionコマンドで行います。

以上

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3