最佳实践设计模式:优化 Amazon S3 性能
当从 Amazon S3 上传和检索存储时,您的应用程序可以轻松地实现每秒数千个事务的请求性能。Amazon S3 自动扩展到高请求速率。例如,您的应用程序可以实现每秒每个分区的 Amazon S3 前缀至少 3500 个PUT/COPY/POST/DELETE 或 5500 个 GET/HEAD 请求。对存储桶中的前缀数量没有限制。您可以通过使用并行来增加读取或写入性能。例如,如果您在 Amazon S3 存储桶中创建 10 个前缀以并行处理读取,则可以将读取性能扩展到每秒 55,000 个读取请求。同样,您可以通过写入多个前缀来扩展写入操作。无论是读取操作还是写入操作,扩展都是逐渐发生的,而不是瞬间发生的。当 Amazon S3 扩展到新的更高请求速率时,您可能会看到一些 503(减速)错误。扩展完成后,这些错误将消失。有关创建和使用前缀的更多信息,请参阅使用前缀组织对象。
Amazon S3 上的某些数据湖应用程序对于运行超过 PB 级数据的查询扫描数百万或数十亿个对象。这些数据湖应用程序实现的单一实例传输速率可最大限度地提高 Amazon EC2 实例的网络接口利用率,这在单一实例上可高达 100 Gb/s。然后,这些应用程序跨多个实例聚合吞吐量,以获得每秒多个 Tb 的级别。
另外一些应用程序对延迟很敏感,例如社交媒体消息传递应用程序。这些应用程序可实现一致的小对象延迟(对于较大对象,为第一个字节输出延迟),延迟时间大约为 100 - 200 毫秒。
其他 Amazon 服务也可帮助加快不同应用程序架构的性能。例如,如果您希望通过单一 HTTP 连接实现较高的传输速率,或需要单一位毫秒延迟,请使用 Amazon CloudFront 或 Amazon ElastiCache 以通过 Amazon S3 进行缓存。
此外,如果您希望在客户端与 S3 存储桶之间获得较快的长距离数据传输速度,请使用 使用 Amazon S3 Transfer Acceleration 配置快速、安全的文件传输。Transfer Acceleration 使用 CloudFront 中的全球分布式边缘站点来加快跨地理距离的数据传输。如果 Amazon S3 工作负载使用具有 Amazon KMS 的服务器端加密,请参阅《Amazon Key Management Service 开发人员指南》中的 Amazon KMS 限制,以获取有关使用案例支持的请求速率的信息。
下面的主题介绍的最佳实践准则和设计模式用于优化使用 Amazon S3 的应用程序的性能。有关对 Amazon S3 进行性能优化的最新信息,请参阅 Amazon S3 的性能准则 和 Amazon S3 的性能设计规律。
注意
有关将 Amazon S3 Express One Zone 存储类与目录存储桶配合使用的更多信息,请参阅 目录存储桶和 S3 Express One Zone 和目录存储桶概述。