Amazon ECS の停止したタスクのエラーを表示する - Amazon Elastic Container Service

Amazon ECS の停止したタスクのエラーを表示する

タスクの開始に問題がある場合、アプリケーションエラーまたは設定エラーのためにタスクが停止している可能性があります。例えば、タスクを実行するとタスクが PENDING ステータスを表示して消えるとします。

タスクが停止すると、以下のフィールドが表示されます。

  • stopCode - この文字列は停止したタスクのカテゴリを示します。以下の値が有効です。

    • TaskFailedToStart - タスクが RUNNING 状態に移行できませんでした。

    • EssentialContainerExited - コンテナプロセスが終了しました。

    • UserInitiated - ユーザーがタスクを停止しました。

    • ServiceSchedulerInitiated - サービススケジューラがタスクを停止しました。

    • SpotInterruption - EC2 スポットインスタンスが終了または停止しました。

    • TerminationNotice - サービススケジューラが Fargate 終了通知を受け取りました。

  • stoppedReason - これにより、問題を解決するために使用できる追加情報が提供されます。たとえば、「ResourceInitializationError: ロギングドライバを初期化できませんでした」などです。

次のいずれかの方法で、停止したタスクのエラーを表示できます。

  • Amazon ECS コンソール

  • AWS CLI

  • Amazon ECS API

  • AWS SDK

  • Amazon CloudWatch Logs

    タスク定義で awslogs ログドライバーを使用している場合、停止したタスクがある場合は Amazon CloudWatch Logs にアプリケーションログが書き込まれます。停止したタスクは Amazon ECS コンソールの [ログ] タブにも表示されます。

  • また Amazon ECS は、タスク状態変更イベントを Amazon EventBridge に送信します。イベントブリッジではイベントを見ることはできません。代わりに、Amazon CloudWatch Logs などの他の永続ストレージにイベントを送信するルールを作成します。ストレージを使用して、Amazon ECS コンソールで期限切れになって表示されなくなったタスクの詳細を見ることができます。詳細については、「Amazon ECS タスク状態変更イベント」を参照してください。

    Amazon ECS イベントを Amazon CloudWatch Logs にアーカイブする EventBridge 設定のサンプルについては、GitHub ウェブサイトの「CloudWatch Logs 内の ECS 停止タスク」を参照してください。

タスクが Amazon ECS サービスによって作成された場合、Amazon ECS がサービスを維持するために行うアクションはサービスイベントで公開されます。イベントは、AWS Management Console、AWS CLI、AWS SDK、Amazon ECS API または SDK と API を使用するツールで表示できます。これらのイベントには、タスク内のコンテナの実行が停止したり、Elastic Load Balancing によるヘルスチェックに何度も失敗したりしたことが原因で、Amazon ECS が停止してタスクが置き換えられることが含まれます。

また、タスクが Amazon EC2 にあるコンテナインスタンスまたは外部コンピュータで実行された場合、コンテナランタイムと Amazon ECS エージェントのログを確認することもできます。これらのログは、ホスト Amazon EC2 インスタンスまたは外部コンピュータにあります。詳細については、「Amazon ECS ログファイルの場所」を参照してください。

停止したタスクのエラーを表示する

Console
AWS Management Console

次の手順に従って、新しい AWS Management Console を使用して停止されたタスクにエラーがないかどうかを見ることができます。

  1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

  2. ナビゲーションペインで [クラスター] を選択します。

  3. [Clusters] (クラスター) ページで、クラスターを選択します。

  4. [Cluster: name] (クラスター: 名前) ページで、[Tasks] (タスク) タブを選択します。

  5. 停止済みのタスクを表示するようにフィルターを設定します。[必要なステータスを絞り込む] には、[停止済み] または [任意の必要なステータス] を選択します。

    [停止済み] オプションには停止されたタスクが表示され、[任意の必要なステータス] にはすべてのタスクが表示されます。

  6. 停止したタスクを選択して検査します。

  7. 停止済みのタスクの行の [前回のステータス] 列で、[停止済み] を選択します。

    ポップアップウィンドウに停止した理由が表示されます。

AWS CLI
  1. クラスターで停止したタスクを一覧表示します。出力には、タスクの Amazon リソースネーム (ARN) が含まれますが、この名前は、タスクを説明するものである必要があります。

    aws ecs list-tasks \ --cluster cluster_name \ --desired-status STOPPED \ --region us-west-2
  2. 停止したタスクを記述して、レスポンスで stoppedReason を取得します。

    aws ecs describe-tasks \ --cluster cluster_name \ --tasks arn:aws:ecs:us-west-2:account_id:task/cluster_name/task_ID \ --region us-west-2

エラーコードに関するリソース

次のページに、エラーコードに関する情報が記載されています。