発生した問題
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