我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
通过为 Amazon DynamoDB 安排预置容量来优化成本
要管理 DynamoDB 预置容量表的成本,您可以调整预置的读取/写入容量。您可以通过自动扩展或根据考虑流量高峰和非高峰时段的时间表来实现此目的。
Amazon DynamoDB 具有自动扩展功能,可使用
在这篇文章中,我将向您展示如何通过结合自动扩展和按设定的时间表更改预置容量表的最小吞吐量来优化预置容量表的成本,从而允许在所需时间毫无延迟地增加写入容量。
问题陈述
有些工作负载会定期发生可预测的变化。例如,金融行业的交易平台。在金融行业,交易从周一上午开始,在周五晚上结束。周一市场开盘时,活动突然激增,没有时间加剧。另一个例子是与重大营销促销同时进行的零售销售。当销售开始时,在线商店的订单可能会激增。
按需容量非常适合不可预测的工作负载,但在上述用例中,它可能会限制容量,并且只能通过每 30 分钟将容量增加一倍来扩展,如
如果您正在使用预置容量,并且有可预测的周期性高需求,必须立即进行调整,例如金融行业的示例,则需要在 DynamoDB 表上设置较高的最低读/写预配置容量。这意味着在流量较低的时期,例如周末,您可能需要为大量未使用的容量付费。您可以使用 Application Auto Scaling 来计划扩展策略,调整您的预配置吞吐量,以支持可预测的流量变化。您可以手动调整容量,但首选自动解决方案。
解决方案概述
使用应用程序自动扩展时,可以使用
cron
表达式来调度策略。您可以创建多个计划来根据需要更改表的容量。
以下资源由模板在 CloudFormation 中创建,如以下代码段所示:
- 具有初始读/写预置容量的 DynamoDB 表。
-
一款
AWS:: ApplicationAutoScaling:: ScalableTarget使用ScheduleAction在世界标准时间周一上午 8:00 开始峰值扩展, 将最低写入容量更改为 90 个写入容量单位 (WCU)。它会在星期五下午 6:00 UTC 将最低写入容量更改为 30 个 WCU(您可以根据自己的用例更改时间表)。
作为预置写入容量预设更改的影响的示例,下面的图 1 显示了预置写入容量每小时更改的结果。预置写入容量的更改会立即反映在表的写入使用量中。
图 1:预置的写入容量每小时都在变化
正在清理
为避免将来产生费用,请删除模板创建的资源。您可以通过使用
储蓄
金融行业客户通过使用调度来调整其预配置容量以反映预期流量,从而将成本降低了25%。
结论
在这篇文章中,我向您展示了如何使用基于cron的应用程序自动扩展计划来扩展Amazon DynamoDB的预配置容量。您可以使用此方法来优化具有已知和可预测流量模式的工作负载的成本。
有关 DynamoDB 表容量模式的更多信息,请参阅
作者简介
Jiten Dedhia
是一位高级解决方案架构师,在软件行业拥有 20 多年的经验。他曾与全球金融服务客户合作,为他们提供使用 亚马逊云科技 提供的服务进行现代化的建议。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。