本指南不再进行更新。有关当前信息和说明,请参阅新的 Amazon S3 用户指南。
最佳实践设计模式:优化 Amazon S3 性能
当从 Amazon S3 上传和检索存储时,您的应用程序可以轻松地实现每秒数千个事务的请求性能。Amazon S3 自动扩展到高请求速率。例如,您的应用程序可以在存储桶中实现至少每秒每个前缀 3500 个 PUT/COPY/POST/DELETE 请求或 5500 个 GET/HEAD 请求。对存储桶中的前缀数量没有限制。您可以通过并行读取来增加读取或写入性能。例如,如果您在 Amazon S3 存储桶中创建 10 个前缀以并行处理读取,则可以将读取性能扩展到每秒 55,000 个读取请求。
Amazon S3 上的某些数据湖应用程序对于运行超过 PB 级数据的查询扫描数百万或数十亿个对象。这些数据湖应用程序实现的单一实例传输速率可最大限度地提高 Amazon EC2 实例的网络接口利用率,这在单一实例上可高达 100 Gb/s。然后,这些应用程序跨多个实例聚合吞吐量,以获得每秒多个 Tb 的级别。
另外一些应用程序对延迟很敏感,例如社交媒体消息传递应用程序。这些应用程序可实现一致的小对象延迟(对于较大对象,为第一个字节输出延迟),延迟时间大约为 100 - 200 毫秒。
其他 AWS 服务也可帮助加快不同应用程序架构的性能。例如,如果您希望通过单一 HTTP 连接实现较高的传输速率,或需要单一位毫秒延迟,请使用 Amazon CloudFront 或 Amazon ElastiCache 以通过 Amazon S3 进行缓存。
此外,如果您希望在客户端与 S3 存储桶之间获得较快的长距离数据传输速度,请使用 Amazon S3 Transfer Acceleration。Transfer Acceleration 使用 CloudFront 中的全球分布式边缘站点来加快跨地理距离的数据传输。如果您的 Amazon S3 工作负载结合使用服务器端加密以及 AWS Key Management Service (SSE-KMS),请参阅《AWS Key Management Service 开发人员指南》中的 AWS KMS 限制以了解您的使用案例支持的请求速率的相关信息。
下面的主题介绍的最佳实践准则和设计模式用于优化使用 Amazon S3 的应用程序的性能。本指南的优先级高于之前有关优化 Amazon S3 的性能的任何指南。例如,以前的 Amazon S3 性能指南建议用哈希字符来随机化前缀命名,以便优化频繁数据检索的性能。现在,您不再需要为了提高性能随机化前缀命名,而是可以对前缀使用基于顺序日期的命名方式。有关对 Amazon S3 进行性能优化的最新信息,请参阅Amazon S3 的性能准则和Amazon S3 的性能设计模式。