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

最終更新日: 2021 年 4 月 5 日

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) があることを確認します。

NAT ゲートウェイを使用している場合は、NAT ゲートウェイをパブリックサブネットに配置します。詳細については、インターネットゲートウェイと NAT ゲートウェイを使用したアーキテクチャをご参照ください。

AWS PrivateLink を使用している場合は、Fargate インフラストラクチャが Amazon Virtual Private Cloud (Amazon VPC) エンドポイント用にセキュリティグループを使用することが許可されていることを確認します。

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

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

注: 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 ゲートウェイエンドポイント

詳細については、Amazon ECR VPC エンドポイントに関する考慮事項をご参照ください。

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

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

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」エラーはどのように解決すればよいですか? の手順を実行してください。

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


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


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