Amazon ECS で「[AWS service] was unable to place a task because no container instance met all of its requirements」というエラーを解決する方法を教えてください。
最終更新日: 2022 年 3 月 1 日
Amazon Elastic Container Service (Amazon ECS) にタスクを配置しようとすると、次のエラーが表示されます。「[AWS service] was unable to place a task because no container instance met all of its requirements.」
簡単な説明
このエラーは、次の 1 つまたは複数の理由で発生することがあります。
- クラスターにコンテナインスタンスがない
- タスクに必要なポートがすでに使用されている
- タスクに十分なメモリがない
- コンテナインスタンスに十分な CPU ユニットがない
- 使用可能な Elastic Network Interface アタッチメントポイントが不足している
- コンテナインスタンスに必要な属性がない
これらの問題の詳細については、「サービスイベントメッセージ」をご参照ください。
注: 上記のエラーメッセージが表示されない場合は、受け取った次のエラーメッセージのいずれかに基づいた記事を選択してください。
- [AWS service] was unable to place a task because no container instance met all of its requirements.The closest matching container-instance container-instance-id has insufficient CPU units available.
- [AWS service] was unable to place a task because no container instance met all of its requirements.The closest matching container-instance container-instance-id encountered error "AGENT".
解決方法
このエラーを解決するには、ユースケースに基づいて解決策を選択します。
- クラスターにコンテナインスタンスが登録されていない場合は、コンテナインスタンスをクラスターに追加します。
- タスクに必要なポートが使用中の場合は、コンテナインスタンスをクラスターに追加するか、必要なタスクの数を減らします。
注: 可能であれば、 動的ポートマッピングを使用して、タスクがコンテナインスタンスの利用可能なポートを使用できるようにすることを検討してください。 - コンテナインスタンスにタスク用の十分なメモリがない場合は、タスク定義内のメモリ量を減らすか、クラスター内でより多くのコンテナインスタンスを起動します。
注: 詳細については、「サービス (service-name) で、すべての要件を満たしたコンテナインスタンスがないため、タスクを配置できませんでした」のサービスイベントメッセージにおける「メモリが足りない」セクションを参照してください。 - コンテナインスタンスに十分な CPU ユニットがない場合は、タスクに必要な CPU を調整するか、クラスター内でさらにコンテナインスタンスを起動します。
注: 詳細については、「サービス (service-name) で、すべての要件を満たしたコンテナインスタンスがないため、タスクを配置できませんでした」のサービスイベントメッセージにおける「CPU が足りない」セクションを参照してください。あるいは、「How do I resolve "the closest matching container-instance container-instance-id has insufficient CPU units available" error in Amazon ECS?」をご覧ください。 - コンテナインスタンスに使用可能な Elastic Network Interface アタッチメントポイントがない場合は、 クラスターにコンテナインスタンスをさらに追加します。
注: 詳細については、「サービス (service-name) で、すべての要件を満たしたコンテナインスタンスがないため、タスクを配置できませんでした」のサービスイベントメッセージにおける「十分な数の ENI アタッチメントポイントを利用できない」セクションを参照してください。問題が解決しない場合は、awsvpcTrunking を使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの Elastic Network Interface の密度を高めることを検討してください。 - コンテナインスタンスに必須の属性が欠落している場合は、「サービス (service-name) で、すべての要件を満たしたコンテナインスタンスがないため、タスクを配置できませんでした」のサービスイベントメッセージにおける「コンテナインスタンスに必須の属性がない」セクションを参照してください。足りない属性を見つけるには、ecs-cli check-attributes コマンドを実行します。
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
コンテナインスタンスのサブネットとは異なるサブネットで Amazon ECS サービスを実行するように設定した場合、タスクが属性欠落エラーで失敗しても、ecs-cli-check-attributes コマンドの出力は属性欠落のため None と表示されます。サービスとコンテナインスタンスのサブネットが同じであることを確認するには、コンテナインスタンスが存在するサブネットに Amazon ECS サービスを再作成します。
注: 詳細については、「タスク定義パラメータ」および「Amazon ECS コンテナエージェントの設定」を参照してください。
Container Instance Missing Attributes
example-instance None