停止されたタスクでのエラーの確認 - Amazon Elastic Container Service

停止されたタスクでのエラーの確認

タスクの開始に問題がある場合、エラーのためにタスクが停止している可能性があります。たとえば、タスクを実行するとタスクが PENDING ステータスを表示して消えるとします。停止されたタスクを表示し、エラーメッセージを検査することで、Amazon ECS コンソールでこのような停止されたタスクでのエラーを表示できます。

重要

また Amazon ECS は、タスク状態変更イベントを EventBridge に送信し、停止されたタスクがAmazon ECSコンソールで期限切れになって表示されなくなったかどうかを見ることができます。詳細については、「タスク状態変更イベント」を参照してください。

1 時間以上停止したタスクを調査する方法の詳細については、GitHub ウェブサイトで「ECS が CloudWatch Logs で停止したタスク」を参照してください。。

停止されたタスクでエラーを確認するには (AWS Management Console)

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

  2. [クラスター]の ページで、停止されたタスクが存在するクラスターを選択します。

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

  4. [必要なタスクのステータス] テーブルのヘッダーで、[停止] を選択して停止されたタスクを表示し、その中から検査するタスクを選択します。直近の停止されたタスクが先頭に表示されます。

  5. [詳細] セクションで、[停止理由] フィールドを検査して、タスクが停止された理由を確認します。

    
                        タスクが停止された理由

    考えられる理由とその説明を以下に示します。

    Task failed ELB health checks in (elb elb-name)

    現在のタスクは、タスクのサービスに関連付けられたロードバランサーの Elastic Load Balancing ヘルスチェックに失敗しました。詳細については、「サービスロードバランサーのトラブルシューティング」を参照してください。

    Scaling activity initiated by (deployment deployment-id)

    安定したサービスの必要数を減らすと、必要数に達するまでいくつかのタスクを停止する必要があります。それが理由で、ダウンスケーリングサービスによってタスクが停止されます。

    Host EC2 (instance id) stopped/terminated

    実行中のタスクでコンテナインスタンスを停止または終了した場合、それが理由でタスクが停止されます。

    Container instance deregistration forced by user

    実行中のタスクでコンテナインスタンスを強制的に登録解除した場合、それが理由でタスクが停止されます。

    Essential container in task exited

    タスク定義で essential とマークされたコンテナが終了するか停止した場合、タスクは停止される場合があります。必須のコンテナの終了が停止したタスクの原因である場合、「ステップ 6」で、コンテナが停止した詳細な診断情報を得られます。

  6. 停止されたコンテナがある場合は、コンテナを展開し、[Status reason (状況の理由)] 行を検査して、タスクの状態が変わった原因を確認します。

    
                        停止されたコンテナのエラー

    上記の例では、コンテナイメージ名が見つかりませんでした。イメージ名のスペルが正しくない可能性があります。

    この検査で十分な情報が得られない場合は、SSH でコンテナインスタンスに 接続し、Docker コンテナをローカルで検査できます。詳細については、「Docker コンテナを検査する」を参照してください。

停止されたタスクでエラーを確認するには (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