Это мой вариант использования:
У меня автономная система приложений. Одно приложение принимает запросы, проверяет и ставит в очередь в SQS. Другое приложение монтируется в кластере рабочих EC2, которые будут обрабатывать сообщения. После первой обработки мне нужно снова поставить в очередь результат на втором уровне (постоянная очередь) для аудита / дальнейшей обработки и архивирования (с периодом хранения)
Для этой второй постоянной очереди я для удобства выбрал RDS. Сейчас я оцениваю (для улучшения архитектуры) переход на DynamoDB.
Поскольку: - Мне на самом деле не нужны реляционные функции в моих приложениях - Я бы не хотел управлять изменением размера экземпляров / высокой доступностью - Я знаю, что DynamoDB предлагает TTL для набора записей - Это будет более рентабельно? (поскольку эта постоянная очередь будет иметь нечастый доступ)
Но: - Из моего пользовательского интерфейса управления мне нужно дать возможность сканировать очередь (разбиение на страницы, поиск и т. Д.), И я знаю, что это слабые места для Dynamo - Приложение для управления / и рабочие разрабатываются с помощью Laravel и Eloquent Orm (который отлично интегрируется с MySQL, например, но не с Dynamo, если не с зависимостями сторонних композиторов), по-видимому, потребуется переписать приложение
Что вы порекомендуете? Есть ли другой шанс, которого я не вижу? Спасибо!
Экземпляр t2 RDS стоит 13 долларов в месяц, но у DynamoDB есть бесплатно навсегда место хранения. Вам нужно взвесить затраты времени разработчика на переписывание приложения и экономию средств с использованием DynamoDB.
DynamoDB может делать то, что вам нужно. Вы можете сканировать диапазоны, извлекать данные из индексов, а не целых таблиц и т. Д.