

# Amazon ECS の停止したタスクのエラーを解決する
<a name="resolve-stopped-errors"></a>

タスクの開始に失敗すると、コンソールと `describe-tasks` 出力パラメータ (`stoppedReason` および `stopCode`) にエラーメッセージが表示されます。

停止したタスクは、コンソールで 1 時間表示できます。停止したタスクを表示するには、フィルターオプションを変更する必要があります。詳細については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

次のページには、エラーコードに関する情報が記載されています。
+ 停止したタスクのエラーメッセージの変更について説明します。

  [Amazon ECS の停止したタスクのエラーメッセージの更新](stopped-tasks-error-messages-updates.md)
+ 停止したタスクを表示して、原因に関する情報を取得します。

  [Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)
+ 停止したタスクのエラーメッセージと、考えられるエラーの原因について説明します。

  [Amazon ECS の停止したタスクのエラーメッセージ](stopped-task-error-codes.md)
+ 停止したタスク接続を検証し、エラーを修正する方法について説明します。

  [Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)

# Amazon ECS の停止したタスクのエラーメッセージの更新
<a name="stopped-tasks-error-messages-updates"></a>

2024 年 6 月 14 日より、Amazon ECS チームは、以下の表に示すように停止したタスクのエラーメッセージを変更します。`stopCode` の変更はありません。アプリケーションが正確なエラーメッセージ文字列に依存している場合は、新しい文字列でアプリケーションを更新する必要があります。ご質問や問題については、AWS サポート にお問い合わせください。

**注記**  
このエラーメッセージは変更される可能性があるため、オートメーションではエラーメッセージに依存しないことをお勧めします。

## CannotPullContainerError
<a name="cannot-pull-container-error-changes"></a>


| 以前のエラーメッセージ | 新しいエラーメッセージ | 
| --- | --- | 
| CannotPullContainerError: Error response from daemon: pull access denied for repository, repository does not exist or may require 'docker login': denied: User: roleARN | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/stopped-tasks-error-messages-updates.html)  | 
|  CannotPullContainerError: Error response from daemon: Get imageURI: net/http: request canceled while waiting for connection |  CannotPullContainerError: The task can’t pull the image. ネットワーク設定を確認します。Error response from daemon: Get image: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) | 
| CannotPullContainerError: ref pull has been retried 5 time(s): failed to copy: httpReadSeeker: failed open: failed to do request: Get registry-uri: dial tcp <ip>:<port> i/o timeout | CannotPullContainerError: The task cannot pull image-uri from the registry registry-uri. There is a connection issue between the task and the registry. Check your task network configuration. : failed to copy: httpReadSeeker: failed open: failed to do request: Get registry-uri: dial tcp <ip>:<port> i/o timeout | 

## ResourceNotFoundException
<a name="resourcenotfound-error-changes"></a>


| 以前のエラーメッセージ | 新しいエラーメッセージ | 
| --- | --- | 
| Fetching secret data from AWS Secrets Manager in region region: secret sercretARN: ResourceNotFoundException: Secrets Manager can't find the specified secret. | ResourceNotFoundException: The task can't retrieve the secret with ARN 'sercretARN' from AWS Secrets Manager. Check whether the secret exists in the specified Region. ResourceNotFoundException: Fetching secret data from AWS Secrets Manager in region region: secret sercretARN: ResourceNotFoundException: Secrets Manager can't find the specified secret. | 

## ResourceInitializationError
<a name="resourceinitialization-error-changes"></a>


| 以前のエラーメッセージ | 新しいエラーメッセージ | 
| --- | --- | 
| ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 3 time(s): RequestError: send request failed caused by: Post "https://api.ecr.us-east-1.amazonaws.com/": dial tcp <ip>:<port>: i/o timeout. Please check your task network configuration. | ResourceInitializationError: unable to pull secrets or registry auth: The task cannot pull registry auth from Amazon ECR: There is a connection issue between the task and Amazon ECR. Check your task network configuration. RequestError: send request failed caused by: Post "https://api.ecr.us-east-1.amazonaws.com": dial tcp <ip>:<port>: i/o timeout | 
| ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secrets from ssm: service call has been retried 5 time(s): RequestCanceled: request context canceled caused by: context deadline exceeded | ResourceInitializationError: unable to pull secrets or registry auth: unable to retrieve secrets from ssm: The task cannot pull secrets from AWS Systems Manager. There is a connection issue between the task and AWS Systems Manager Parameter Store. Check your task network configuration. RequestCanceled: request context canceled caused by: context deadline exceeded | 
| ResourceInitializationError: failed to download env files: file download command: non empty error stream: RequestCanceled: request context canceled caused by: context deadline exceeded | ResourceInitializationError: failed to download env files: The task can't download the environment variable files from Amazon S3. There is a connection issue between the task and Amazon S3. Check your task network configuration. service call has been retried 5 time(s): RequestCanceled: request context canceled caused by: context deadline exceeded | 
| ResourceInitializationError: failed to validate logger args::signal:killed | ResourceInitializationError: failed to validate logger args: The task cannot find the Amazon CloudWatch log group defined in the task definition. There is a connection issue between the task and Amazon CloudWatch. Check your network configuration. : signal: killed | 
| ResourceInitializationError: unable to pull secrets or registry auth: pull command failed: : signal: killed | ResourceInitializationError: unable to pull secrets or registry auth: Check your task network configuration. : signal: killed | 

# Amazon ECS の停止したタスクのエラーを表示する
<a name="stopped-task-errors"></a>

タスクの開始に問題がある場合、アプリケーションエラーまたは設定エラーのためにタスクが停止している可能性があります。例えば、タスクを実行するとタスクが `PENDING` ステータスを表示して消えるとします。

 タスクが Amazon ECS サービスによって作成された場合、Amazon ECS がサービスを維持するために行うアクションはサービスイベントで公開されます。イベントは、AWS マネジメントコンソール、AWS CLI、AWS SDK、Amazon ECS API または SDK と API を使用するツールで表示できます。これらのイベントには、タスク内のコンテナの実行が停止したり、Elastic Load Balancing によるヘルスチェックに何度も失敗したりしたことが原因で、Amazon ECS が停止してタスクが置き換えられることが含まれます。

また、タスクが Amazon EC2 にあるコンテナインスタンスまたは外部コンピュータで実行された場合、コンテナランタイムと Amazon ECS エージェントのログを確認することもできます。これらのログは、ホスト Amazon EC2 インスタンスまたは外部コンピュータにあります。詳細については、「[Amazon ECS コンテナエージェントログの表示](logs.md)」を参照してください。

## 手順
<a name="view-stopped-errors-procedure"></a>

------
#### [ Console ]

**AWS マネジメントコンソール**

次の手順に従って、コンソールを使用して停止されたタスクにエラーがないかどうかを確認することができます。停止したタスクを表示するには、フィルターオプションを変更する必要があります。

停止したタスクは 1 時間だけコンソールに表示されます。

1. コンソール ([https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)) を開きます。

1. ナビゲーションペインで **[Clusters]** (クラスター) を選択してください。

1. **[Clusters]** (クラスター) ページで、クラスターを選択します。

1. **[Cluster: *name*]** (クラスター: 名前) ページで、**[Tasks]** (タスク) タブを選択します。

1. 停止済みのタスクを表示するようにフィルターを設定します。**希望ステータスのフィルター** では、**停止** を選択します。

   [**停止済み**] オプションには停止されたタスクが表示され、[**任意の必要なステータス**] にはすべてのタスクが表示されます。

1. 停止したタスクを選択して検査します。

1. 停止済みのタスクの行の [**前回のステータス**] 列で、[**停止済み**] を選択します。

   ポップアップウィンドウに停止した理由が表示されます。

------
#### [ AWS CLI ]

1. クラスターで停止したタスクを一覧表示します。出力には、タスクの Amazon リソースネーム (ARN) が含まれますが、この名前は、タスクを説明するものである必要があります。

   ```
   aws ecs list-tasks \
        --cluster cluster_name \
        --desired-status STOPPED \
        --region region
   ```

1. 停止したタスクを記述して情報を取得します。詳細については、「*AWS Command Line Interfaceリファレンス*」の「[describe-tasks](https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-tasks.html)」を参照してください。

   ```
   aws ecs describe-tasks \
        --cluster cluster_name \
        --tasks arn:aws:ecs:region:account_id:task/cluster_name/task_ID \
        --region region
   ```

次の出力パラメータを使用します。
+ `stopCode` - ResourceInitializationError などの停止コードは、タスクが停止された理由を示します。
+ `StoppedReason` - タスクが停止した理由を示します。
+ `reason` (`containers` 構造の場合) - 理由には、停止したコンテナに関するその他の詳細が含まれます。

------

## 次のステップ
<a name="additional-resources"></a>

停止したタスクを表示して、原因に関する情報を取得します。詳細については、「[Amazon ECS の停止したタスクのエラーメッセージ](stopped-task-error-codes.md)」を参照してください。

# Amazon ECS の停止したタスクのエラーメッセージ
<a name="stopped-task-error-codes"></a>

タスクが予期せず停止した場合に表示される可能性のあるエラーメッセージは、以下のとおりです。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

**ヒント**  
[Amazon ECS MCP サーバー](ecs-mcp-introduction.md) と AI アシスタントを使用することで、タスクの失敗とコンテナログの分析を自然言語で実行できます。

停止したタスクのエラーコードには、「ResourceInitializationError」などのカテゴリが関連付けられています。各カテゴリの詳細については、以下を参照してください。


| Category | 詳細情報 | 
| --- | --- | 
|  TaskFailedToStart  |  [Amazon ECS TaskFailedToStart エラーのトラブルシューティング](failed-to-start-error.md)  | 
|  ResourceInitializationError  |  [Amazon ECS での ResourceInitializationError エラーのトラブルシューティング](resource-initialization-error.md)  | 
| ResourceNotFoundException |  [Amazon ECS ResourceNotFoundException エラーのトラブルシューティング](resource-not-found-error.md) | 
|  SpotInterruptionError  |  [Amazon ECS での SpotInterruption エラーのトラブルシューティング](spot-interruption-errors.md)  | 
|  InternalError  |  [Amazon ECS での InternalError エラーのトラブルシューティング](internal-error.md)  | 
|  OutOfMemoryError  |  [Amazon ECS での OutOfMemoryError エラーのトラブルシューティング](out-of-memory.md)  | 
|  ContainerRuntimeError  |  [Amazon ECS での ContainerRuntimeError エラーのトラブルシューティング](container-runtime-error.md)  | 
|  ContainerRuntimeTimeoutError  |  [Amazon ECS での ContainerRuntimeTimeoutError エラーのトラブルシューティング](container-runtime-timeout-error.md)  | 
|  CannotStartContainerError  |  [Amazon ECS での CannotStartContainerError エラーのトラブルシューティング](cannot-start-container.md)  | 
|  CannotStopContainerError  |  [Amazon ECS での CannotStopContainerError エラーのトラブルシューティング](cannot-stop-container.md)  | 
|  CannotInspectContainerError  |  [Amazon ECS での CannotInspectContainerError エラーのトラブルシューティング](cannot-inspect-container.md)  | 
|  CannotCreateVolumeError  |  [Amazon ECS での CannotCreateVolumeError エラーのトラブルシューティング](cannot-create-volume.md)  | 
| CannotPullContainer |  [Amazon ECS での CannotPullContainer タスクエラー](task_cannot_pull_image.md)  | 

# Amazon ECS TaskFailedToStart エラーのトラブルシューティング
<a name="failed-to-start-error"></a>

以下に、`TaskFailedToStart` エラーメッセージおよび、そのエラーを修正するために取れる措置を示します。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## Unexpected EC2 error while attempting to Create Network Interface with public IP assignment enabled in subnet '*subnet-id*
<a name="subnet-error"></a>

これは、`awsvpc` ネットワークモードを使用し、パブリック IP アドレスを持つサブネットで実行される Fargate タスクにおいて、サブネットに十分な IP アドレスがない場合に発生します。

利用可能な IP アドレスの数は、Amazon EC2 コンソールのサブネットの詳細ページ、または `[describe-subnets](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-subnets.html)` を使用して確認できます。詳細については、「*Amazon VPC ユーザーガイド*」の「[サブネットを表示する](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#view-subnet)」を参照してください。

この問題を修正するには、タスクを実行するための新しいサブネットを作成します。

## InternalError: *<reason>*
<a name="internal-error-reason"></a>

このエラーは、ENI アタッチメントが要求されたときに発生します。Amazon EC2 は ENI のプロビジョニングを非同期で処理します。プロビジョニングプロセスには時間がかかります。Amazon ECS では、待ち時間が長かったり、エラーが報告されない場合に備えてタイムアウトを設けています。ENI がプロビジョニングされても、レポートは障害タイムアウト後に Amazon ECS に送られる場合があります。この場合、Amazon ECS は使用中の ENI で報告されたタスク障害を確認します。

## The selected task definition is not compatible with the selected compute strategy
<a name="compute-compatibility"></a>

このエラーは、起動タイプがクラスターのキャパシティタイプと一致しないタスク定義を選択した場合に発生します。クラスターに割り当てられたキャパシティープロバイダーと一致するタスク定義を選択する必要があります。

## Unable to attach network interface to unused device index
<a name="compute-compatibility-cpu"></a>

このエラーは、`awsvpc` ネットワーキングタイプを使用しているときに、タスク用に十分な CPU/メモリがない場合に発生します。まず、インスタンスの CPU を確認します。詳細については、「*Amazon EC2 インスタンスタイプ*」の「[Amazon EC2 インスタンスタイプの仕様](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-type-specifications.html)」を参照してください。インスタンスの CPU 値をインスタンスの ENI の数で乗算します。その値をタスク定義で使用します。

## AGENT
<a name="agent-not-started"></a>

タスクを起動しようとしたコンテナインスタンスに、現在接続されていないエージェントがあります。タスク配置の待ち時間が長くならないように、リクエストは拒否されました。

切断されたエージェントをトラブルシューティングする方法については、「[切断された Amazon ECS エージェントをトラブルシューティングするにはどうすればよいですか?](https://repost.aws/knowledge-center/ecs-agent-disconnected-linux2-ami)」を参照してください。

# Amazon ECS での ResourceInitializationError エラーのトラブルシューティング
<a name="resource-initialization-error"></a>

以下に、`ResourceInitialization` エラーメッセージおよび、そのエラーを修正するために取れる措置を示します。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

**Topics**
+ [The task cannot pull registry authentication from Amazon ECR. There is a connection issue between the task and Amazon ECR. Check your task network configuration.](#unable-to-pull-secrets-ecr)
+ [The task can't download the environment variable files from Amazon S3. There is a connection issue between the task and Amazon S3. Check your task network configuration.](#failed-to-download-env-files)
+ [The task cannot pull secrets from AWS Systems Manager Parameter Store. Check your network connection between the task and AWS Systems Manager.](#unable-to-pull-secrets-sys-manager)
+ [The task can’t pull secrets from AWS Secrets Manager. There is a connection issue between the task and Secrets Manager. Check your task network configuration.](#unable-to-pull-secrets-asm-no-arn)
+ [The task can’t pull the secret from Secrets Manager. The task can't retrieve the secret with ARN ‘*secretARN*' from Secrets Manager. Check whether the secret exists in the specified Region.](#unable-to-pull-secrets-asm)
+ [pull command failed: unable to pull secrets or registry auth Check your task network configuration.](#pull-command-failed)
+ [The task cannot find the Amazon CloudWatch log group defined in the task definition. There is a connection issue between the task and Amazon CloudWatch. ネットワーク設定を確認します。](#failed-to-initialize-logging-network)
+ [failed to initialize logging driver](#failed-to-initialize-logging)
+ [failed to invoke EFS utils commands to set up EFS volumes](#efs-utils-failed)

## The task cannot pull registry authentication from Amazon ECR. There is a connection issue between the task and Amazon ECR. Check your task network configuration.
<a name="unable-to-pull-secrets-ecr"></a>

このエラーは、タスクが Amazon ECR に接続できないことを示します。

タスクと Amazon ECR との間の接続を確認してください。詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## The task can't download the environment variable files from Amazon S3. There is a connection issue between the task and Amazon S3. Check your task network configuration.
<a name="failed-to-download-env-files"></a>

このエラーは、タスクが Amazon S3 から環境設定ファイルをダウンロードできない場合に発生します。

タスクと Amazon S3 VPC エンドポイントとの間の接続を確認してください。詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## The task cannot pull secrets from AWS Systems Manager Parameter Store. Check your network connection between the task and AWS Systems Manager.
<a name="unable-to-pull-secrets-sys-manager"></a>

このエラーは、タスクが Systems Manager の認証情報を使用して、タスク定義で定義されたイメージをプルできない場合に発生します。

タスクと Systems Manager VPC エンドポイントとの間の接続を確認してください。詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## The task can’t pull secrets from AWS Secrets Manager. There is a connection issue between the task and Secrets Manager. Check your task network configuration.
<a name="unable-to-pull-secrets-asm-no-arn"></a>

このエラーは、タスクが Secrets Manager の認証情報を使用して、タスク定義で定義されたイメージをプルできない場合に発生します。

エラーは、Systems Manager VPC エンドポイントとタスク間のネットワーク接続に問題があることを示します。

タスクとエンドポイント間の接続を確認する方法については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## The task can’t pull the secret from Secrets Manager. The task can't retrieve the secret with ARN ‘*secretARN*' from Secrets Manager. Check whether the secret exists in the specified Region.
<a name="unable-to-pull-secrets-asm"></a>

このエラーは、タスクが Secrets Manager の認証情報を使用して、タスク定義で定義されたイメージをプルできない場合に発生します。

この問題は、次のいずれかの理由によって発生します。


| エラーの原因 | 手順 | 
| --- | --- | 
|   Secrets Manager VPC エンドポイントとタスク間のネットワーク接続の問題 エラーメッセージに次のいずれかの文字列が表示されている場合、問題の原因はネットワークです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/resource-initialization-error.html)  |  タスクと Secrets Manager エンドポイント間の接続を確認します。詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。  | 
| タスク定義で定義されたタスク実行ロールに、Secrets Manager のアクセス許可がありません。 |  タスク実行ロールに、Secrets Manager に必要なアクセス許可を追加します。詳細については、「[Secrets Manager または Systems Manager のアクセス許可](task_execution_IAM_role.md#task-execution-secrets)」を参照してください。  | 
| シークレット ARN が存在しません | Secrets Manager に ARN が 存在することを確認します。イメージの表示については、「Secrets Manager デベロッパーガイド」の「[Secrets Manager でシークレットを検索する](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html)」を参照してください。 | 

## pull command failed: unable to pull secrets or registry auth Check your task network configuration.
<a name="pull-command-failed"></a>

このエラーは、タスクが Amazon ECR、Systems Manager、または Secrets Manager に接続できない場合に発生します。これはネットワークの設定ミスが原因です。

この問題を解決するには、タスクと Amazon ECR との間の接続を確認します。また、タスクとシークレットを保存するサービス (Systems Manager または Secrets Manager) との間の接続も確認する必要があります。詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## The task cannot find the Amazon CloudWatch log group defined in the task definition. There is a connection issue between the task and Amazon CloudWatch. ネットワーク設定を確認します。
<a name="failed-to-initialize-logging-network"></a>

このエラーは、タスクがタスク定義で定義した CloudWatch ロググループを見つけられない場合に発生します。

このエラーは、CloudWatch VPC エンドポイントとタスクとの間のネットワーク接続に問題があることを示します。

タスクとエンドポイント間の接続を確認する方法については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## failed to initialize logging driver
<a name="failed-to-initialize-logging"></a>

このエラーは、タスクがタスク定義で定義した CloudWatch ロググループを見つけられない場合に発生します。

このエラーは、タスク定義内に CloudWatch グループが存在しないことを示します。

対象の CloudWatch を検索するには、次の手順を実行します。

1. 次のコマンドを実行して、タスク定義情報を取得します。

   ```
   aws ecs describe-task-definition \ 
       --task-definition task-def-name
   ```

   各コンテナの出力を見て、`awslogs-group` 値を書き留めます。

   ```
   "logConfiguration": {
                   "logDriver": "awslogs",
                   "options": {
                       "awslogs-group": "/ecs/example-group",
                       "awslogs-create-group": "true",
                       "awslogs-region": "us-east-1",
                       "awslogs-stream-prefix": "ecs"
                   },
   ```

1. このグループが CloudWatch に存在することを確認します。詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「[ロググループとログストリームの操作](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)」を参照してください。**

   この問題は、タスク定義で指定されたグループが正しくないことか、ロググループが存在しないことのいずれかです。

1. 問題を修正します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/resource-initialization-error.html)

## failed to invoke EFS utils commands to set up EFS volumes
<a name="efs-utils-failed"></a>

以下の問題により、タスクに Amazon EFS ボリュームをマウントできない可能性があります。
+ Amazon EFS ファイルシステムが正しく設定されていません。
+ タスクに必要なアクセス許可がありません。
+ ネットワークおよび VPC 構成に関連する問題があります。

 この問題をデバッグして修正する方法については、AWS re:Post の 「[AWS Fargate タスクに Amazon EFS ボリュームをマウントできない理由](https://repost.aws/knowledge-center/fargate-unable-to-mount-efs)」を参照してください。

# Amazon ECS ResourceNotFoundException エラーのトラブルシューティング
<a name="resource-not-found-error"></a>

以下に、` ResourceNotFoundException` エラーメッセージおよび、そのエラーを修正するために取れる措置を示します。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## The task can't retrieve the secret with ARN '*sercretARN*' from AWS Secrets Manager. Check whether the secret exists in the specified Region.
<a name="unable-to-pull-secrets-ecr"></a>

このエラーは、タスクが Secrets Manager からシークレットを取得できない場合に発生します。つまり、タスク定義で指定されたシークレット (およびエラーメッセージに含まれるシークレット) は Secrets Manager に存在しないということです。

リージョンはエラーメッセージに含まれています。

Fetching secret data from AWS Secrets Manager in region *region*: secret *sercretARN*: ResourceNotFoundException: Secrets Manager can't find the specified secret.

シークレットの検索方法については、「*AWS Secrets Manager ユーザーガイド*」の「[AWS Secrets Manager でシークレットを検索する](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html)」を参照してください。

次の表を使用して、エラーを特定して対処します。


| 問題 | アクション | 
| --- | --- | 
| シークレットは、タスク定義とは異なるリージョンにあります。 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/resource-not-found-error.html) | 
| タスク定義に誤ったシークレット ARN が存在します。正しいシークレットは Secrets Manager に存在します。 | 正しいシークレットでタスク定義を更新します。詳細については、「Amazon Elastic Container Service API リファレンス」の「[コンソールを使用した Amazon ECS タスク定義の更新](update-task-definition-console-v2.md)」または「[RegisterTaskDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html)」参照してください。 | 
| シークレットが存在しません。 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/resource-not-found-error.html)  | 

# Amazon ECS での SpotInterruption エラーのトラブルシューティング
<a name="spot-interruption-errors"></a>

`SpotInterruption` エラーの原因は、Fargate と EC2 によって異なります。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## Fargate
<a name="fargate-spot-error"></a>

`SpotInterruption` エラーは、Fargate Spot に容量がない場合や、Fargate がスポット容量を元に戻した場合に発生します。

タスクを複数のアベイラビリティーゾーンで実行することで、容量を増やすことができます。

## EC2
<a name="ec2-spot-error"></a>

このエラーは、使用可能なスポットインスタンスがない場合や、EC2 がスポットインスタンスの容量を元に戻した場合に発生します。

インスタンスを複数のアベイラビリティーゾーンで実行することで、容量を増やすことができます。

# Amazon ECS での InternalError エラーのトラブルシューティング
<a name="internal-error"></a>

**適用先**: Fargate

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

`InternalError` エラーは、ランタイムに関連しない予期せぬ内部エラーがエージェントに発生した場合に発生します。

このエラーは、プラットフォームバージョン `1.4` 以降を使用の場合にのみ発生します。

この問題のデバッグおよび修正方法については、[Amazon ECS の停止したタスクのエラーメッセージ](stopped-task-error-codes.md) を参照してください。

# Amazon ECS での OutOfMemoryError エラーのトラブルシューティング
<a name="out-of-memory"></a>

以下は、OutOfMemoryError のエラーメッセージと、エラーを修正するために実行できるアクションの一部です。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## container killed due to memory usage
<a name="container-memory-usage"></a>

このエラーは、コンテナ内のプロセスでタスク定義で割り当てられたメモリよりも多くのメモリを消費しているか、またはホストやオペレーティングシステムに制約があることが原因でコンテナが終了したときに発生します。

# Amazon ECS での ContainerRuntimeError エラーのトラブルシューティング
<a name="container-runtime-error"></a>

以下は、ContainerRuntimeError のエラーメッセージと、エラーを修正するために実行できるアクションの一部です。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## ContainerRuntimeError
<a name="container-runtime-error-1"></a>

このエラーは、エージェントが `containerd` がランタイム固有のオペレーションに関する予期しないエラーを受け取った場合に発生します。このエラーは通常、エージェントや `containerd` ランタイムの内部障害によって発生します。

このエラーは、プラットフォームバージョン `1.4.0` 以降 (Linux) または `1.0.0` 以降 (Windows) を使用している場合のみに発生します。

この問題をデバッグして修正する方法については、AWS re:Post の「[Amazon ECS タスクが停止する理由](https://repost.aws/knowledge-center/ecs-task-stopped)」を参照してください。

# Amazon ECS での ContainerRuntimeTimeoutError エラーのトラブルシューティング
<a name="container-runtime-timeout-error"></a>

以下は、ContainerRuntimeTimeoutError のエラーメッセージと、エラーを修正するために実行できるアクションの一部です。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## Could not transition to running; timed out after waiting 1m or Docker timeout error
<a name="container-runtime-timeout-error-1"></a>

このエラーは、タイムアウト期間内にコンテナが `RUNNING`または`STOPPED`のどちらかの状態に移行できなかった場合に発生します。理由とタイムアウト値は、エラーメッセージに表示されます。

# Amazon ECS での CannotStartContainerError エラーのトラブルシューティング
<a name="cannot-start-container"></a>

以下は、CannotStartContainerError のエラーメッセージと、エラーを修正するために実行できるアクションの一部です。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## failed to get container status: *<reason>*
<a name="cannot-start-container-1"></a>

このエラーは、コンテナをスタートできない場合に発生します。

コンテナは、ここで指定したメモリを超えようとすると、停止されます。コンテナに提供するメモリを増やしてください。これは、タスク定義の `memory` パラメータです。詳細については、「[メモリ](task_definition_parameters.md#container_definition_memory)」を参照してください。

# Amazon ECS での CannotStopContainerError エラーのトラブルシューティング
<a name="cannot-stop-container"></a>

以下は、CannotStopContainerError のエラーメッセージと、エラーを修正するために実行できるアクションの一部です。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## CannotStopContainerError
<a name="cannot-stop-container-1"></a>

このエラーは、コンテナを停止できない場合に発生します。

この問題をデバッグして修正する方法については、AWS re:Post の「[Amazon ECS タスクが停止する理由](https://repost.aws/knowledge-center/ecs-task-stopped)」を参照してください。

# Amazon ECS での CannotInspectContainerError エラーのトラブルシューティング
<a name="cannot-inspect-container"></a>

以下は、CannotInspectContainerError のエラーメッセージと、エラーを修正するために実行できるアクションの一部です。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## CannotInspectContainerError
<a name="cannot-inspect-container-1"></a>

このエラーは、コンテナエージェントがコンテナランタイムを通してコンテナを説明できない場合に発生します。

プラットフォームバージョン `1.3` 以前を使用している場合、Amazon ECS エージェントは Docker から理由を返します。

プラットフォームバージョン `1.4.0` 以降 (Linux) または `1.0.0` 以降 (Windows) を使用している場合、Fargate エージェントは `containerd` から理由を返します。

この問題をデバッグして修正する方法については、AWS re:Post の「[Amazon ECS タスクが停止する理由](https://repost.aws/knowledge-center/ecs-task-stopped)」を参照してください。

# Amazon ECS での CannotCreateVolumeError エラーのトラブルシューティング
<a name="cannot-create-volume"></a>

以下は、CannotCreateVolumeError のエラーメッセージと、エラーを修正するために実行できるアクションの一部です。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

## CannotCreateVolumeError
<a name="cannot-create-volume-1"></a>

このエラーは、エージェントがタスク定義に指定されているボリュームマウントを作成できない場合に発生します。

このエラーは、プラットフォームバージョン `1.4.0` 以降 (Linux) または `1.0.0` 以降 (Windows) を使用している場合のみに発生します。

この問題をデバッグして修正する方法については、AWS re:Post の「[Amazon ECS タスクが停止する理由](https://repost.aws/knowledge-center/ecs-task-stopped)」を参照してください。

# Amazon ECS での CannotPullContainer タスクエラー
<a name="task_cannot_pull_image"></a>

次のエラーは、Amazon ECS が指定されたコンテナイメージを取得できないためにタスクを開始できなかったことを示しています。

**注記**  
1.4 Fargate プラットフォームバージョンでは、長いエラーメッセージが切り捨てられます。

停止したタスクのエラーメッセージを AWS マネジメントコンソール で確認する方法については、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

**ヒント**  
[Amazon ECS MCP サーバー](ecs-mcp-introduction.md) と AI アシスタントを使用することで、イメージプルエラーの調査を自然言語で実行できます。

**Topics**
+ [The task can’t pull the image. ロールにレジストリからイメージをプルするためのアクセス許可があることを確認します。](#pull-request-image-not-found)
+ [The task cannot pull ‘*image-name*’ from the Amazon ECR repository ‘*repository URI*’. There is a connection issue between the task and Amazon ECR. Check your task network configuration.](#pull-image-io-timeout)
+ [The task can’t pull the image. Check your network configuration](#pull-request-image-not-found-network)
+ [CannotPullContainerError: プルイメージマニフェストが 5 回再試行されました: ref の解決に失敗しました](#pull-request-image-tag)
+ [API error (500): Get https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: request canceled while waiting for connection](#request-canceled)
+ [API エラー](#pull-request-api-error)
+ [write /var/lib/docker/tmp/*GetImageBlob111111111*: no space left on device](#pull-request-write-error)
+ [ERROR: toomanyrequests: Too Many Requests or You have reached your pull rate limit.](#container-pull-too-many-requests)
+ [Error response from daemon: Get *url*: net/http: request canceled while waiting for connection](#container-pull-request-canceled-connection)
+ [ref pull has been retried 1 time(s): failed to copy: httpReaderSeeker: failed open: unexpected status code](#container-pull-failed-open)
+ [pull access denied](#container-pull-access-denied.title)
+ [pull command failed: panic: runtime error: invalid memory address or nil pointer dereference](#container-pull-runtime-error.title)
+ [error pulling image conf/error pulling image configuration](#container-pull-pulling-image.title)
+ [コンテキストがキャンセルされました](#container-pull-context-canceled)

## The task can’t pull the image. ロールにレジストリからイメージをプルするためのアクセス許可があることを確認します。
<a name="pull-request-image-not-found"></a>

このエラーは、アクセス許可の問題により、タスク定義で指定されたイメージをタスクがプルできないことを示します。

この問題を解決するには。

1. イメージが*リポジトリ*に存在することを確認してください。イメージの表示の詳細については、「*Amazon Elastic Container Registry ユーザーガイド*」の「[Amazon ECR でのイメージの詳細の表示](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-info.html)」を参照してください。

1. *role-arn* にイメージをプルするための正しいアクセス許可があることを確認します。

   ロールを更新する方法については、「*AWS Identity and Access Management ユーザーガイド*」の「[ロールに対するアクセス許可を更新する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html)」を参照してください。

   タスクには次のいずれかのロールを使用します。
   + Fargate のタスクの場合、これはタスク実行ロールになります。Amazon ECR の追加のアクセス許可については、「[インターフェイスエンドポイントのアクセス許可によって Amazon ECR イメージをプルする Fargate タスクです。](task_execution_IAM_role.md#task-execution-ecr-conditionkeys)」を参照してください。
   + EC2 のタスクの場合、これはコンテナインスタンスロールになります。Amazon ECR の追加のアクセス許可については、「[Amazon ECR のアクセス許可](instance_IAM_role.md#container-instance-role-ecr)」を参照してください。

## The task cannot pull ‘*image-name*’ from the Amazon ECR repository ‘*repository URI*’. There is a connection issue between the task and Amazon ECR. Check your task network configuration.
<a name="pull-image-io-timeout"></a>

このエラーは、タスクが Amazon ECR に接続できないことを示します。*リポジトリ URI* リポジトリへの接続を確認してください。

これらの問題を検証および解決する方法の詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## The task can’t pull the image. Check your network configuration
<a name="pull-request-image-not-found-network"></a>

このエラーは、タスクが Amazon ECR に接続できないことを示します。

これらの問題を検証および解決する方法の詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## CannotPullContainerError: プルイメージマニフェストが 5 回再試行されました: ref の解決に失敗しました
<a name="pull-request-image-tag"></a>

このエラーは、タスクがイメージをプルできないことを示します。

この問題を解決する方法は以下のとおりです。
+ タスク定義で指定されたイメージがリポジトリ内のイメージと一致することを確認してください。
+ Amazon ECS はイメージバージョンの安定性を強制します。元のイメージが使用できなくなった場合、このエラーが発生します。イメージタグは、この挙動の執行プロセスの一部です。タグとして :latest を使用するタスク定義のイメージを、特定のバージョンに変更してください。詳細については、「[コンテナイメージの解決](deployment-type-ecs.md#deployment-container-image-stability)」を参照してください。

これらの問題を検証および解決する方法の詳細については、「[Amazon ECS の停止したタスクの接続を検証する](verify-connectivity.md)」を参照してください。

## API error (500): Get https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: request canceled while waiting for connection
<a name="request-canceled"></a>

このエラーは、インターネットへのルートがないため、接続がタイムアウトしたことを示します。

この問題を解決するには、以下ができます。
+ パブリックサブネットのタスクでは、タスクの起動時に **[Auto-assign public IP]** (自動割り当てパブリック IP)を **[ENABLED]** (有効)に指定する必要があります。詳細については、「[Amazon ECS タスクとしてのアプリケーションの実行](standalone-task-create.md)」を参照してください。
+ プライベートサブネットのタスクでは、タスク起動時に **[Auto-assign public IP]** (自動割り当てパブリック IP) を **[DISABLED]** (無効) に指定し、VPC の NAT ゲートウェイを設定してリクエストをインターネットにルートします。詳細については、*Amazon VPC ユーザーガイド* の [NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) を参照してください。

## API エラー
<a name="pull-request-api-error"></a>

このエラーは、Amazon ECR エンドポイントとの接続に問題があることを示します。

この問題を解決する方法については、サポート ウェブサイトの「[Amazon ECS の Amazon ECR エラー "CannotPullContainerError: API error" を解決するには](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-pull-container-api-error-ecr/)」を参照してください。

## write /var/lib/docker/tmp/*GetImageBlob111111111*: no space left on device
<a name="pull-request-write-error"></a>

このエラーは、ディスク容量が不足していることを示しています。

この問題を解決するには、ディスク容量を解放します。

Amazon ECS 最適化 AMI を使用している場合は、次のコマンドを使用してファイルシステムで 20 個の最大ファイルを取得できます。

```
du -Sh / | sort -rh | head -20
```

出力例:

```
5.7G    /var/lib/docker/containers/50501b5f4cbf90b406e0ca60bf4e6d4ec8f773a6c1d2b451ed8e0195418ad0d2
1.2G    /var/log/ecs
594M    /var/lib/docker/devicemapper/mnt/c8e3010e36ce4c089bf286a623699f5233097ca126ebd5a700af023a5127633d/rootfs/data/logs
...
```

場合によっては、実行中のコンテナによってルートボリュームがいっぱいになる可能性があります。コンテナが `max-size` 制限のないデフォルトの `json-file` ログドライバーを使用している場合、ログファイルが使用されているスペースの大半を占めている可能性があります。`docker ps` コマンドを使用して、上記の出力からコンテナ ID にディレクトリ名をマッピングすることによって、どのコンテナが容量を使用しているかを確認します。例えば、次のようになります。

```
CONTAINER ID   IMAGE                            COMMAND             CREATED             STATUS              PORTS                            NAMES
50501b5f4cbf   amazon/amazon-ecs-agent:latest   "/agent"            4 days ago          Up 4 days                                            ecs-agent
```

デフォルトでは、`json-file` ログドライバーを使用する場合、Docker はすべてのコンテナの標準出力 (および標準エラー) をキャプチャし、JSON 形式を使用してファイルに書き込みます。ログドライバーオプションとして `max-size` を設定できます。これにより、ログファイルの容量が大きくなりすぎるのを防ぐことができます。詳細については、Docker ドキュメントの「[JSON ファイルロギングドライバー](https://docs.docker.com/engine/logging/drivers/json-file/)」を参照してください。

このオプションの使用方法を示すコンテナ定義のスニペットを次に示します。

```
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "256m"
    }
}
```

コンテナログのディスク容量使用量が大きすぎる場合、`awslogs` ログドライバーを使用することもできます。`awslogs` ログドライバーがログを CloudWatch に送信します。これによりコンテナインスタンスのコンテナログに使用されるディスク容量が解放されます。詳細については、「[Amazon ECS ログを CloudWatch に送信する](using_awslogs.md)」を参照してください。

Docker がアクセスできるディスクサイズに更新する必要がある場合があります。

詳細については、「[CannotPullContainerError: no space left on device](https://repost.aws/questions/QUx6Ix1R1SSNisYSs1Sw8EBA/cannotpullcontainererror-no-space-left-on-device)」を参照してください。

## ERROR: toomanyrequests: Too Many Requests or You have reached your pull rate limit.
<a name="container-pull-too-many-requests"></a>

このエラーは、Docker Hub のレート制限があることを示します。

次のエラーのいずれかが表示された場合は、Docker Hub のレート制限に達している可能性があります。

Docker Hub のレート制限の詳細については、[[Understanding Docker Hub rate limiting]](https://www.docker.com/increase-rate-limits) (Docker ハブのレート制限を理解する) を参照してください。

Docker Hub のレート制限を上げ、コンテナインスタンスの Docker プルを認証する必要がある場合は、「[Private registry authentication for container instances](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth-container-instances.html)」を参照してください。

## Error response from daemon: Get *url*: net/http: request canceled while waiting for connection
<a name="container-pull-request-canceled-connection"></a>

このエラーは、インターネットへのルートがないため、接続がタイムアウトしたことを示します。

この問題を解決するには、以下ができます。
+ パブリックサブネットのタスクでは、タスクの起動時に **[Auto-assign public IP]** (自動割り当てパブリック IP)を **[ENABLED]** (有効)に指定する必要があります。詳細については、「[Amazon ECS タスクとしてのアプリケーションの実行](standalone-task-create.md)」を参照してください。
+ プライベートサブネットのタスクでは、タスク起動時に **[Auto-assign public IP]** (自動割り当てパブリック IP) を **[DISABLED]** (無効) に指定し、VPC の NAT ゲートウェイを設定してリクエストをインターネットにルートします。詳細については、*Amazon VPC ユーザーガイド* の [NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) を参照してください。

## ref pull has been retried 1 time(s): failed to copy: httpReaderSeeker: failed open: unexpected status code
<a name="container-pull-failed-open"></a>

このエラーは、イメージのコピー時に問題があったことを示します。

この問題を解決するには、次のいずれかの記事を確認してください。
+ Fargate タスクについては、[Fargate Amazon ECSタスクの「cannotpullcontainererror」エラーの解決方法](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-fargate-pull-container-error/)を参照してください。
+ その他のタスクについては、[Amazon ECS タスクの「cannotpullcontainererror」エラーの解決方法](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-pull-container-error/)を参照してください。

## pull access denied
<a name="container-pull-access-denied.title"></a>

このエラーは、イメージにアクセスできないことを示します。

この問題を解決するには、Amazon ECR で Docker クライアントを認証する必要がある場合があります。詳細については、「*Amazon ECR ユーザーガイド*」の「[プライベートレジストリ認証](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html)」を参照してください。

## pull command failed: panic: runtime error: invalid memory address or nil pointer dereference
<a name="container-pull-runtime-error.title"></a>

このエラーは、メモリアドレスが無効であるか、ポインターデリファレンスが nil であるため、イメージにアクセスできないことを示しています。

この問題を解決するには。
+ Amazon S3 に到達するためのセキュリティグループのルールがあることを確認してください。
+ ゲートウェイエンドポイントを使用するときは、エンドポイントにアクセスするためのルートをルートテーブルに追加する必要があります。

## error pulling image conf/error pulling image configuration
<a name="container-pull-pulling-image.title"></a>

このエラーは、レート制限に達したか、ネットワークエラーが発生したことを示します。

この問題を解決するには、「[Amazon ECS EC2 起動タイプタスクで CannotPullContainerError エラーを解決する方法](https://repost.aws/knowledge-center/ecs-pull-container-error)」を参照してください。

## コンテキストがキャンセルされました
<a name="container-pull-context-canceled"></a>

このエラーは、コンテキストがキャンセルされたことを示しています。

このエラーの一般的な原因は、タスクが使用している VPC にコンテナイメージを Amazon ECR から取得するルートがないためです。

# Amazon ECS の停止したタスクの接続を検証する
<a name="verify-connectivity"></a>

ネットワーク接続の問題により、タスクが停止することがあります。断続的な問題である可能性がありますが、タスクがエンドポイントに接続できないことが原因である可能性が最も高いです。

## タスクの接続をテストする
<a name="test-network"></a>

`AWSSupport-TroubleshootECSTaskFailedToStart` ランブックを使用して、タスクの接続をテストできます。ランブックを使用する場合は、次のリソースに関する情報が必要です。
+ タスク ID

  最後に失敗したタスク のID を使用します。
+ タスクが属していたクラスター

ランブックの使用方法については、「AWS Systems Manager Automation ランブックリファレンス」の「[https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-troubleshootecstaskfailedtostart.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-troubleshootecstaskfailedtostart.html)」を参照してください。**

ランブックはタスクを分析します。タスクの開始を妨げる可能性のある次の問題については、「**出力**」セクションで結果を確認できます。
+ 設定済みのコンテナレジストリーへのネットワーク接続
+ VPC エンドポイント接続
+ セキュリティグループのルール設定

## VPC エンドポイントの問題を修正する
<a name="fix-vpc-endpoints"></a>

`AWSSupport-TroubleshootECSTaskFailedToStart` ランブックの結果に VPC エンドポイントの問題が表示された場合は、次の設定を確認します。
+ エンドポイントと VPC エンドポイントを作成する VPC では、プライベート DNS を使用する必要があります。
+ タスクが接続できないサービスの AWS PrivateLink エンドポイントが、タスクと同じ VPC 内にあることを確認してください。詳細については、以下のいずれかを参照してください。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/verify-connectivity.html)
+ ポート 443 DNS (TCP) トラフィックで HTTPS を許可するタスクサブネットのアウトバウンドルールを設定します。詳細については、「*Amazon Elastic Compute Cloud ユーザーガイド*」の「[セキュリティグループのルールを設定する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html#add-remove-security-group-rules)」を参照してください。
+ カスタムネームドメインサーバーを使用する場合は、DNS クエリの設定を確認します。クエリは、53 番ポートで外部への通信を行うことができ、UDP および TCP プロトコルを使用する必要があります。また、443 番ポートでの HTTPS 通信も必要です。詳細については、「*Amazon Elastic Compute Cloud ユーザーガイド*」の「[セキュリティグループのルールを設定する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html#add-remove-security-group-rules)」を参照してください。
+ サブネットにネットワーク ACL がある場合は、次の ACL ルールが必要です。
  + ポート 1024-65535 でトラフィックを許可するアウトバウンドルール
  + ポート 443 の TCP トラフィックを許可するインバウンドルール

  ルールの設定方法については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[ネットワーク ACL を使用してサブネットへのトラフィックを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)」を参照してください。

## ネットワークの問題を修正する
<a name="fix-network-issues"></a>

`AWSSupport-TroubleshootECSTaskFailedToStart` ランブックの結果にネットワークの問題が表示されたら、次の設定を確認します。

### パブリックサブネットで awsvpc ネットワークモードを使用するタスク
<a name="fix-network-issues-fargate-public"></a>

ランブックに基づいて次の設定を実行します。
+ パブリックサブネットのタスクでは、タスクの起動時に **[Auto-assign public IP]** (自動割り当てパブリック IP)を **[ENABLED]** (有効)に指定する必要があります。詳細については、「[Amazon ECS タスクとしてのアプリケーションの実行](standalone-task-create.md)」を参照してください。
+ インターネットトラフィックを処理するにはゲートウェイが必要です。タスクサブネットのルートテーブルには、ゲートウェイへのトラフィック用のルートが必要です。

  詳細については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[ルートテーブルのルートの追加と削除](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithRouteTables.html#AddRemoveRoutes)」を参照してください。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/verify-connectivity.html)
+ タスクサブネットにネットワーク ACL がある場合は、次の ACL ルールが必要です。
  + ポート 1024-65535 でトラフィックを許可するアウトバウンドルール
  + ポート 443 の TCP トラフィックを許可するインバウンドルール

  ルールの設定方法については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[ネットワーク ACL を使用してサブネットへのトラフィックを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)」を参照してください。

### プライベートサブネットで awsvpc ネットワークモードを使用するタスク
<a name="fix-network-issues-fargate-private"></a>

ランブックに基づいて次の設定を実行します。
+ タスクの起動時に、**[自動割り当てパブリック IP]** で **[無効]** を選択します。
+  リクエストがインターネットにルーティンされるように VPC の NAT ゲートウェイを設定します。詳細については、「Amazon Virtual Private Cloud ユーザーガイド」の「[NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)」を参照してください。**
+ タスクサブネットのルートテーブルには、NAT ゲートウェイへのトラフィック用のルートが必要です。

  詳細については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[ルートテーブルのルートの追加と削除](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithRouteTables.html#AddRemoveRoutes)」を参照してください。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/verify-connectivity.html)
+ タスクサブネットにネットワーク ACL がある場合は、次の ACL ルールが必要です。
  + ポート 1024-65535 でトラフィックを許可するアウトバウンドルール
  + ポート 443 の TCP トラフィックを許可するインバウンドルール

  ルールの設定方法については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[ネットワーク ACL を使用してサブネットへのトラフィックを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)」を参照してください。

### パブリックサブネットで awsvpc ネットワークモードを使用しないタスク
<a name="fix-network-issues-ec2-public"></a>

ランブックに基づいて次の設定を実行します。
+ クラスターの作成時に、**[Amazon EC2 インスタンスのネットワーク]** の **[IP の自動割り当て]** で、**[オンにする]** を選択します。

  このオプションにより、インスタンスのプライマリネットワークインターフェイスにパブリック IP アドレスを割り当てます。
+ インターネットトラフィックを処理するにはゲートウェイが必要です。インスタンスサブネットのルートテーブルには、ゲートウェイへのトラフィック用のルートが必要です。

  詳細については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[ルートテーブルのルートの追加と削除](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithRouteTables.html#AddRemoveRoutes)」を参照してください。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/verify-connectivity.html)
+ インスタンスサブネットにネットワーク ACL がある場合は、次の ACL ルールが必要です。
  + ポート 1024-65535 でトラフィックを許可するアウトバウンドルール
  + ポート 443 の TCP トラフィックを許可するインバウンドルール

  ルールの設定方法については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[ネットワーク ACL を使用してサブネットへのトラフィックを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)」を参照してください。

### プライベートサブネットで awsvpc ネットワークモードを使用しないタスク
<a name="fix-network-issues-fargate-private"></a>

ランブックに基づいて次の設定を実行します。
+ クラスターの作成時に、**[Amazon EC2 インスタンスのネットワーク]** の **[IP の自動割り当て]** で、**[オフにする]** を選択します。
+  リクエストがインターネットにルーティンされるように VPC の NAT ゲートウェイを設定します。詳細については、*Amazon VPC ユーザーガイド* の [NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) を参照してください。
+ インスタンスサブネットのルートテーブルには、NAT ゲートウェイへのトラフィック用のルートが必要です。

  詳細については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[ルートテーブルのルートの追加と削除](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithRouteTables.html#AddRemoveRoutes)」を参照してください。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/verify-connectivity.html)
+ タスクサブネットにネットワーク ACL がある場合は、次の ACL ルールが必要です。
  + ポート 1024-65535 でトラフィックを許可するアウトバウンドルール
  + ポート 443 の TCP トラフィックを許可するインバウンドルール

  ルールの設定方法については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[ネットワーク ACL を使用してサブネットへのトラフィックを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)」を参照してください。