dynamodb表结构
众所周知,DynamoDB 的按需容量模式很棒,但是在某些情况下可能会抑制成本(比预配置容量模式贵多达七倍)。
另一方面,预配置模式将预测应用程序所需容量级别的负担转移给开发团队。 在预配置模式下实现与按需模式相同级别的可伸缩性并不是那么简单。
在降低成本的同时提高预配置模式的可扩展性
至少有三种策略可以提高预配置模式下的可伸缩性,并同时降低成本。
内置的自动缩放功能是一个选项,但需要进行基准测试。 它通常无法很快适应快速增长的需求。 为了验证自动缩放是否合适,必须在与系统当前配置接近的分布上运行一些测试,这一点很重要。
替代阅读密集型表
如果您正在考虑读取密集型表的按需容量,则缓存服务DAX可能是更经济的选择
但这实际上取决于使用级别。 相对较小的DAX实例(t2.medium)在按需模式下将花费超过2亿次读取操作。 在这种情况下,只有在高通量情况下才可能节省成本。
写密集型表的队列负载均衡
最后但并非最不重要的一点是,SQS队列可以替代写密集型工作负载。
具有Lambda函数直接连接到DynamoDB表的高度耦合的体系结构很常见,但这会不确定DynamoDB端需要多少容量。
SQS负载级别策略是关于使用SQS队列来处理高吞吐量和不可预测的流量峰值。
消息由另一个Lambda函数轮询,该函数负责在DynamoDB上写数据。 通过为第二个Lambda函数设置限制,我们使数据库方面的容量分配变得更加容易,从而提供了使用便宜得多的Provisioned Capacity模式的机会。
可见性是关键
如果我们无法监视和可视化我们的云堆栈,那么优化成本当然是不可能的。 Dashbird是无服务器优先的监视工具,可让您跟踪DynamoDB表,Lambda函数,SQS队列等。
它还将我们的体系结构与行业最佳实践进行交叉引用,以提出性能改进,降低成本的机会,并预测潜在的故障点。 立即开始免费试用 。 仅需3分钟,无需信用卡。
先前发布在 https://dashbird.io/blog/cost-ficient-ways-to-run-dynamodb-tables/
翻译自: https://hackernoon.com/how-to-run-dynamodb-tables-on-a-budget-mj1k3u52
dynamodb表结构