如何解决在不同 AWS 区域的 Amazon S3 存储桶之间传输数据时出现的 503 Slow Down 错误?
上次更新时间:2020 年 1 月 15 日
我尝试在不同 AWS 区域的两个 Amazon Simple Storage Service (Amazon S3) 存储桶之间执行复制操作。但是 Amazon S3 返回了类似以下内容的响应:
“AmazonS3Exception: Slow Down (Service: Amazon S3; Status Code: 503; Error Code: 503 Slow Down; Request ID: A4DBBEXAMPLE2C4D)”
我应该如何解决此错误?
解决方法
您每秒可以在 S3 存储桶中为每个前缀发送 3500 个 PUT/COPY/POST/DELETE 或 5500 个 GET/HEAD 请求。当 Amazon S3 返回 503 Slow Down 响应时,这通常表示请求超出每个前缀的请求速率。但在某些情况下,如果您的请求超出了可用于跨区域复制的带宽量,那么 Amazon S3 也会返回 Slow Down 响应。
要解决 Slow Down 错误,请考虑以下方法:
在发送请求的应用程序上启用指数回退和重试机制。 在 Amazon EMR 上使用 S3DistCp 操作。有关更多信息,请参阅在 Amazon EMR 上使用 S3DistCp 以在 HDFS 与 Amazon S3 之间高效移动数据的七个提示。注意:由于此方法要求您使用 Amazon EMR,因此请务必查看 Amazon EMR 定价。
有关在区域之间复制数据的其他方式,请考虑以下选项:
尝试从源存储桶执行 GET 操作,然后再对目标存储桶执行 PUT 操作。 在源存储桶上启用跨区域复制 (CRR)。CRR 自动将对象异步复制到目标存储桶。注意:在启用 CRR 后,新对象将自动复制到目标存储桶。启用 CRR 之前,源存储桶中的对象不会自动复制。