Ответы предыдущих пользователей отличные.Давайте разберем их в настройках.Мне кажется, что ваш начальный стек - это база данных SQL, которую вы установили в EC2.
Вариант 1 - Реплики чтения RDS
Переместите вашу БД в RDS, это даст вам много положительных моментов, но основной из них, который мы ищем, - это чтение реплик, если ваше чтение / с возрастаетВы можете создать дополнительные реплики чтения и поместить их за балансировщиком нагрузки.Эта настройка - самый низкий результат без слишком большого количества изменений кода.
Вариант 2 - EFS для обмена данными между экземплярами EC2
Использование EFS не является простым делом, ни в чем не виноват EFS.Некоторые базы данных сохраняют уникальные идентификаторы в файловой системе, что означает, что вы не можете использовать жесткий диск.EFS - это сервис, который добавляет некоторое отставание к каждой операции чтения / записи.В зависимости от того, как установлен дистрибутив базы данных, это может быть даже невозможно.
Вариант 3 - Athena и S3
Можно также сохранить рабочие файлы на S3 вместо SQL, но это означает переписываниеинструмент для соскоба.Вы можете вызвать S3 -> PutObject для одного и того же ключа несколько раз, и он заменит предыдущий объект.Затем вам нужно будет переписать свой аналитический инструмент для запроса S3.Этот вариант превосходен, и он, вероятно, самый дешевый по «стоимости эксплуатации», но это означает, что вы должны быть знакомы с S3 и, что более важно, с Athena.Вам также необходимо выяснить, как вы будете сохранять новые данные и какой формат файла подходит для вашего приложения.Вы можете начать с обычных BLOB-объектов JSON или CSV, а затем перейти к Apache Parquet для более низкой стоимости.(Для получения дополнительной информации о том, как этот оператор означает экономию, см. Здесь: https://aws.amazon.com/athena/pricing/)
Вариант 4 - RedShift
RedShift для BigData, я бы подождал, пока запрос обычного SQL не станет проблемой (несколько секундза запрос), а затем я бы начал изучать его. Конечно, это позволит вам делать очень дешевые запросы, но вам, вероятно, придется настроить конвейер, который слушает SQL (или запускается им), а затем обновляет RedShift. Причинапотому что RedShift масштабируется в зависимости от ваших запросов, и вы можете легко раскрутить несколько машин, чтобы сделать запросы быстрее.