我目前正在尝试为类似社交媒体的应用程序(用户、关注、喜欢等)排列堆栈。我最初的计划是使用无服务器框架、AWS Lambda 以及最重要的 DynamoDB 来实现这一点。
在深入研究了 DynamoDB 中的数据建模后,我认为它基本上能够处理应用程序所需的数据模式(数据中的大量关系)。但我真的非常担心会产生的成本。
当用户与应用程序交互时,将会有大量的读/写操作需要大规模进行。
我计划将数据建模为一个具有 2GSI 的表。大约有 15 种访问模式。可以使用该query
函数访问所有数据。scan
常规操作将禁止使用该函数。由于较新的内容将产生更多交互,因此将存在一定程度的“热分片”。
DynamoDB 是否是此类应用程序的可行数据库?这对 2020 年的定价大致意味着什么(我能找到的所有定价信息都很旧了)?谢谢。
答案1
对于任何写入密集型场景,Dynamodb 肯定是昂贵的。但您可以节省维护自己的集群、处理负载、自动扩展的费用。
无论如何,dynamodb 表仅用于存储主数据和重要的逻辑数据。所有类型的日志、摘要都应存储在其他数据库中,例如带有 Firehose 的 S3。
对于初创公司来说,它仍然是最佳选择。其使用量要到一定时期才会回升。您只需为使用量付费,就可以节省资金。在获得发展势头后,您可以决定放弃 dynamodb。