Мы рассматриваем MongoDB для веб-сайта, который, как мы ожидаем, станет вирусным (подумайте миллионы пользователей в течение первых 1-2 месяцев).
Нам понадобится много памяти, потому что нам нужно, чтобы это было быстро. Мы смотрим на 32 ГБ памяти как минимум. Проблема с выделенными серверами заключается в том, что ежемесячная стоимость 32-64 ГБ памяти очень высока.
Основным преимуществом AWS является то, что вы платите по ходу или в масштабе.
Я посмотрел на Amazon EC2 «Двойной очень большой экземпляр с высокой памятью», у него 34,2 ГБ памяти и 850 ГБ.
Этот веб-сайт будет похож на Twitter, который будет перегружен обновлениями статуса, но он не ограничивается 160 символами (потенциально неограниченными символами).
Сложность в том, как на домашней странице Twitter есть список всех последних твитов от людей, на которых вы подписаны. Я ожидаю, что в Твиттере есть две таблицы / «коллекции»: одна, в которой хранятся твиты, которые вы твитнули, и отдельная, в которой хранятся полученные вами твиты (но не значит ли это, что они делают от тысячи до сотен тысяч записей в БД каждый раз, когда кто-то с тоннами подписчиков публикует обновление статуса?)
Backend использует Node.js, поэтому MongoDB идеален.
Мои вопросы:
1) Нужно ли 32 ГБ памяти в нашей ситуации?
2) Достаточно ли 850 ГБ дискового пространства, предоставляемого EC2?
3) EC2 или выделенный сервер лучше для размещения обновлений статуса в MongoDB? Почему?