Fargate の Amazon ECS タスクが [Pending] (保留中) 状態のまま停止している場合のトラブルシューティング方法を教えてください。

最終更新日: 2022 年 9 月 30 日

AWS Fargate で実行されている Amazon Elastic Container Service (Amazon ECS) タスクは、保留状態のまま停止しています。

解決方法

サブネットが使用しているインターネットへのルートを確認する

パブリックサブネットの Fargate タスクの場合:

Fargate タスクにパブリック IP アドレスとインターネットゲートウェイへのデフォルトルート (0.0.0.0/0) が割り当てられていることを確認します。これを行うには、タスクの起動時または新しいサービスの作成時に、[Enable auto-assign public IPv4 address] (パブリック IPv4 アドレスの自動割り当てを有効化) チェックボックスをオンにします。詳細については、「パブリック IPv4 アドレス」を参照してください。

注意: 既存のタスクまたはサービスについて、[Enable auto-assign public IPv4 address] (パブリック IPv4 アドレスの自動割り当てを有効化) チェックボックスをオンにすることはできません。

プライベートサブネットの Fargate タスクの場合:

Fargate タスクに NAT ゲートウェイ、AWS PrivateLink、または別のインターネット接続ソースへのデフォルトルート (0.0.0.0/0) があることを確認します。

ネットワークアクセスコントロールリストとセキュリティグループの設定を確認する

ネットワークアクセスコントロールリスト (ネットワーク ACL) とセキュリティグループが、サブネットからのポート 443 へのアウトバウンドアクセスをブロックしていないことを確認します。詳細については、「セキュリティグループを使用してリソースへのトラフィックを制御する」を参照してください。

注意: Fargate タスクでは、発信トラフィックを有効にして Amazon ECS エンドポイントに到達するには、ポート 443 へのアウトバウンドアクセスが必要です。

VPC エンドポイントを確認する

AWS PrivateLink を使用している場合は、必要なエンドポイントがあることを確認してください。

Fargate プラットフォームバージョン 1.3.0 以前に必要なエンドポイント:

  • com.amazonaws.region.ecr.dkr
  • S3 ゲートウェイエンドポイント

Fargate プラットフォームバージョン 1.4.0 以降に必要なエンドポイント:

  • com.amazonaws.region.ecr.dkr
  • com.amazonaws.region.ecr.api
  • S3 ゲートウェイエンドポイント

注意: タスク定義で AWS Secrets Manager、SSM パラメータ、または Amazon CloudWatch Logs を使用する場合は、エンドポイントを定義する必要がある場合があります。詳細については、「VPC エンドポイントで AWS Secrets Manager を使用する」および「インターフェイス VPC エンドポイントで CloudWatch Logs を使用する」を参照してください。

PrivateLink を使用する際に、VPC エンドポイントのセキュリティグループが、これらのセキュリティグループを使用することを Fargate インフラストラクチャに許可していることを確認します。

AWS Identity and Access Management (IAM) のロールと許可を確認する

タスク実行ロールは、Amazon ECS コンテナと Fargate エージェントに、ユーザーに代わって AWS API 呼び出しを行うためのアクセス権限を付与します。Fargate は、以下の場合にこのロールを必要とします。

  • Amazon Elastic Container Registry (Amazon ECR) からコンテナイメージをプルする
  • awslogs ログドライバーを使用する
  • プライベートレジストリ認証を使用する
  • Secrets Manager のシークレットまたは AWS Systems Manager Parameter Store のパラメータを使用して機密データを参照する

ユースケースに前述のシナリオのいずれかが含まれる場合は、タスク実行ロールに適切なアクセス権限が定義されていることを確認します。必要なアクセス権限の詳細なリストについては、Amazon ECS タスク実行 IAM ロールをご参照ください。

イメージのプルに関する問題を確認する

Fargate タスクで「cannotpullcontainer」エラーが表示された場合は、Fargate での Amazon ECS タスクの「cannotpullcontainererror」エラーはどのように解決すればよいですか? の手順を実行してください。

デュアルスタックモードの VPC

Fargate のデュアルスタックモードで VPC を使用する場合、インターネットにアクセスするための IPv6 アドレスが割り当てられているタスク用に、インターネットゲートウェイまたはアウトバウンド専用インターネットゲートウェイを使用して VPC を設定できます。詳細については、「デュアルスタックモードでの VPC の使用」を参照してください。

注意: 問題のトラブルシューティングを行うには、Amazon ECS Exec を使用して、タスクまたはサービスのコンテナインスタンスからログを取得することもできます。

コンテナの依存関係が定義されている

タスク定義で定義されているコンテナ依存関係により、Fargate タスクがいつまでも PENDING 状態になる可能性があります。例: ContainerA がそのままであり、ContainerB の特定の状態に依存している場合、containerB がその状態に達するまで ContainerA は PENDING 状態にとどまると予想されます。ただし、ContainerB が目的の状態に達しない場合、タスクは無期限に保留状態のままになります。依存関係が適切であることを確認するか、依存関係を評価してください。

詳細については、「コンテナの依存関係」を参照してください。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?