スキップしてコンテンツを表示

Amazon ECS で発生する "no container instance met all of its requirements" というエラーを解決する方法を教えてください。

所要時間2分
0

Amazon Elastic Container Service (Amazon ECS) にタスクをデプロイしようとしたところ、次のエラーが表示されます: "[AWS service] was unable to place a task because no container instance met all of its requirements"。

解決策

**注: ** AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行時にエラーが発生する場合は、『AWS CLI のエラーのトラブルシューティング』を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

コンテナインスタンスに要件が不足している場合、Amazon ECS はタスクをデプロイできません。no container instance met all of its requirements エラーを解決するには、エラーの詳細を確認し、関連するトラブルシューティング手順を実行してください。

エラーの詳細: クラスターにコンテナインスタンスが登録されていない

クラスターにコンテナインスタンスがない場合に、この問題は発生します。この問題を解決するには、クラスターにコンテナインスタンスを追加してください。また、コンテナインスタンスが Amazon ECS クラスターへの登録に失敗していないことを確認してください。

エラーの詳細: 最適なコンテナインスタンスでエラー "AGENT" が発生した

タスク配置のために指定されたコンテナインスタンスで実行されている Amazon ECS コンテナエージェントが切断されている場合に、このエラーは発生します。このエラーを解決するには、『Amazon ECS のサービスで発生する "the closest matching container-instance container-instance-id encountered error 'AGENT'" エラーの解決方法を教えてください。』を参照してください。

エラーの詳細: 最適なコンテナインスタンスがタスクに必要なポートをすでに使用している

コンテナインスタンスが必要とするポートがインスタンス内で既に使用されている場合に、このエラーは発生します。同じポートで複数のタスクを実行することはできません。この問題を解決するには、クラスターにインスタンスコンテナをさらに追加してください。または、タスクがコンテナインスタンスの任意の利用可能なポートを使用できるようにするには、動的ポートマッピングを使用してください。

エラーの詳細: 最も一致するコンテナインスタンスで利用可能なメモリ、CPU、GPU ユニットが不足している

insufficient memoryinsufficient GPUinsufficient CPU エラーが発生した場合は、各タスクとコンテナインスタンスが使用するリソースを確認してください。この問題を解決するには、次の手順を実行します。

insufficient CPU の詳細については、『Amazon ECS で発生する "the closest matching container-instance container-instance-id has insufficient CPU units available" エラーの解決方法を教えてください。』を参照してください。

リソースの需要に基づいて EC2 インスタンスを自動的にスケールするには、マネージドスケーリングを有効にした EC2 ワークロードで Amazon ECS キャパシティプロバイダーを使用してください。キャパシティプロバイダーは、タスクのリソース要件を満たすために、Auto Scaling グループ内の EC2 インスタンス数を自動的に調整します。詳細については、『EC2 ワークロード用の Amazon ECS キャパシティプロバイダー』および『クラスターの自動スケーリングで Amazon ECS キャパシティを自動的に管理する』を参照してください。

エラーの詳細: タスクリソース ENI を配置できないか、インスタンスのネットワークインターフェイスの制限を超えた

コンテナインスタンスに利用可能な Elastic Network Interface のアタッチポイントがない場合は、タスクとタスクレプリカの数を減らしてください。または、クラスターにコンテナインスタンスを追加してください。問題が解決しない場合は、awsvpcTrunking を使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの Elastic Network Interface の密度を高めてください。

エラーの詳細: 最適なコンテナインスタンスにタスクで必要な属性がない

タスク定義にコンテナインスタンスに存在しない属性を必要とするパラメータが含まれている場合に、このエラーは発生します。

コンテナインスタンスに登録されている属性を確認するには、describe-container-instances AWS CLI コマンドを実行してください。

aws ecs describe-container-instances \
    --cluster CLUSTER-NAME \
    --container-instances CONTAINER-INSTANCE-ID \
    --region REGION

**注: ** CLUSTER-NAME をご利用のクラスター名に置き換えてください。CONTAINER-INSTANCE-ID をコンテナインスタンス ID または ARN に置き換えてください。REGION を AWS リージョンに置き換えてください。

出力の attributes 配列を確認し、タスク定義での必要な属性と比較します。タスク定義にリストされているがコンテナインスタンスの出力に存在しない属性は、不足している属性です。

Amazon ECS サービスは、コンテナインスタンスのサブネットとは別のサブネットで実行するように設定できます。この場合、タスクが属性不足エラーで失敗しても、attributes の出力には不足している属性は表示されません。サービスとコンテナインスタンスのサブネットは一致している必要があります。この問題を解決するには、コンテナインスタンスが存在するサブネットで Amazon ECS サービスを再作成してください。

**注: ** 一部のタスク定義パラメータは、コンテナインスタンス上の特定の Docker リモート API バージョンを必要とします。また、ロギングドライバーオプションなど、コンテナインスタンスが ECS_AVAILABLE_LOGGING_DRIVERS エージェント設定変数にそれらのログドライバーを登録することを必要とするものもあります。詳細については、"Amazon ECS task definition parameters" (Amazon ECS タスク定義パラメータ) および『Amazon ECS コンテナエージェントの設定』を参照してください。

タスクで Amazon ECS Exec が有効になっている場合、コンテナインスタンスに ecs.capability.execute-command 属性が欠如する可能性があります。この属性は、ECS のために最適化された Amazon マシンイメージ (AMI) にはデフォルトで存在しますが、カスタム AMI には存在しない場合があります。これを解決するには、次のいずれかを実行します。

エラーの詳細: ABCDXYZ 配置制約が満たされていない

特定のインスタンスに配置制約を使用してタスクを配置する場合は、コンテナインスタンスが選択した属性または制約をサポートしていることを確認してください。

たとえば、distinctInstance の場合、Amazon ECS は各アクティブタスクを異なるコンテナインスタンスに配置します。5 つのタスクに対して 3 つのコンテナインスタンスしか利用できない場合、タスクの配置は失敗し、constraint unsatisfied エラーが発生します。distinctInstance のこの問題を解決するには、クラスターにコンテナインスタンスを追加してください。

関連情報

Amazon ECS トラブルシューティング

Create an ECS service (ECS サービスを作成する)

Amazon ECS のサービスイベントメッセージを表示する

Amazon ECS のサービスイベントメッセージ

AWS公式更新しました 5ヶ月前
1コメント

This article was reviewed and updated on 2026-03-05.

エキスパート

応答済み 8時間前

関連するコンテンツ