Amazon Elastic Container Service (Amazon ECS) サービスにスケジュールされたスケーリングアクションを確認、管理したいです。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
サービスの自動スケーリングを使用して、特定の時間における Amazon ECS サービスの最小タスク数と最大タスク数をスケジュールします。Amazon ECS コンソールまたは AWS CLI を使用することで、サービスの自動スケーリングを設定できます。
AWS CLI を使用してスケジュールされたスケーリングアクションを設定するには、まず Amazon ECS サービスをスケーラブルターゲットとして登録する必要があります。Amazon ECS サービスにスケーラブルターゲットがあるかどうかを確認するには、次の describe-scalable-targets コマンドを実行します。
aws application-autoscaling describe-scalable-targets \
--service-namespace ecs \
--resource-id service/ecs-cluster/service-name
注: お使いのものでそれぞれ、ecs-cluster をクラスター名に、service-name をサービス名に置き換えます。
Amazon ECS サービスにスケーラブルターゲットがない場合は、次の register-scalable-target コマンドを実行してターゲットを追加します。
aws application-autoscaling register-scalable-target \
--service-namespace ecs \
--scalable-dimension ecs:service:DesiredCount \
--resource-id service/ecs-cluster/service-name \
--min-capacity 0 \
--max-capacity 0
注: お使いのものでそれぞれ、ecs-cluster をクラスター名に、service-name をサービス名に置き換えます。
Amazon ECS コンソールを使用し、スケジュールされたすべてのスケーリングアクションを確認、変更するには、次の手順を実行します。
- Amazon ECS コンソールを開きます。
- [サービスの自動スケーリング] タブを選択します。
- [スケジュールされたアクション] の [アクション] ドロップダウンリストで、[表示]、[編集]、[削除] のいずれかを選択します。
AWS CLI を使用して新しいスケジュールされたスケーリングアクションを作成するか、既存のスケジュールされたスケーリングアクションを変更するには、次の put-scheduled-action コマンドを実行します。
aws application-autoscaling put-scheduled-action \
--service-namespace ecs \
--scalable-dimension ecs:service:DesiredCount \
--resource-id service/ecs-cluster/service-name \
--scheduled-action-name action-name \
--scalable-target-action MinCapacity=minimum-count,MaxCapacity=maximum-count \
--schedule "schedule"
注: お使いのものでそれぞれ、ecs-cluster をクラスター名に、service-name をサービス名に、action-name をスケジュールしたアクション名に置き換えます。さらに、minimum-count を最小タスク数に、maximum-count を最大タスク数に、schedule を レート、cron、at 式のいずれかに置き換えます。
AWS CLI を使用してスケジュールされたアクションを確認するには、次の describe-scheduled-actions コマンドを実行します。
aws application-autoscaling describe-scheduled-actions \
--service-namespace ecs \
--resource-id service/ecs-cluster/service-name
注: お使いのものでそれぞれ、ecs-cluster をクラスター名に、service-name をサービス名に置き換えます。
AWS CLI を使用してスケジュールされたアクションを削除するには、次の delete-scheduled-action コマンドを実行します。
aws application-autoscaling delete-scheduled-action \
--service-namespace ecs \
--scalable-dimension ecs:service:DesiredCount \
--resource-id service/ecs-cluster/service-name \
--scheduled-action-name action-name
注: お使いのものでそれぞれ、ecs-cluster をクラスター名に、service-name をサービス名に、action-name をスケジュールしたアクション名に置き換えます。
Amazon ECS サービスでスケジュールしたアクションをすべて削除した場合は、そのサービスはスケーラブルターゲットとなり、登録解除できます。次の deregister-scalable-target コマンドを実行します。
aws application-autoscaling deregister-scalable-target \
--service-namespace ecs \
--resource-id service/ecs-cluster/service-name \
--scalable-dimension ecs:service:DesiredCount
注: お使いのものでそれぞれ、ecs-cluster をクラスター名に、service-name をサービス名に置き換えます。