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 のアタッチメントポイントが足りない
- コンテナインスタンスに必要な属性がない
これらの問題の詳細については、「Service event messages」を参照してください。
**注:**前述のエラーメッセージが表示されない場合は、以下の受信したエラーメッセージに基づいて記事を選択してください。
解決策
注: AWS CLI コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用していることを確認してください。
エラーを解決するには、ユースケースに基づいて解決策を選択してください:
ecs-cli check-attributes --task-def Task_Definition --container-instances Container_Instance --cluster Cluster_Name
注: Task_Definition Name には、タスク定義の名前を入力します。Container\ _Instance には、コンテナインスタンスの名前を入力します。Cluster\ _Name には、クラスターの名前を入力します。
- Amazon ECS サービスは、コンテナインスタンスのサブネットとは異なるサブネットで実行するように設定できます。この場合、ecs-cli-check-attributes コマンドの出力では、属性が欠落しているというエラーでタスクが失敗しても、属性が欠落していると「None」と表示されます。サービスのサブネットとコンテナインスタンスのサブネットが一致していることを確認してください。これを行うには、コンテナインスタンスが存在するサブネットに Amazon ECS サービスを再作成します。詳細については、「Task definition parameters 」と「Amazon ECS container agent configuration」を参照してください。
例えば、次のコマンドを実行するとします:
ecs-cli check-attributes --task-def task:1 --container-instances 650cf1df296749e1bce1b9e0cebb588a --cluster test-cluster
出力は次のようになります:
Container Instance Missing Attributes
tes-cluster None
詳細については、以下のコマンドを実行してください:
ecs-cli --help
関連情報
Amazon ECS task networking
Service throttle logic