

# 排查 Amazon ECS Anywhere 问题
<a name="ecs-anywhere-troubleshooting"></a>

Amazon ECS Anywhere 支持向 Amazon ECS 集群注册*外部实例*，如本地部署服务器或虚拟机（VM）。以下是您可能遇到的常见问题以及一般故障排除建议。

**Topics**
+ [外部实例注册问题](#ecs-anywhere-troubleshooting-registration)
+ [外部实例网络问题](#ecs-anywhere-troubleshooting-networking)
+ [在外部实例上运行任务时出现问题](#ecs-anywhere-troubleshooting-runtask)

## 外部实例注册问题
<a name="ecs-anywhere-troubleshooting-registration"></a>

向 Amazon ECS 集群注册外部实例时，必须满足以下要求：
+ 必须检索 AWS Systems Manager 激活，其中包含*激活 ID* 和*激活码*。您可以用它将外部实例注册为 Systems Manager 托管实例。请求 Systems Manager 激活时，可指定注册限制和过期日期。注册限制指定可以使用激活注册的最大实例数。注册限制的默认值为 `1` 实例。过期日期指定激活的过期时间。原定设置值为 24 小时。如果您用于注册外部实例的 Systems Manager 激活无效，请求新实例。有关更多信息，请参阅 [将外部实例注册到 Amazon ECS 集群](ecs-anywhere-registration.md)。
+ IAM 策略用于为外部实例提供与 AWS API 操作通信所需的权限。如果未正确创建此托管策略且不包含所需的权限，则外部实例注册失败。有关更多信息，请参阅 [Amazon ECS Anywhere IAM 角色](iam-role-ecsanywhere.md)。
+ Amazon ECS 提供了一个安装脚本，用于在您的外部实例上安装 Docker、Amazon ECS 容器代理和 Systems Manager Agent。如果安装脚本失败，则脚本很可能无法在同一实例上再次运行，而不会发生错误。如果发生这种情况，请按照清理过程清除 AWS 资源，这样，您可以再次运行安装脚本。有关更多信息，请参阅 [注销 Amazon ECS 外部实例](ecs-anywhere-deregistration.md)。
**注意**  
请注意，如果成功请求安装脚本并使用了 Systems Manager 激活，则第二次运行安装脚本将使用 Systems Manager 激活。这反过来可能会让您达到该激活的注册限制。如果达到限制，必须创建一个新激活。
+ 在外部实例上运行 GPU 工作负载的安装脚本时，如果没有检测到或正确配置 NVIDIA 驱动程序，将发生错误。安装脚本使用 `nvidia-smi` 命令来确认 NVIDIA 驱动程序的存在。

## 外部实例网络问题
<a name="ecs-anywhere-troubleshooting-networking"></a>

要传达任何更改，您的外部实例需要与 AWS 连接的网络。如果您的外部实例失去了与 AWS 的网络连接，在手动停止之前，在您的实例上运行的任务将继续运行。和 AWS 的连接恢复时，Amazon ECS 容器代理和 Systems Manager Agent 在外部实例上使用的 AWS 凭证将自动续订。有关用来沟通外部实例和 AWS 的 AWS 域的更多信息，请参阅 [Networking](ecs-anywhere.md#ecs-anywhere-networking)。

## 在外部实例上运行任务时出现问题
<a name="ecs-anywhere-troubleshooting-runtask"></a>

如果您的任务或容器无法在外部实例上运行，最常见的原因是网络或权限相关。如果您的容器从 Amazon ECR 中提取其映像或配置为将容器日志发送到 CloudWatch Logs，则您的任务定义必须指定一个有效的任务执行 IAM 角色。如果没有有效的任务执行 IAM 角色，您的容器将无法启动。有关网络相关问题的更多信息，请参阅 [外部实例网络问题](#ecs-anywhere-troubleshooting-networking)。

**重要**  
Amazon ECS 提供 Amazon ECS 日志收集工具。您可以用它从外部实例收集日志进行故障排除。有关更多信息，请参阅 [使用 Amazon ECS 日志收集器收集容器日志](ecs-logs-collector.md)。