見出し画像

ECS スケジュールによるスケーリング

毎月決まった日時にスケーリングを行いたかったのでApplication Auto Scalingを使ったスケーリング方法についてメモ
*AutoScaling ポリシーが事前に定義されていることを前提とします

スケジュールアクションの確認

aws application-autoscaling describe-scheduled-actions \
 --service-namespace ecs

スケジュールアクションの設定

スケールアウト

aws application-autoscaling put-scheduled-action \
--service-namespace ecs \
--schedule 'cron(0 0 1 * ? *)' \
--timezone 'Asia/Tokyo' \
--scheduled-action-name '{スケジュールアクションの名前}' \
--resource-id 'service/{クラスター名}/{サービス名}' \
--scalable-dimension 'ecs:service:DesiredCount' \
--scalable-target-action MinCapacity=3

*毎月1日 00:00にタスク最小数を3に変更

スケールイン

aws application-autoscaling put-scheduled-action \
--service-namespace ecs \
--schedule 'cron(0 0 3 * ? *)' \
--timezone 'Asia/Tokyo' \
--scheduled-action-name '{スケジュールアクションの名前}' \
--resource-id 'service/{クラスター名}/{サービス名}' \
--scalable-dimension 'ecs:service:DesiredCount' \
--scalable-target-action MinCapacity=2 

*毎月3日 00:00にタスク最小数を2に変更

スケジュールアクションの削除

aws application-autoscaling delete-scheduled-action \
--service-namespace ecs \
--scheduled-action-name '{スケジュールアクションの名前}' \
--resource-id 'service/{クラスター名}/{サービス名}' \
--scalable-dimension ecs:service:DesiredCount

この記事が気に入ったらサポートをしてみませんか?