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

Amazon EC2 インスタンスが Amazon ECS クラスターに参加できない理由を知りたいです。

所要時間3分
0

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを Amazon Elastic Container Service (Amazon ECS) クラスターに登録できません。

解決策

コンテナインスタンスが Amazon ECS クラスターに登録できない理由を特定するには、AWSSupport-TroubleshootECSContainerInstance ランブックを実行して、潜在的な問題を自動的にチェックしてください。

AWSSupport-TroubleshootECSContainerInstance ランブックを実行する

**前提条件: **

  • EC2 インスタンスには、Amazon ECS 設定と通信するために必要なアクセス許可を持つ AWS Identity and Access Management (IAM) ロールがアタッチされている必要があります。インスタンスの IAM ロールには、Amazon ECS がコンテナインスタンスをクラスターに登録できるように、ecs:RegisterContainerInstance アクセス許可も必要です。IAM ロールをカスタマイズする必要がない場合は、AmazonEC2ContainerServiceforEC2Role を使用します。
  • コンテナインスタンスのネットワーク設定が正しいことを確認してください。詳細については、『Amazon ECS で EC2 タスクを起動すると発生する、CannotPullContainerError エラーを解決する方法を教えてください。』の「Amazon ECS コンテナインスタンスのネットワーク設定が誤っている」を参照してください。

ランブックを実行するには、"AWSSupport-TroubleshootECSContainerInstance" を参照してください。

**注: ** Amazon ECS クラスターと EC2 インスタンスが配置されているリージョンと同じ AWS リージョンで "AWSSupport-TroubleshootECSContainerInstance" ランブックを実行してください。

問題を解決するための提案については、ランブックの出力を確認してください。出力に推奨事項が含まれていない場合は、次のアクションを実行して手動で問題をトラブルシューティングしてください。

コンテナインスタンス上の ECS エージェントのステータスを確認する

次のコマンドを実行し、インスタンス上の Amazon ECS コンテナエージェントが実行されているかどうかを確認します。

sudo systemctl status ecs

Amazon ECS コンテナエージェントがインスタンスで実行されていない場合は、次のコマンドを実行してエージェントを起動します。

sudo systemctl start ecs

start コマンドの出力は、次の例に類似したものになります。

Active: active (running)

次のコマンドを実行し、Docker サービスが実行されているかどうかを確認します。

sudo systemctl status docker

Docker サービスが実行されていない場合は、次のコマンドを実行してサービスを開始します。

sudo systemctl start docker

start コマンドの出力は、次の例に類似したものになります。

Active: active (running)

起動設定を確認する

起動インスタンスが Auto Scaling グループの一部である場合は、Auto Scaling グループの起動設定が正しいことを確認してください。詳細については、"Refreshing an Amazon ECS Container Instance Cluster With a New AMI" (新しい AMI を使用した Amazon ECS コンテナインスタンスクラスターの更新) の "Create a new launch configuration" (新しい起動設定の作成) 手順を参照してください。

コンテナインスタンスの AMI を確認する

コンテナインスタンスの AMI がコピーされた AMI またはカスタム AMI の場合は、インスタンスが次の要件を満たしていることを確認してください。

  • Linux ディストリビューションが Linux カーネルバージョン 3.10 以上で動作していること。
  • 最新バージョンの Amazon ECS Linux コンテナエージェントを使用していること。
  • Docker デーモンがバージョン 1.9.0 以上およびすべての Docker ランタイム依存関係で動作していること。現在の Docker バージョンを表示するには、sudo docker version コマンドを実行してください。詳細については、Docker Docs ウェブサイトの "Install Docker Engine" (Docker Engine のインストール) を参照してください。

これらの要件は、Amazon ECS 最適化 AMI にあらかじめ設定されています。アプリケーションでその AMI にないバージョンが必要な場合を除き、Amazon ECS 最適化 AMI を使用することはベストプラクティスです。詳細については、『Amazon ECS に最適化された Linux AMI メタデータを取得する』を参照してください。

インスタンスのユーザーデータに正しいクラスター情報が含まれているかどうかを確認する

インスタンスのユーザーデータに正しいクラスター情報が含まれているかどうかを確認するには、次のコマンドを実行します。

#!/bin/bash
echo ECS_CLUSTER=cluster-name >> /etc/ecs/ecs.config

**注: ** cluster-name をご利用のクラスター名に置き換えてください。

ログファイルを確認する

問題が解決しない場合は、Amazon ECS ログコレクターを使用してログを収集します。それらのログを確認して原因を特定します。コンテナホスト上の Amazon ECS コンテナエージェントと Docker のログファイルを確認することもできます。

Amazon ECS コンテナエージェントと Docker のログファイルを表示するには、次のコマンドを実行してください。

sudo cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-##
sudo cat /var/log/docker

**注: ** YYYY-MM-DD をログファイルを確認する日付に置き換えてください。

エラーのトラブルシューティング

エラー: Launching a new EC2 instance.Status Reason: This account is currently blocked and not recognized as a valid account.Please contact aws-verification@amazon.com if you have questions.Launching EC2 instance failed.

このエラーは、AWS アカウントがブロックされ、Amazon がアカウントを認識しない場合に発生します。アカウントのブロックを解除するには、aws-verification@amazon.com に E メールを送信して、AWS にアカウントのブロックの解除をリクエストしてください。

エラー: re-registering: ClientException: Container instance 12345678910abcdefghixzy is inactive. status code: 400, request id: 012345678a-012345b-012ab-0a1-9f645f4s5c12 module=agent.go

このエラーは、EC2 インスタンスが非アクティブであるため、Amazon ECS コンテナエージェントがクラスターを使用して EC2 コンテナインスタンスを登録できない場合に発生します。このエラーは、インスタンスで実行されているアプリケーションに関連するものです。エラーの原因を特定するには、最初にアプリケーションを確認してください。エラーが解消されない場合は、Amazon ECS コンテナエージェントのログを確認してください。

エラー: Few instances are able to join the cluster but with the same configurations, other instances are not able to join the cluster.

このエラーは、特定の API コールがレートクォータを超過し、ThrottlingException が生じた場合に発生します。詳細については、『Amazon ECS API のリクエストスロットリング』を参照してください。このエラーを解決するには、アカウントレベルのレートクォータを増やしてください。AWS CloudTrail を使用して、ListTasksRegisterContainerInstance などの API コールを確認してください。

エラー: After changing the instance type, new instances are unable to join the cluster.

このエラーは、Amazon ECS コンテナエージェントが Pending 状態で停止しており、インスタンスタイプを変更できない場合に発生します。Amazon ECS でインスタンスタイプを変更するには、次の手順を実行します。

  1. コンテナインスタンスを削除する
  2. 新しいインスタンスタイプのコンテナインスタンスを起動する

**注: ** クラスターのインスタンスを起動するには、Amazon ECS 最適化 Amazon Linux 2023 AMI を使用することはベストプラクティスです。

または、新しい起動設定を作成し、Auto Scaling グループの起動設定を更新してください。

詳細については、『Amazon ECS のコンテナインスタンスタイプを変更する方法を教えてください。』を参照してください。

エラー: Unable to register as a container instance with ECS: AccessDeniedException: User: arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/i-00aa11bb22cc33def is not authorized to perform: ecs:RegisterContainerInstance on resource: arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster. status code: 400, request id: 0a123456-7899-10101-a987-6543210deff

このエラーは、必要な IAM アクセス許可がない場合に発生します。このエラーを解決するには、コンテナインスタンス IAM ロールを作成してください。次に、AWSSupport-TroubleshootECSContainerInstance ランブックを実行して、コンテナインスタンスロールに不足しているアクセス許可を特定してください。

関連情報

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

Amazon ECS コンテナインスタンスの IAM ロール

AWSSupport-TroubleshootECSContainerInstance

Amazon Linux 1 AMI の Amazon ECS コンテナインスタンスが切断されるのはなぜですか。

1コメント

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

エキスパート

応答済み 3日前

関連するコンテンツ