DynamoDB 全局表的吞吐能力规划 - Amazon DynamoDB

DynamoDB 全局表的吞吐能力规划

将流量从一个区域迁移到另一个区域时,需要仔细考虑容量方面的 DynamoDB 表设置。

有关管理写入容量的一些注意事项:

  • 全局表必须处于按需模式,或在启用自动扩缩的情况下进行预调配。

  • 如果使用自动扩缩进行预调配,则会跨区域复制写入设置(最小、最大和目标利用率)。尽管自动扩缩设置已同步,但实际的预调配写入容量可能会在区域间独立浮动。

  • 您可能会看到不同预调配写入容量的原因之一是 TTL 功能。当您在 DynamoDB 中启用 TTL 时,您可以指定一个属性名称,其值表示项目的过期时间,采用 Unix 纪元时间格式,单位为秒。在该时间之后,DynamoDB 可以删除该项目而不会产生写入成本。使用全局表,您可以在任何区域中配置 TTL,并且该设置会自动复制到与全局表关联的其他区域。当某个项目符合通过 TTL 规则删除的条件时,该工作可以在任何区域中完成。执行删除操作时不消耗源表上的写入单位,但是副本表将获得该删除操作的复制写入,并将产生复制写入单位成本。

  • 如果您使用自动扩缩,请确保最大预调配写入容量设置足够高,足以处理所有写入操作以及所有潜在的 TTL 删除操作。自动扩缩根据每个区域的写入消耗量调整每个区域。按需表没有最大预调配写入容量设置,但表级别的最大写入吞吐量限制指定了按需表将允许的最大持续写入容量。原定设置限制为 40000,但可以调整。我们建议您将其设置得足够高,以处理按需表可能需要的所有写入操作(包括 TTL 写入操作)。设置全局表时,此值在所有参与区域间必须相同。

管理写入容量的一些注意事项:

  • 允许不同区域之间的读取容量管理设置有所不同,因为假设不同的区域可能有独立的读取模式。当您首先向表添加全局副本时,将传播源区域的容量。创建后,您可以调整读取容量设置,这些新设置不会传输到另一端。

  • 使用 DynamoDB Auto Scaling 时,请确保最大预调配读取容量设置足够高,足以处理所有区域的所有读取操作。在标准操作期间,读取容量可能会分布在各个区域之间,但在失效转移期间,表应该能够自动适应增加的读取工作负载。按需表没有最大预调配读取容量设置,但表级别的最大读取吞吐量限制指定了按需表将允许的最大持续读取容量。原定设置限制为 40000,但可以调整。我们建议您将其设置得足够高,以处理该表可能需要的所有读取操作(当所有读取操作都路由到此单个区域时)。

  • 如果一个区域中的表通常不会接收读取流量,但在失效转移后可能必须吸收大量读取流量,则可以提高表的预调配读取容量,等待表完成更新,然后再次向下预调配表。您可以将表保留为预调配模式,也可以将其切换到按需模式。这会预热表以接受更高级别的读取流量。

无论您是否使用 Route 53 来路由请求,ARC 都有就绪检查功能,这对于确认 DynamoDB 区域是否具有相似的表设置和账户限额非常有用。这些就绪检查功能还有助于调整账户级别的限额以确保它们匹配。