タダです.
AWS CLI で ECS Fargate の AutoScaling 設定をしているのですが,都度調べていたりしたのでよく使うコマンドをまとめておきます.
AutoScaling ポリシーを定義・更新する
AutoScaling ポリシーを定義・更新する時のコマンドとしてput-scaling-policy
を使います.ECS の AutoScaling は CPU,メモリ,ターゲットグループごとのリクエスト数を追跡してスケーリングのトリガーにできます.下記のはターゲットグループごとのリクエスト数をベースにしています.そして,AutoScaling のポリシーを参照するには describe-scaling-policies
を使い,誤って作ってしまったポリシーを削除するには delete-scaling-policy
を使います.
※定義・更新 aws application-autoscaling put-scaling-policy \ --service-namespace ecs --scalable-dimension ecs:service:DesiredCount \ --resource-id service/クラスター名/サービス名 \ --policy-name ポリシー名 \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration file://config.json ※参照 aws application-autoscaling describe-scaling-policies --service-namespace ecs ※削除 aws application-autoscaling delete-scaling-policy --policy-name ポリシー名 --scalable-dimension ecs:service:DesiredCount --resource-id service/クラスター名/サービス名 --service-namespace ecs
なお,put-scaling-policy
で指定しているconfig.json
は次のような定義をいれます.
{ "TargetValue": 1000.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ALBRequestCountPerTarget", "ResourceLabel": "app/ELB 名/xxx/targetgroup/ターゲットグループ名/xxx" }, "ScaleOutCooldown": 60, "ScaleInCooldown": 60 }
関連情報
スケジューリングで AutoScaling のスケールアウト・スケールインを設定する
AutoScaling をスケジュール設定を入れたい場合があります.特定のイベントやメディア露出が分かっているような時に予めコンテナを増やしたいと言った要求向けの作業です.スケールアウトさせたい時間とスケールインさせたい時間でput-scheduled-action
を使ってMinCapacity
の値を変更するスケジュールを登録しておく設定になっています.なお,cron
で指定する時間は UTC 時間です.スケーリングの設定の参照はdescribe-scheduled-actions
を使い,削除にはdelete-scheduled-action
を使います.
※スケールアウト aws application-autoscaling put-scheduled-action \ --service-namespace ecs \ --resource-id service/クラスター名/サービス名 \ --scheduled-action-name スケジューリングの名前 \ --schedule "cron(00 10 ? * * *)" \ --scalable-dimension ecs:service:DesiredCount \ --scalable-target-action MinCapacity=4,MaxCapacity=10 ※スケールイン aws application-autoscaling put-scheduled-action \ --service-namespace ecs \ --resource-id service/クラスター名/サービス名 \ --scheduled-action-name スケジューリングの名前 \ --schedule "cron(00 13 ? * * *)" \ --scalable-dimension ecs:service:DesiredCount \ --scalable-target-action MinCapacity=2,MaxCapacity=10 ※スケジュールアクションの参照 aws application-autoscaling describe-scheduled-actions --service-namespace ecs ※削除 aws application-autoscaling delete-scheduled-action \ --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/クラスター名/サービス名 \ --scheduled-action-name スケジューリングの名前
関連情報
まとめ
小ネタですが,ECS Fargate の AutoScaling 設定に関するコマンドについて都度調べていたのをまとめておきたくて記事にしました.