ECS クラスターで失敗した Amazon Elastic Container Service (Amazon ECS) タスクをトラブルシューティングしたいです。
コンテナは、アプリケーションの問題、リソースの制約、またはその他の問題が原因で終了することがあります。
イメージの問題によるタスク失敗については、「Amazon ECS クラスターでタスクが開始されない場合の "イメージが存在しません" というエラーを解決する方法を教えてください」を参照してください。
予期せず停止した AWS Fargate タスクについては、「Amazon ECS 停止タスクのエラーメッセージ」を参照してください。
AWS Systems Manager オートメーションランブック AWSSupport-TroubleshootECSTaskFailedToStart を使用すると、ECS タスクの起動を妨げる、他の原因を分析できます。
Amazon ECS クラスターを手動でトラブルシューティングすることもできます。
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
AWSSupport-TroubleshootECSTaskFailedToStart ランブックを開始する前に、IAM ユーザーまたはロールに必要なアクセス許可があることを確認してください。詳細については、AWSSupport-TroubleshootECSTaskFailedToStart の「必要な IAM アクセス許可」セクションを参照してください。
ランブックを起動するには、次の手順を実行します。
サービスイベントログの診断情報を確認します。さらに、Amazon ECS コンソールまたは AWS CLI を使用して、停止したタスクでのエラーを確認します。
メモリ制約の問題に対処する方法については、「Amazon ECS のタスクにどのようにメモリを割り当てるかを教えてください」を参照してください。
ログドライバーを設定済みの場合は、アプリケーションログでアプリケーションの問題がないか確認してください。たとえば、awslogs ログドライバーをタスク定義で設定した場合は、Amazon CloudWatch で awslogs コンテナのログを確認します。または、タスク定義のログ設定オプションを使用して、コンテナのサポートされているログドライバーにログを送信します。
Fargate 以外の ECS タスク
Amazon Elastic Compute Cloud (Amazon EC2) 起動タイプでデフォルトの JSON ファイルログドライバーを使用している場合は、次の docker logs コマンドを実行します。
docker logs dc7240fe892a
注: dc7240fe892a は実際のコンテナ ID に置き換えます。
上記のコマンドは、ECS コンテナインスタンス上のコンテナの Docker ログをチェックします。JSON ログドライバーの詳細については、Docker のウェブサイトで「JSON ファイルロギングドライバー」を参照してください。
Fargate タスク
awslogs ログドライバーは、ログを Docker から CloudWatch Logs に渡します。ログには、コマンド出力からの STDOUT および STDERR I/O ストリームが表示されます。
AWS Support Automation Workflows (SAW)
オートメーションを設定する
Systems Manager Automation を使用して自動操作を実行する