Для реализации постоянной очереди, я должен пойти на RDS или DynamoDB на AWS?

Это мой вариант использования:

У меня развязанная прикладная система. Одно приложение принимает запросы, проверяет и ставит в очередь в SQS. Другое приложение смонтировано на кластере рабочих EC2, которые будут обрабатывать сообщения. После первой обработки мне нужно снова поставить в очередь результат на втором уровне (постоянная очередь) для операций аудита / дальнейшей обработки и архивирования (с периодом хранения)

Для этой второй постоянной очереди я выбрал RDS для удобства. Сейчас я оцениваю (для улучшения архитектуры) перейти на DynamoDB.

Поскольку: - Мне на самом деле не нужны реляционные функции в моих приложениях - Я бы не хотел управлять изменениями размера экземпляров / высокой доступностью - Я знаю, что DynamoDB предлагает набор записей TTL - Это будет более рентабельно? (так как эта постоянная очередь будет иметь нечастый доступ)

Но: - Из моего пользовательского интерфейса управления мне нужно дать возможность сканировать очередь (разбиение на страницы, поиск и т. Д.), И я знаю, что это слабые места для приложения Dynamo - Management /, а рабочие разрабатываются с помощью Laravel и Eloquent Orm (который отлично интегрируется с MySQL, например, но не с Dynamo, если не с зависимостями от сторонних разработчиков), вероятно, потребуется переписать приложение

Что вы порекомендуете? Есть ли какой-то другой шанс, которого я не вижу? Спасибо!

1 ответ

Экземпляр t2 RDS стоит 13 долларов в месяц, но у DynamoDB всегда есть свободное хранилище. Вам нужно взвесить затраты времени разработчика, чтобы переписать приложение, и сэкономить средства с помощью DynamoDB.

DynamoDB может делать то, что вам нужно. Вы можете сканировать диапазоны, получать данные из индексов, а не целых таблиц и т. Д.

Другие вопросы по тегам