使用 S3 复制时间控制的最佳实践和准则 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 S3 复制时间控制的最佳实践和准则

在 Amazon S3 中使用 S3 Replication Time Control (S3 RTC) 复制数据时,请遵循这些最佳实践准则为您的工作负载优化复制性能。

Amazon S3 复制和请求速率性能准则

当从 Amazon S3 上传和检索存储时,您的应用程序可以实现每秒数千个事务的请求性能。例如,应用程序在 S3 存储桶中每个前缀每秒可实现至少 3,500 个 PUT/COPY/POST/DELETE 请求或 5,500 个 GET/HEAD 请求,包括 S3 复制代表您发出的请求。对存储桶中的前缀数量没有限制。您可以通过并行读取来增加读取或写入性能。例如,如果您在 S3 存储桶中创建 10 个前缀以并行处理读取,则可以将读取性能扩展到每秒 55,000 个读取请求。

Amazon S3 根据高于这些准则的持续请求速率或与 LIST 请求并行的持续请求速率自动扩展。尽管 Amazon S3 在内部针对新的请求速率进行优化,但您可能暂时会收到 HTTP 503 请求响应,直至优化完成。随着每秒请求速率增大,或者当您首次启用 S3 RTC 时,可能会发生这种情况。在这些期间,您的复制延迟可能会增加。S3 RTC 服务等级协议 (SLA) 不适用于超出 Amazon S3 每秒请求性能准则的时间段。

在复制数据传输速率超过默认 1 Gbps 限制的时间段内,S3 RTC SLA 也不适用。如果您预计复制传输速率超过 1 Gbps,则可以联系 AWS Support Center 或使用服务配额来请求提高限制。

估算您的复制请求速率

您的总请求速率(包括代表您发出的 Amazon S3 复制请求)不得超出复制源和目标存储桶的 Amazon S3 请求速率准则。对于复制的每个对象,Amazon S3 复制向源存储桶发出最多五个 GET/HEAD 请求和一个 PUT 请求,向目标存储桶发出一个 PUT 请求。

例如,如果您希望每秒复制 100 个对象,则 Amazon S3 复制可能会代表您执行额外 100 个 PUT 请求,每秒总计向源 S3 存储桶发出 200 个 PUT 请求。Amazon S3 复制也可能最多执行 500 个 GET/HEAD 请求(每个复制的对象有 5 个 GET/HEAD 请求)。

注意

每个复制的对象只会产生一个 PUT 请求的费用。有关更多信息,请参阅 Amazon S3 复制常见问题解答中的定价信息。

超过 S3 RTC 数据传输速率限制时采取措施

如果您预计 S3 复制时间控制数据传输速率超过默认的 1 Gbps 限制,请联系 AWS Support Center 或使用服务配额请求提高限制。

AWS KMS 加密对象复制请求速率

当您使用 Amazon S3 复制来复制通过服务器端加密 (SSE-KMS) 加密的对象时,AWS Key Management Service (AWS KMS) 每秒请求限制适用。因为您的请求速率超过了每秒请求数的限制,AWS KMS 可能会拒绝其他有效的请求。如果请求受到限制,AWS KMS 将返回 ThrottlingException 错误。AWS KMS 请求速率限制适用于您直接发出的请求和代表您通过 Amazon S3 复制发出的请求。

例如,如果您希望每秒复制 1,000 个对象,则可以从 AWS KMS 请求速率限制中减去 2,000 个请求。生成的每秒请求速率可用于除复制之外的 AWS KMS 工作负载。您可以使用 Amazon CloudWatch 中的 AWS KMS 请求指标来监控 AWS 账户的总 AWS KMS 请求速率。

超过 AWS KMS 请求速率限制时采取措施

如果您认为 AWS KMS 请求速率(包括由 Amazon S3 复制代表您发出的复制请求)将超过您账户的 AWS KMS 请求速率限制,则可以使用服务配额请求提高限制。如果 AWS KMS 的 Service Quotas 在 AWS 区域中不可用,请联系 AWS Support Center