DynamoDB против ElasticSearch против S3 - какой сервис использовать для сверхбыстрого получения / размещения файлов размером 10–20 МБ? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть бэкэнд, который получает, хранит и обслуживает 10-20 МБ json-файлов.Какой сервис я должен использовать для сверхбыстрого ввода и вывода (я не могу разбить файл на более мелкие куски)?Мне не нужно выполнять запросы к этим файлам, просто получить их, сохранить их и сразу же предоставить.Сервис должен легко масштабироваться до десятков тысяч файлов.В идеале я должен иметь возможность поместить файл за 1-2 секунды и получить его одновременно.

Мне кажется, s3 - лучший вариант, а упругий поиск - второй лучший вариант.Dyanmodb не допускает такой размер объекта.Что я должен использовать?Кроме того, есть ли другой сервис?Mongodb - это возможное решение, но я не вижу такого в AWS, поэтому что-то быстрое в установке было бы замечательно.

Спасибо

1 Ответ

0 голосов
/ 19 декабря 2018

Я не думаю, что вы должны пойти на Динамо или ES для такого рода операций.

В конце концов, вы хотите хранить и обслуживать его, не вдаваясь в содержимое файла, на что и Динамо, и ES будут тратить время.

Я предлагаю использовать AWS Lambda +S3 для оптимизации затрат S3 имеет некоторое небольшое время простоя после помещения до того, как файл станет доступным (хотя он становится больше, даже минуты, когда у вас есть миллионы объектов в корзине)

Если время простоя важно для вашей работыи общая пропускная способность в любой данный момент не слишком велика. Вы можете создать сервер (предпочтительно EC2), который будет служить временным хранилищем файлов.Он будет

  • Получить ваш файл
  • Попробуйте загрузить его на S3
  • Если файл запрашивается до того, как он станет доступен на S3, подайте файл на диск
  • Если файл успешно загружен на S3, введите URL-адрес S3, удалите файл на диске
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...