为了实现持久队列,我应该在 AWS 上使用 RDS 还是 DynamoDB?

为了实现持久队列,我应该在 AWS 上使用 RDS 还是 DynamoDB?

这是我的用例:

我有一个解耦的应用程序系统。一个应用程序正在接受请求、验证和在 SQS 中排队。另一个应用程序安装在将处理消息的 EC2 工作器集群上。在第一次处理之后,我需要将结果再次排队到第二层(持久队列)中,以进行审计/进一步处理和存档活动(具有保留期)

对于第二个持久队列,我出于方便考虑选择了 RDS。现在,我正在评估(为了改进架构)是否要切换到 DynamoDB。

因为: - 我的应用程序中实际上不需要关系功能 - 我不想管理调整实例大小/高可用性 - 我知道 DynamoDB 提供记录集 TTL - 它会更具成本效益吗?(因为这个持久队列很少被访问)

但是: - 从我的管理 UI 中,我需要提供扫描队列的机会(分页、搜索等...),我知道这些是 Dynamo 的弱点 - 管理应用程序/和工作者是使用 Laravel 和 Eloquent Orm 开发的(它可以与 MySQL 完美集成,但如果没有第三方作曲家依赖项,则不能与 Dynamo 集成)可能需要重写应用程序

你有什么推荐吗?还有其他我没看到的机会吗?谢谢!

答案1

t2 RDS 实例每月费用为 13 美元,但 DynamoDB 有一些永远自由存储。您需要权衡开发人员重写应用程序的时间成本与使用 DynamoDB 节省的成本。

DynamoDB 可以满足您的需求。您可以扫描范围、从索引(而不是整个表)检索数据等。

相关内容