Мы тестируем развертывание веб-приложения на Amazon EC2, которое использует MongoDB для базы данных. Mongo рекомендует использовать как минимум 3 узла для репликации для целостности данных. Хотя это тестирование, мы хотели бы протестировать репликацию, чтобы увидеть, как система обрабатывает сбои, поэтому нам нужно как минимум 3 экземпляра EC2. Я также хотел бы увидеть, что балансировка веб-нагрузки тоже работает.
Я думаю о том, чтобы создать 3 средних экземпляра EC2, на которых будут работать как MongoDB, так и веб-сервер. У нас будет балансировщик нагрузки, который будет распределять веб-запросы между тремя серверами и настроить Mongo на их использование в качестве реплик для обеспечения целостности данных.
Есть ли проблемы с этим планом?
Поскольку это фаза «тестирования», а все мы знаем, что тестирование - это модель, которую мы используем для производства, я бы напомнил вам, что MongoDB требует много памяти и использует кеш файловой системы для сопоставления файлов.
Если ваше веб-приложение также имеет большой объем памяти и недостаточно памяти для запуска вашего приложения и MongoDB, тогда MongoDB будет тем, кто пострадает, поскольку ядро будет вытеснять кеш FS из-за запросов частных / резидентных страниц в памяти. .
Пока вы следите за своей схемой использования памяти (включая буферы / кеши уровня ядра и ошибки страниц mongod), все должно быть в порядке.
Нет, кажется, подходит для тестирования отказоустойчивости монго и наборов реплик.