项目展示

介绍Amazon DynamoDB按需配置最大吞吐量 数据库博客

介绍Amazon DynamoDB按需配置最大吞吐量 数据库博客

Amazon DynamoDB 引入可配置的最大吞吐量

关键要点

在亚马逊DynamoDB中,引入可配置的最大吞吐量是一项全新的可选功能,用户现在可以为单个按需表和相关的全局二级索引GSI设置最大读写吞吐量。这一功能的上线,使用户在控制成本和提高性能之间达成更好的平衡,无论是新建还是现有的单区或多区表,都能够自定义最大吞吐量设置。

Amazon DynamoDB 是一种无服务器的NoSQL数据库服务,可以帮助您在任何规模下开发现代应用程序。其按需模式提供了真正的无服务器体验,能够每秒处理数百万个请求,而无需进行容量规划,并且在没有请求时自动缩减至零。按需模式的简单按请求付费定价模型意味着,您只需为实际使用的容量付费,从而避免了闲置容量的担忧。

功能介绍

DynamoDB按需模式的默认吞吐量为每秒40000次读取请求和40000次写入请求可通过AWS服务配额提高,这一设定适用于账户内的所有表,并无法根据不同的工作负载和需求进行个性化定制。这种一致性会导致当代码书写不当时,资源迅速被耗尽,从而使得管理表级使用和费用变得困难。用户迫切希望能够获得更多灵活性和控制力来平衡成本和性能。

新功能

今天,我们推出这一新功能,让您能够为每个按需表及关联的全局二级索引配置最大读或写或两者的吞吐量。这项功能让您更容易地平衡每个表的成本和性能。超过指定最大吞吐量的按需请求将会被限制,但您可以随时根据应用需求调整这些最大吞吐量设置。在为新旧单区和多区表、索引,甚至是在表还原和从AWS简单存储服务S3导入数据的工作流中都能设置按需最大吞吐量。

介绍Amazon DynamoDB按需配置最大吞吐量 数据库博客

我们将探讨此功能在常见用例中的应用以及如何实现按需表的最大吞吐量来达成组织目标。

常见用例

在这一部分,我们讨论为按需表配置最大吞吐量的常见用例:

用例解释优化按需吞吐量成本通过为按需表设置最大吞吐量配额,客户能够更好地预测和管理成本,从而在生产和开发环境中广泛应用无服务器体验。防止 gastos失控设置预定义的最大吞吐量可以防止因代码不优化或异常进程造成的读写消费激增,确保即使在应用开发早期阶段或非生产环境中,成本都能得到良好控制。管理API使用在客户将预置容量切换到按需模式时,为按需吞吐量设置上限消费阈值可以确保团队不会被突发的工作负载流量所困扰。保护下游服务客户端应用可能包含无服务器和非无服务器技术。架构中的无服务器部分迅速扩展以匹配需求,但下游固定容量的组件可能会被淹没。通过为按需表实施最大吞吐量设置,可以防止大量事件流向多个下游组件而产生意外副作用。

开始使用

创建按需表时,默认情况下,负载并未启用最大吞吐量设置。这是一个可选功能,您可以在每个表和相关的全局二级索引上进行配置,允许您为读取和写入独立设置最大吞吐量,以便根据特定需求来微调您的方法。按需表的最大吞吐量是基于尽力而为的原则应用的,应该被视为目标而非绝对的请求上限。您的工作负载可能会因突发容量而短暂超出指定的最大吞吐量。使用此功能不会产生额外费用,您可以通过AWS命令行界面AWS CLI、AWS管理控制台、AWS SDK或AWS CloudFormation开始使用。

通过DynamoDB控制台启用按需最大吞吐量

在DynamoDB控制台中,选择导航窗格中的表。选择创建表。为表指定名称、分区键和排序键。在表设置中,选择自定义设置。在读/写容量设置中,选择按需。在最大表吞吐量下,指定读取、写入或两者的限制在1至40000请求单位之间。选择创建表。

您还可以通过CLI、SDK或AWS CloudFormation中的OnDemandThroughput参数来设置按需最大吞吐量,该参数包括MaxReadRequestUnits和MaxWriteRequestUnits。这些参数允许您在有效范围内指定最大读写单位,设置值为1可以禁用限制,从而提供在不希望有按需吞吐量限制的情况下的灵活性。

在设置最大吞吐量时,建议将全局二级索引的最大吞吐量设置与关联表对齐,以确保全局二级索引能够有效地复制写入到表中的数据。

全局表

您可以为全局表配置按需模式的最大吞吐量,管理其容量,遵循与ProvisionedThroughput相似的语义。当您在一个全球表副本上指定最大读取或写入或两者的吞吐量设置时,该设置会自动应用到所有副本表。确保副本表和全局表中的二级索引具有相同的写入吞吐量设置非常重要,以确保数据的正确复制。

还原和从S3导入的工作流程

DynamoDB的备份和还原功能同样支持按需最大吞吐量。在创建时,备份会保留吞吐量设置,并在还原时应用于新表,除非手动覆盖。使用ImportTable从Amazon S3导入数据时,您也可以选择指定按需最大吞吐量的限制,反映出与CreateTable操作中所提供的灵活性。

速云梯机场(sycloud)

监控、警报和故障排除

在为按需表指定最大表吞吐量之前,了解您的工作负载和流量非常重要。AWS提供了许多服务来帮助您监控和理解您的应用程序。例如,Amazon CloudWatch收集监控和操作数据,包括日志、指标和事件,为您提供对AWS资源、应用程序和服务的统一视图。通过有效监控,您可以了解应用程序的正常状态。一旦掌握了工作负载,您就可以确定哪些表最适合进行速率限制。CloudWatch提供了OnDemandMaxReadRequestUnits和OnDemandMaxWriteRequestUnits的指标来简化监控。

结论

本文展示了如何为按需表配置最大吞吐量,以避免不必要的DynamoDB吞吐量成本,并帮助限制对下游应用的影响。使用此功能不会产生额外费用,您可以通过AWS管理控制台、AWS CLI、AWS SDK、DynamoDB API或AWS CloudFormation开始使用。如需了解更多,请参考DynamoDB开发者指南。

作者介绍

Lee Hannigan是位于爱尔兰多尼戈尔的高级DynamoDB专业解决方案架构师。他在分布式系统方面拥有丰富的专业知识,并在大数据和分析技术方面有坚实的基础。在担任DynamoDB专业解决方案架构师期间,Lee擅长帮助客户设计、评估和优化其利用DynamoDB能力的工作负载。

Mazen Ali是AWS亚马逊DynamoDB的首席产品经理,总部位于纽约市。Mazen在产品管理和技术角色方面具有丰富的背景,他热衷于与客户沟通以理解其需求,制定产品战略,并与跨职能团队协作,构建令人愉悦的体验。工作之余,Mazen喜欢旅行、读书、滑雪和远足。