Масштабирование MongoDB на EC2 или мне просто перейти на DynamoDB?

В настоящее время я запускаю свой веб-сайт на одном сервере с MongoDB. На моем сервере у меня есть два компонента (1) поисковый робот, который работает ежечасно и добавляет данные в мой экземпляр MongoDB (2) веб-сайт, который читает из индекса поискового робота, а также пишет пользователю БД персонализации. Я перехожу на Amazon EC2 для автоматического масштабирования, чтобы веб-сервер мог автоматически масштабироваться, поэтому я могу увеличивать количество серверов по мере увеличения веб-трафика. Мне не нужно автоматическое масштабирование моего сканера. Это создает проблему для того, как я использую MongoDB.Мне интересно, какой вариант лучше всего мне оптимизировать на

  • Минимальные изменения в моем коде (код на perl)
  • Возможность беспрепятственно добавлять / удалять веб-серверы, не беспокоясь о потере данных в БД
  • Низкая стоимость

В краткосрочной перспективе БД, безусловно, сможет уместиться в памяти на всех машинах, поскольку ее размер будет меньше 2 ГБ. БД персонализации пользователя не может быть перестроена, поэтому важнее иметь это, в то время как индекс можно легко перестроить. Текущий индекс сканирования MongoDB содержит около 100 тыс. Записей, которые привязаны к ~ 15 различным столбцам. Это сделано для скорости, поскольку я работаю над сайтом онлайн-знакомств (который доступен для поиска разными способами).

Я могу придумать несколько вариантов

  1. Использовать SimpleDB для хранилища персонализации пользователей и MongoDB для индекса. Реплицируйте индекс на всех машинах, однако я не слишком много знаю о репликации MongoDB.
  2. Перенести все в SimpleDB
  3. Перенести все в DynamoDB

Я мало знаю о SimpleDB и / или DynamoDB. Судя по статьям, кажется, что DynamoDB был бы естественным выбором, но я не уверен в хорошей поддержке Perl, могу ли я иметь все столбцы, индексы и т. Д. У кого-нибудь есть опыт или есть какой-либо совет?

8
задан ZenoriInc 19 February 2012 в 22:57
поделиться