💻

ECSタスクスケジューラのトラブルシューティング

2025/02/09に公開

この記事は

ECSタスクをタスクスケジューラから動作させる時に、うまくいかなかったことがあったので、解決までに何を確認したかをまとめました

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/scheduling_tasks.html

CloudWatchからメトリクスを確認

ECSタスクをタスクスケジューラから動作させる場合は、CloudWatchイベントルールを設定する必要がありますが、そのメトリクスからECSタスクの呼び出しに成功しているかどうかを確認できます。

https://repost.aws/ja/knowledge-center/ecs-scheduled-task-issues

**FailedInvocations ** データポイントが存在する場合は、ターゲットの権限に関連する問題がある可能性があります。EventBridge に ECS タスクを呼び出すための権限があることと、EventBridge AWS Identity and Access Management (IAM) ロールに必要な権限があることを確認してください。詳細については、「Amazon ECS EventBridge IAM ロール」を参照してください。

見事に呼び出しがされていませんでした。

CloudTrailを確認

イベント履歴からイベント名などで検索し、該当するログを確認します。

    "eventName": "RunTask",
    "awsRegion": "ap-northeast-1",
    "sourceIPAddress": "events.amazonaws.com",
    "userAgent": "events.amazonaws.com",
    "errorCode": "InvalidParameterException",
    "errorMessage": "Override for container named [コンテナ名] is not a container in the TaskDefinition."

私の場合、ContainerOverrideを使ってコンテナの実行コマンドを上書きし、任意のコマンドを実行するようにしていましたが、コンテナ名の指定が間違っていたため、起動に失敗していたようです。

https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerOverride.html

コンテナ名を修正したところ、無事に起動されることが確認できました。

SMARTCAMP Engineer Blog

Discussion