☕️

ecspresso advent calendar 2020 day 16 - delete

2020/12/15に公開

Amazon ECS のデプロイツールである ecspresso の利用法をまとめていく ecspresso Advent calendar 16日目です。

ECS サービスを削除する delete コマンド

ecspresso delete は ECS サービスを削除します。

delete コマンドの実行例

$ ecspresso --config config.yaml delete
2020/12/15 07:01:08 nginx-service/ecspresso-demo Deleting service
Service: nginx-service
Cluster: ecspresso-demo
TaskDefinition: first-run-task-definition:8
Deployments:
   PRIMARY first-run-task-definition:8 desired:1 pending:0 running:1
Events:
2020/12/15 06:27:18 (service nginx-service) has reached a steady state.
...
Enter the service name to DELETE: nginx-service
2020/12/15 06:27:38 nginx-service/ecspresso-demo Service is deleted

delete コマンドを実行すると、確認のため削除するサービス名の入力を求められます。正しいサービス名を入力すると削除が実行されます。

サービス内でタスクが実行中の場合には、次のようなメッセージで失敗します。

2020/12/15 07:01:13 delete FAILED. failed to delete service:
InvalidParameterException: The service cannot be stopped while it is scaled above 0.

エラーメッセージの通り、サービスの削除前には事前にタスクをすべて終了する必要があります。ecspresso deploy --skip-task-definition --tasks 0 を実行してサービスの desiredCount を 0 に設定し、タスクが終了したのを確認後にサービスを削除してください。

delete コマンドのオプション

usage: ecspresso delete [<flags>]

delete service

Flags:
  --help           Show context-sensitive help (also try --help-long and --help-man).
  --config=CONFIG  config file
  --debug          enable debug log
  --color          enalble colored output
  --dry-run        dry-run
  --force          force delete. not confirm

--force

削除前にサービス名の確認入力を求めずに削除を実行します。スクリプトやCI/CDなどの非対話環境での実行にも使用できます。

サービスの削除は通常、ほぼ時間が掛からずに完了するため、--no-wait オプションはありません。


17日目は、AWS CodeDeploy と連携したデプロイについて説明します。

https://zenn.dev/fujiwara/articles/ecspresso-20201217

Discussion