如何排查在 Amazon S3 存储桶上运行 sync 命令时出现的“Could not connect to the endpoint URL”错误?

上次更新时间:2020 年 9 月 18 日

我尝试在 Amazon Simple Storage Service (Amazon S3) 存储桶上运行 cpsync 命令,但我收到了“Could not connect to the endpoint URL”(无法连接到终端节点 URL)错误消息。我应该如何排查此问题?

简短描述

要使用 AWS 命令行界面 (AWS CLI) 运行 cpsync 命令,您的计算机必须能够连接到正确的 Amazon S3 终端节点。否则,您会收到“Could not connect to the endpoint URL”(无法连接到终端节点 URL)错误消息。

要排查此错误,请检查以下各项:

  • 确认您使用的 AWS 区域和 Amazon S3 终端节点正确。 
  • 验证您的网络是否可连接到这些 Amazon S3 终端节点。
  • 验证您的 DNS 是否可解析到这些 Amazon S3 终端节点。
  • 如果您在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上看到此错误,请检查 Amazon Virtual Private Cloud (Amazon VPC) 配置。

解决方法

确认您使用的 AWS 区域和 Amazon S3 终端节点正确

当您使用 AWS CLI 运行命令时,API 请求将被发送到默认 AWS 区域的 S3 终端节点,或者在命令中指定了区域时发送到该区域特定的 S3 终端节点。然后,AWS CLI 可以将请求重定向到存储桶的区域 S3 终端节点。

如果与命令关联的区域或终端节点中存在拼写错误或错误,则可能会出现“Could not connect to the endpoint URL”(无法连接到终端节点 URL)错误。 

例如,下面的命令由于在终端节点名称中多了一个“e”,从而导致了错误:

aws s3 cp filename s3://DOC-EXAMPLE-BUCKET/ --endpoint-url https://s3-acceleratee.amazonaws.com

在运行 cp 或 sync 命令之前,请务必正确书写关联的区域S3 终端节点 。 

注意:如果您使用的是 Amazon S3 Transfer Acceleration,请参阅 Amazon S3 Transfer Acceleration 入门以了解终端节点名称。 

验证您的网络是否可以连接到 S3 终端节点

确认您的网络防火墙允许指向相关 Amazon S3 终端节点的流量通过您用于 Amazon S3 流量的端口。

例如,以下 telnet 命令可测试通过端口 443 到 ap-Soust-2 的区域 S3 终端节点的连接: 

注意:请务必将区域终端节点和端口(443 或 80)替换为与您的使用案例相关的值。

telnet s3.ap-southeast-2.amazonaws.com 443

验证您的 DNS 是否可解析到相关 S3 终端节点

要确认您的 DNS 是否可以解析到相关 Amazon S3 终端节点,您可以使用 nslookupping 等 DNS 查询工具。以下示例使用 nslookup

nslookup s3.amazonaws.com

以下示例使用 ping 来确认 DNS 能否解析到该 S3 终端节点:

ping s3.amazonaws.com

如果 DNS 无法解析到相关 S3 终端节点,则必须排查 DNS 配置问题。如果您的 DNS 提供商是 Amazon Route 53,请参阅 Amazon Route 53 问题排查。 

如果您在 EC2 实例上看到此错误,请检查 VPC 配置

如果 EC2 实例位于公有子网中:

如果 EC2 实例位于私有子网中:

  • 请检查是否存在与子网的路由表关联的网络地址转换 (NAT) 网关。NAT 网关可预置到达 Amazon S3 终端节点的 Internet 路径。
  • 如果您使用的是 Amazon S3 的 VPC 终端节点,请验证是否在 AWS CLI 配置文件中设置了正确的区域。Amazon S3 的 VPC 终端节点特定于区域。例如,如果 VPC 和 VPC 终端节点位于 us-east-1 区域,则运行带有参数 --region us-west-1sync 命令时,AWS CLI 会尝试访问 https://s3.us-west-1.amazonaws.com。这会导致出现“Could not connect to the endpoint URL”(无法连接到终端节点 URL)错误。

这篇文章对您有帮助吗?


您是否需要账单或技术支持?