Amazon ECS クラスターのタスクが開始されないのはなぜですか?

所要時間2分
0

Amazon Elastic Container Service (Amazon ECS) クラスターにタスクを配置しようとしています。ただし、タスクの配置が失敗し、タスクがクラスターで RUNNING 状態に変更されません。

簡単な説明

タスクをクラスターに正常に配置するには、以下のいずれかのソリューションを選択します。

  • Amazon ECS サービスを使用してタスクを配置した場合は、「サービスイベントメッセージを確認する」および「**停止したタスクのエラーを確認する」**のセクションの手順を完了します。
  • スタンドアロンタスクまたはスケジュールされたタスクとしてタスクを実行した場合は、停止したタスクのエラーを確認するセクションの手順に従います。

解決方法

サービスイベントメッセージを確認する

  1. Amazon ECS コンソールを開きます。
  2. ナビゲーションペインで [クラスター] を選択し、次にジョブを含むクラスターを選択します。
  3. クラスターページの [サービス] タブの [サービス名] 列で、検査するサービスを選択します。
  4. サービスのページで、[イベント] を選択します。
  5. [メッセージ] 列で、エラーやその他の有用な情報を探します。

ステップ 5 の結果に基づいて、サービスイベントメッセージを確認して、エラーのトラブルシューティングを行います。

注: サービスイベントには、最後の 100 個のイベントのみが表示されます。

停止したタスクのエラーを確認する

重要 : 過去 1 時間以内に停止したタスクのみを表示できます。

  1. Amazon ECS コンソールを開きます。
  2. ナビゲーションメニューで、[クラスター] を選択し、停止したタスクを含むクラスターを選択します。
  3. クラスターのページで、[Tasks] タブを選択します。
  4. [Desired task status] テーブルのヘッダーで、[Stopped] を選択し、検査する停止されたタスクを選択します。最後に停止したタスクが先頭に表示されます。
  5. 停止したタスクの [Details] (詳細) タブで、[Stopped reason] (停止した理由) フィールドを調べて、タスクが停止した理由を確認します。
  6. 停止したコンテナがあり、[Stopped reason] (停止した理由) が [Task failed to start] (タスクがスタートできません) の場合は、コンテナを展開し、[Status reason] (ステータスの理由) 行を調べて、タスクの状態が変化した原因を調べます。

ステップ 5 の結果に基づいて、次の情報を確認してエラーを解決します。

  • タスクが (elb elb-name) で ELB ヘルスチェックに失敗しました : 現在のタスクが、タスクのサービスに関連付けられているロードバランサーの Elastic Load Balancing ヘルスチェックに失敗しました。詳細については、「Troubleshooting service load balancers」(サービスロードバランサーのトラブルシューティング) を参照してください。
    **注:**この根本原因は、サービスの一部として起動されたタスクにのみ当てはまります。
  • (deploy deployment-id) によって開始される規模の拡大や縮小: 安定したサービスの必要実行回数を減らす場合、一部のタスクは必要実行回数に達するまで停止する必要があります。ービスのダウンスケーリングにより停止されたタスクの場合、この停止理由が表示されます。詳細については、「Troubleshooting service auto scaling」(サービスの Auto Scaling のトラブルシューティング) を参照してください。
    **注:**この根本原因は、サービスの一部として起動されたタスクにのみ当てはまります。
  • ホスト EC2 (インスタンス ID) の停止/終了 : タスクを実行している Amazon Elastic Compute Cloud (Amazon EC2) コンテナインスタンスを停止または終了すると、この停止理由が表示されます。Amazon EC2 インスタンスが終了した理由を調べるには、「Amazon EC2 がインスタンスを終了したのはなぜですか?」を参照してください。
  • コンテナインスタンスの登録解除を強制的に実行: 実行中のタスクを含むコンテナインスタンスの登録解除を強制すると、この停止理由が表示されます。
  • タスクの必須コンテナが終了しました: タスク定義で必須とマークされたコンテナが終了または停止すると、タスクが停止する場合があります。この停止理由は、必須コンテナの終了がタスク停止による場合に表示されます。この場合、手順 6 の結果は、コンテナが停止した理由に関する詳細な診断情報を提供します。

また、 API の失敗理由も確認します。

ステップ 6 の結果に基づいて、次の情報を確認してエラーを解決します。

  • コンテナステータスにエラー CannotPullContainerError がある場合は、「CannotPullContainer task errors」を参照してください。
  • 返されるその他のエラーメッセージ、およびこれらのエラーメッセージの詳細については、「停止したタスクのエラーコード」を参照してください。
  • この検査で十分な情報が得られず、EC2 起動タイプを使用した場合は、SSH を使用してコンテナインスタンスに接続し、Docker コンテナをローカルで検査します。詳細については、「Docker コンテナを検査する」を参照してください。

注: タスク配置の制約または戦略を使用している場合、クラスターは 制約 または 戦略の要件を満たすインスタンスを使用する必要があります。


関連情報

Amazon ECS の「[AWS service] was unable to place a task because no container instance met all of its requirements」([AWSサービス] は、Amazon ECS ですべての要件を満たすコンテナインスタンスがないため、タスクの配置ができませんでしたか?) というエラーを解決する方法を教えてください。

Amazon ECS の「the closest matching container-instance container-instance-id has insufficient CPU units available」というエラーを解決する方法を教えてください。

Amazon ECS のサービスの「the closest matching container-instance container-instance-id encountered error 'AGENT'」(最も一致するcontainer-instancecontainer-instance-idでエラー「AGENT」が発生しました) というエラーを解決する方法を教えてください。

Amazon ECS の「CannotPullContainerError: API error」(CannotPullContainerError: API エラー) という Amazon ECR エラーを解決する方法を教えてください。

Amazon ECS の「CannotPullContainerError: Error response from daemon:Get https://registry-name/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)」(CouldPullContainerError: リクエストからのエラー応答が接続の待機中にキャンセルされました (ヘッダーの待機中に Client.Timeout を超えました) ) のエラーを解決するにはどうすればよいですか?

AWS公式
AWS公式更新しました 2年前
コメントはありません