Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Amazon Elastic Container Service (Amazon ECS) にタスクをデプロイしようとしたところ、次のエラーが表示されます。"要件をすべて満たすコンテナインスタンスがないため、[AWS service] はタスクを配置できませんでした。"
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
コンテナインスタンスの要件が欠けている場合、Amazon ECS はタスクをデプロイできません。要件を満たすコンテナインスタンスがありませんというエラーを解決するには、そのエラーの詳細を確認し、関連するトラブルシューティング手順を実行してください。
この問題は、クラスターにコンテナインスタンスがない場合に発生します。この問題を解決するには、クラスターにコンテナインスタンスを追加します。コンテナインスタンスが Amazon ECS クラスターへの登録に失敗していないことも確認してください。
このエラーは、タスク配置用に指定されたコンテナインスタンスで実行されている Amazon ECS コンテナエージェントが切断されたときに表示されます。この問題を解決するには、「Amazon ECS のサービスで発生する、"最も近い、合致する container-instance の container-instance-id でエラー 'AGENT' が発生しました" というエラーの解決方法を教えてください」を参照してください。
このエラーは、コンテナインスタンスが必要とするポートがインスタンスで既に使用中である場合に発生します。同じポートで複数のタスクを実行することはできません。この問題を解決するには、クラスターに他のインスタンスコンテナを追加します。または、タスクがコンテナインスタンスで使用可能な任意のポートを使用できるようにするために、動的ポートマッピングを使用します。
メモリ不足、GPU 不足、CPU 不足のエラーが発生した場合は、各タスクとコンテナインスタンスが使用するリソースを確認してください。このエラーを解決するには、次の手順を実行します。
CPU が不十分である場合の詳細については、「Amazon ECS で発生する、"最も近い container-instance の container-instance ID では、使用可能な CPU ユニットが不足しています" というエラーを解決する方法を教えてください」を参照してください。
Amazon ECS コンテナインスタンスの動的スケーリングを使用して、CPU またはメモリリソースの使用状況に基づいてクラスターにインスタンスを自動的に追加します。Amazon CloudWatch メトリクス CpuUtilized および MemoryUtilized を監視し、システムのしきい値を特定します。次に、ターゲット追跡ステップスケーリングまたはステップアンドシンプルスケーリングポリシーを使用して、かかるしきい値に基づき、Auto Scaling グループのスケーリングを行います。リソースの使用状況を監視する方法の詳細については、「コンテナの監視」を参照してください。
コンテナインスタンスに使用可能な Elastic ネットワークインターフェイスのアタッチメントポイントがない場合は、タスクとタスクレプリカの数を減らします。または、クラスターにコンテナインスタンスを追加します。問題が解決しない場合は、awsvpcTrunking を使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの Elastic ネットワークインターフェイスの密度を高めます。
注: ecs-cli のインストールについては、GitHub のウェブサイトで amazon-ecs-cli について参照してください。
このエラーは、タスク定義にコンテナインスタンスにないコンテナインスタンス属性を必要とするパラメータが含まれている場合に発生します。
Amazon ECS コマンドラインインターフェイス (ECS CLI) で check-attributes コマンドを実行し、欠落している属性をチェックします。
$ ecs-cli check-attributes --container-instances container-instance --cluster cluster-name --region region-code --task-def task-def-name
注: お使いのものでそれぞれ、container-instance をコンテナインスタンスの名前に、cluster-name をクラスターの名前に、region-code を AWS リージョンに、task-def-name をタスク定義に置き換えます。
このコマンドの出力は、必要な属性が欠けているテーブルを表示します。
Amazon ECS サービスは、コンテナインスタンスのサブネットとは別のサブネットで実行するように設定できます。この場合、ecs-cli-check-attributes コマンドの出力では、タスクを実行できず、属性が欠けていることを示すエラーが発生する場合も、None が表示されます。サービスのサブネットとコンテナインスタンスのサブネットは、一致している必要があります。コンテナインスタンスが存在するサブネットに Amazon ECS サービスを再作成することで、この問題を解決します。詳細については、「Amazon ECS のタスク定義パラメータ」を参照してください。
配置制約を使用して特定のインスタンスにタスクを配置する場合は、そのコンテナインスタンスが選択した属性や制約をサポートしていることを確認してください。
たとえば distinctinstance では、各アクティブタスクは別々のコンテナインスタンスに配置されます。5 つのタスクと 3 つのコンテナインスタンスが使用可能な場合、タスク配置は失敗し、制約が満たされていないことを示すエラーが発生します。dinstinctinstance でこの問題を解決するには、クラスターにコンテナインスタンスを追加します。
Amazon ECS のトラブルシューティング
ECS サービスを作成する
コンテナの終了中に Amazon ECS タスクが停止したり、開始できなかったりした場合のトラブルシューティング方法を教えてください
Amazon ECS サービスのイベントメッセージを確認する