如何设置 DynamoDB 吞吐量

How to Set DynamoDB Throughput

我刚刚开始更多地使用 Dynamo,我有一个问题想看看我是否以最佳方式使用它。我有一个在 Dynamo 上存储数据的应用程序。大多数时候来回很少,因为对象非常小且不经常访问。然而,当用户创建一个新项目时,它会上传很多东西,当他们第一次打开它时,它通常必须下载几千个对象(取决于项目),所以它会激增图表。

例如,这是我过去两周的使用情况图:

现在我需要能够处理这些峰值,所以我将容量设置为 40 读取和 30 写入;这似乎有效,但我似乎没有很好地利用我的能力,所以我想知道我是否做对了。

所以我的问题是,我是否应该以不同的方式访问数据或以其他方式设置可以更好地利用容量或稍微平衡一些东西的东西?这可能是程序的性质,如果是的话那很好(费用肯定不是很大)但我想检查学习目的:)。感谢有更多经验的人提供任何指导!

更新:dynamoDb 现在支持自动缩放 https://aws.amazon.com/blogs/aws/new-auto-scaling-for-amazon-dynamodb/

原答案: 不幸的是,dynamoDb 不提供像 EC2 实例那样根据负载扩大或缩小容量的功能,因此开发人员必须对其进行管理。网上有一些解决方案,其中一种也得到 AWS 团队认可的解决方案是 dynamicDynamoDb (https://aws.amazon.com/blogs/aws/auto-scale-dynamodb-with-dynamic-dynamodb/)。

请注意,此解决方案将需要一个 EC2 实例来监控您的 table 容量并根据需要进行扩展和缩减。为避免单点故障,您还需要添加冗余 EC2 主机。由于您需要非常低的容量,因此 ec2 的额外成本可能不值这个价钱。

问候 迪内什·索兰基