コンテナの終了中に Amazon ECS タスクが停止する、または開始できない場合のトラブルシューティングする方法を教えてください。

所要時間1分
0

Amazon Elastic Container Service (Amazon ECS) コンテナが予期せず終了し、タスクが停止するか、開始に失敗します。

簡単な説明

コンテナは、アプリケーションの問題、リソースの制約、またはその他の問題が原因で終了することがあります。

イメージの問題によるタスク失敗については、「Amazon ECS クラスターでタスクが開始されない場合の「Image does not exist」エラーを解決する方法を教えてください」を参照してください。予期せず停止した AWS Fargate タスクについては、考えられるすべてのエラーメッセージについて、Fargate 起動タイプの Amazon ECS 停止タスクエラーコードを参照してください。

解決策

タスクが停止した理由を特定するには、次のタスクを実行します。

  • サービスイベントログの診断情報を確認します。
  • 停止したタスクにエラーがないか確認します
    注:list-tasks コマンドを使用すると、返された結果に 1 時間以上停止したタスクが表示されます。
  • ログドライバーが既に設定されている場合は、アプリケーションログにアプリケーションの問題がないか確認してください。たとえば、awslogs ログドライバーがタスク定義で設定されている場合は、Amazon CloudWatch で awslogs コンテナのログを表示します。それ以外の場合は、タスク定義のログ設定オプションを使用して、コンテナのサポートされているログドライバーにログを送信します。タスクの起動タイプに応じて、ログに関する次の情報に注意してください。
    Fargate 以外の ECS タスクの場合:Amazon Elastic Compute Cloud (Amazon EC2) 起動タイプでデフォルトの json-file ロギングドライバーを使用している場合は、docker logs <yourContainerID> コマンドを実行します。このコマンドは、ECS コンテナインスタンス上のコンテナの Docker ログをチェックします。JSON ファイルロギングドライバーの詳細については、Docker Web サイトの「JSON ファイルロギングドライバー」を参照してください。
    **Fargate タスクの場合:**デフォルトでは、キャプチャされたログには、コンテナをローカルで実行した場合にインタラクティブターミナルに表示されるコマンド出力が表示されます。これらのコマンド出力は、STDOUT および STDERR 入出力ストリームです。awslogs ログドライバーは、これらのログを Docker から Amazon CloudWatch Logs に渡します。
  • メモリ制約の問題に対処するには、「Amazon ECS のタスクにメモリを割り当てるにはどうすればよいですか?」の指示に従ってください。
AWS公式
AWS公式更新しました 5ヶ月前