AWS ECS: サービスの更新(新バージョンのデプロイ)
aws ecs update-serviceを使用してECSサービスに新しいタスク定義バージョンをデプロイします。ローリングデプロイと強制新デプロイのオプションを解説します。
ECS Operations
詳細な説明
ECSサービスの更新
aws ecs update-serviceコマンドは、既存のECSサービスを変更します。最も一般的な使用法は、タスク定義の新バージョンをデプロイすることです。ECSはデフォルトでローリングデプロイを実行します。
新しいタスク定義のデプロイ
aws ecs update-service \
--cluster production-cluster \
--service api-service \
--task-definition api-task:42
強制新デプロイ(同じバージョン)
aws ecs update-service \
--cluster production-cluster \
--service api-service \
--force-new-deployment
タスク定義が変更されていなくても、ECSにすべてのタスクを停止して再起動させます。以下の場合に便利:
- コンテナイメージタグ(
latest)が更新された - 新しいシークレットや設定を取得する必要がある
- タスクが不健全な状態にある
サービスのスケーリング
aws ecs update-service \
--cluster production-cluster \
--service api-service \
--desired-count 4
安定待機
aws ecs wait services-stable \
--cluster production-cluster \
--services api-service
サービスが安定状態(すべてのタスクが最新のタスク定義を実行)に達するまでブロックします。
ユースケース
ECS FargateまたはEC2サービスへの新アプリケーションバージョンのデプロイ、コンテナワークロードのスケーリング、ゼロダウンタイムローリングデプロイの実行、設定変更の反映のためのタスク再起動の強制。