[アップデート]Auto Scalingのスケジュールに基づくスケーリングにローカルタイムゾーンが設定可能になりました

Auto Scalingのスケジュール指定にローカルタイムゾーンを指定することができるようになりました!
2021.03.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、コンサルティング部の鈴木(純)です。

Amazon EC2 Auto Scalingでスケジュールに基づくスケーリングにローカルタイムゾーンが設定することができるようになりました。

これまではUTCのみ設定が可能でしたが、今回のアップデートにより日本時間などのタイムゾーンを選択することができるようになりました。

どこが変わったのか

Auto Scaling グループではCronや毎日、毎週といった単位のスケジュールに基づいてスケーリングする機能がありました。これまでCronで指定できる時間はUTCのみとなっていましたが、ここがタイムゾーンを指定してアクションを定義できるようになります。

現時点(2021/03/17)ではCLIとSDKのみ利用可能となっていますが、近日中にマネージメントコンソールとCloudFormationでもサポートされる予定のようです。

何が嬉しい?

当然ですが日本時刻でスケジュールを設定したい場合、UTCを日本時刻に考え直してCronを設定するという作業が不要となるのが嬉しいですね。

もう一点はかなりケースが限られるかと思いますが、以下の記事のような「UTC指定のCronでは日本時刻の月末0時から9時を指定できない」という制限から開放されるのも嬉しい点だと思います。

実行してみる

コンソール未対応のため、今回はCLI(version:2.1.30)にアップデートして動作を確認してみます。予めEC2を起動するように設定したAuto Scaling グループ(ec2-autoScaling-group)を用意しました。

--time-zoneの指定はCLIリファレンスにこちらを確認してと書いてあったので、日本を探して設定してみます。(TZ database nameの Asia/Tokyo を設定)

Cronは月曜日から金曜日の15時に実行されるように設定しました。Cronの指定は[Minute] [Hour] [Day_of_Month] [Month_of_Year] [Day_of_Week]の5項目です。

aws autoscaling put-scheduled-update-group-action --auto-scaling-group-name ec2-autoScaling-group \
                                                  --scheduled-action-name local-time-zone-action \
                                                  --recurrence "0 15 * * MON-FRI" \
                                                  --time-zone "Asia/Tokyo" \
                                                  --min-size 1 \
                                                  --max-size 2 \
                                                  --desired-capacity 2 \

このCLIを実行してみると、コンソールにはしっかりと日本時刻(午後3時)で実行される日時が表示されていました。

実行結果を確認してみるとしっかりと日本時刻の15時(午後3時)に起動されていることが確認できました。

日本時刻の月末も指定してみる

ついでにUTCでは指定できなかった日本時刻の月末8時cron(0 8 L * *)に起動するアクションを作成してみると、ちゃんと月末指定の時刻が入ってくれました。

まとめ

地味なアップデートではありますが、Cronを定義するときの時差を考慮しなくていいのは楽でいいですね!。コンソールからも設定できるようになるみたいなので期待して待ちましょう。

次はCloudWatch Eventsのルールも同じようにタイムゾーン指定できると嬉しいですね。