【GitHub Actions】ECS Deploy の無限待機問題

【GitHub Actions】ECS Deploy の無限待機問題

GitHub Actions で ECS デプロイを実行する際に、デプロイのステップが無限に待機し続ける問題の原因と解決策について。

GitHub Actions #AWS#Github#Github Actions

【GitHub Actions】ECS Deploy の無限待機問題

サムネイル

GitHub Actions で ECS デプロイを実行する際に、デプロイのステップが無限に待機し続ける問題の原因と解決策について。

更新日: 8/18/2025

発生した問題

ISSUE - 課題

aws-actions/amazon-ecs-deploy-task-definition アクションを使用したデプロイで以下の問題が発生しました。

  • Deploy to ECS ステップが 10 分以上実行され続ける
  • ECS コンソールではタスクが起動していない状態
  • ワークフローが完了せずにタイムアウトが発生

根本原因

CAUSE - 原因

wait-for-service-stability オプションが有効になっているため、ECS サービスが安定状態になるまで無限に待機していました。

以下の条件が揃うと無限待機が発生することを確認&切り分け

  • 正しくないイメージ URI でタスク定義が更新される
  • ECS タスクが正常に起動しない
  • サービスが安定状態にならない
  • wait-for-service-stability: true により待機が継続される

解決策

SOLUTION - 解決策

Service Stability Wait を無効化し、デプロイの確認を別ステップで実装します。

修正前のコード

- name: Deploy to ECS
  uses: aws-actions/amazon-ecs-deploy-task-definition@v1
  with:
    task-definition: task-definition.json
    service: my-service
    cluster: my-cluster
    wait-for-service-stability: true
    wait-for-minutes: 10

修正後のコード

- name: Deploy to ECS
  uses: aws-actions/amazon-ecs-deploy-task-definition@v1
  with:
    task-definition: task-definition.json
    service: my-service
    cluster: my-cluster
    wait-for-service-stability: false

- name: Verify Deployment
  run: |
    echo "ECS service updated successfully"
    aws ecs describe-services \
      --cluster my-cluster \
      --services my-service \
      --query 'services[0].{Status:status,TaskDefinition:taskDefinition}' \
      --output table

検索

検索条件に一致する記事が見つかりませんでした