Я не могу говорить с Redis, но для MongoDB вам нужно быть уверенным, что вы запускаете экземпляр с достаточным объемом ОЗУ для хранения вашего «рабочего набора» данных в памяти. «Рабочий набор» означает, примерно, полный набор данных, к которым ваше приложение часто обращается - например, рассмотрим Twitter - рабочий набор данных Twitter - это самый последний набор обновлений статуса для всех пользователей, поскольку это то, что показано на веб-страницах и что Twitter предоставляет через свои API. Для вашего приложения определение рабочего набора может отличаться.
Mongo использует отображенные в память файлы для доступа к данным, что означает, что его производительность велика, когда достаточно памяти для хранения данных, к которым вы часто обращаетесь, и может ухудшиться, если ее нет. Если вы ожидаете, что размер вашего набора данных превысит 2,5 гигабайта, вам также следует убедиться, что вы используете 64-битный экземпляр - в 32-битных экземплярах Mongo ограничен объемом около 2,5 гигабайт данных из-за ограниченности адресное пространство памяти доступно на такой платформе. Подробнее о MongoDB для EC2 см. Документы Mongo по развертыванию EC2 в вики.
Я бы также предостерег от использования экземпляров EC2 Micro в вашей производственной среде. Природа Micros заключается в том, что они имеют «взрывные», но очень ограниченные ресурсы процессора. Если вы получили всплеск трафика из-за технической прессы, вполне вероятно, что ваше приложение будет ограничено EC2 очень низким объемом доступного процессора, что приведет к снижению производительности. Вы можете до некоторой степени смягчить это с помощью балансировки нагрузки и множества экземпляров Micro, но может оказаться более экономичным и менее сложным просто использовать большие экземпляры как для Mongo / Redis, так и для ваших серверов приложений.