概要

  • メンテナンス等の理由により、ECS タスク数をゼロにしたり、元の数に戻したい時があると思います。今回は、1,2,3 であっという間にECS タスク数をUp/Downする方法を紹介します。CloudShell を使用して、aws cli を実行します。

 

#1 AWSコンソールからCloudShell を起動する

  • AWSコンソールから直接起動できます。[CloudShell] を押すだけです。
  • CloudShell の詳しい使用方法は、こちらのドキュメントを参照ください。

 

#2 現在のタスク数を調べる

  • CloudShell から aws cli を実行し、現在のタスク数を調べます。
  • aws ecs describe-services コマンドを使用し、desiredCount, pendingCount, runningCountを確認します。
[cloudshell-user@ip-10-2-11-51 ~]$ CLUSTER=クラスタ名
[cloudshell-user@ip-10-2-11-51 ~]$ SERVICE=サービス名
[cloudshell-user@ip-10-2-11-51 ~]$ aws ecs describe-services --cluster $CLUSTER --services $SERVICE --query 'services[].deployments[]' | grep -i count
        "desiredCount": 2,
        "pendingCount": 0,
        "runningCount": 2,

 

  • AWSコンソールから確認すると、以下の画面になります。

 

#3 タスク数をUp/Downさせる

  • (1つ目のケースは)タスク数を 2 → 4 にアップします。aws ecs update-service コマンドを使用します。
[cloudshell-user@ip-10-2-11-51 ~]$ aws ecs update-service --cluster $CLUSTER --service $SERVICE --desired-count 4 > /dev/null
[cloudshell-user@ip-10-2-11-51 ~]$ aws ecs describe-services --cluster $CLUSTER --services $SERVICE --query 'services[].deployments[]' | grep -i count
        "desiredCount": 4,
        "pendingCount": 0,
        "runningCount": 2,
[cloudshell-user@ip-10-2-11-51 ~]$ aws ecs describe-services --cluster $CLUSTER --services $SERVICE --query 'services[].deployments[]' | grep -i count
        "desiredCount": 4,
        "pendingCount": 0,
        "runningCount": 4,

 

  • AWSコンソールから確認すると、以下の画面になります。

 

  • (2つ目のケースは)タスク数を 4 → 0 にダウンします。aws ecs update-service コマンドを使用します。
[cloudshell-user@ip-10-2-11-51 ~]$ aws ecs update-service --cluster $CLUSTER --service $SERVICE --desired-count 0 > /dev/null
[cloudshell-user@ip-10-2-11-51 ~]$ aws ecs describe-services --cluster $CLUSTER --services $SERVICE --query 'services[].deployments[]' | grep -i count
        "desiredCount": 0,
        "pendingCount": 0,
        "runningCount": 4,
[cloudshell-user@ip-10-2-11-51 ~]$ aws ecs describe-services --cluster $CLUSTER --services $SERVICE --query 'services[].deployments[]' | grep -i count
        "desiredCount": 0,
        "pendingCount": 0,
        "runningCount": 0,

 

  • AWSコンソールから確認すると、以下の画面になります。

 

 

参考資料

AWS Fargate のユーザーガイド

AWS CLI リファレンスの ECS セクション