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サービスへの新アプリケーションバージョンのデプロイ、コンテナワークロードのスケーリング、ゼロダウンタイムローリングデプロイの実行、設定変更の反映のためのタスク再起動の強制。

試してみる — AWS CLI Command Builder

フルツールを開く