![为了实现持久队列,我应该在 AWS 上使用 RDS 还是 DynamoDB?](https://linux22.com/image/715015/%E4%B8%BA%E4%BA%86%E5%AE%9E%E7%8E%B0%E6%8C%81%E4%B9%85%E9%98%9F%E5%88%97%EF%BC%8C%E6%88%91%E5%BA%94%E8%AF%A5%E5%9C%A8%20AWS%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20RDS%20%E8%BF%98%E6%98%AF%20DynamoDB%EF%BC%9F.png)
这是我的用例:
我有一个解耦的应用程序系统。一个应用程序正在接受请求、验证和在 SQS 中排队。另一个应用程序安装在将处理消息的 EC2 工作器集群上。在第一次处理之后,我需要将结果再次排队到第二层(持久队列)中,以进行审计/进一步处理和存档活动(具有保留期)
对于第二个持久队列,我出于方便考虑选择了 RDS。现在,我正在评估(为了改进架构)是否要切换到 DynamoDB。
因为: - 我的应用程序中实际上不需要关系功能 - 我不想管理调整实例大小/高可用性 - 我知道 DynamoDB 提供记录集 TTL - 它会更具成本效益吗?(因为这个持久队列很少被访问)
但是: - 从我的管理 UI 中,我需要提供扫描队列的机会(分页、搜索等...),我知道这些是 Dynamo 的弱点 - 管理应用程序/和工作者是使用 Laravel 和 Eloquent Orm 开发的(它可以与 MySQL 完美集成,但如果没有第三方作曲家依赖项,则不能与 Dynamo 集成)可能需要重写应用程序
你有什么推荐吗?还有其他我没看到的机会吗?谢谢!
答案1
t2 RDS 实例每月费用为 13 美元,但 DynamoDB 有一些永远自由存储。您需要权衡开发人员重写应用程序的时间成本与使用 DynamoDB 节省的成本。
DynamoDB 可以满足您的需求。您可以扫描范围、从索引(而不是整个表)检索数据等。