Планирование емкости на AWS

Мне нужно немного понять, как планировать ресурсы для AWS и какие компоненты инфраструктуры использовать. Я беру приведенный ниже пример.

Мне нужно настроить сервер на основе nodejs, который использует kafka, redis, mongodb. 250 устройств будут подключаться к серверу и отправлять данные каждые 10 секунд. Размер каждого пакета данных будет примерно 10 КБ. Я буду использовать 64-битный образ Ubuntu.

Что мне нужно оценить,

  • MongoDB требует как минимум 3 сервера для резервирования. Как мне оценить размер требуемого тома виртуальной машины и EBS, например. должно быть m4.large, m4.xlarge или что-то еще? Размер тома EBS по умолчанию составляет 30 ГБ.
  • Каков должен быть размер виртуальной машины для запуска других компонентов приложения, включающих 3-4 процесса nodejs, kafka и redis? например должно быть m4.large, m4.xlarge или что-то еще?
  • Могу ли я оставить только один сервер приложений в группе автоматического масштабирования и увеличивать их по мере увеличения нагрузки или мне следует использовать минимум 2

Я хочу в целом понять, что, учитывая количество устройств, размер пакета данных и частоту передачи данных, как мы можем оценить, какую виртуальную машину следует учитывать и какой объем памяти учитывать, а также, возможно, любые другие соображения.


person Avi    schedule 04.09.2018    source источник


Ответы (1)


Никто не сможет ответить вам на этот вопрос. Все зависит от вашего приложения и моделей использования.

Единственный способ правильно ответить на этот вопрос — развернуть некоторую инфраструктуру и смоделировать стандартное использование, одновременно измеряя производительность систем (пропускную способность, задержку, доступ к диску, память, загрузку ЦП и т. д.).

Затем измените инфраструктуру (добавьте/удалите экземпляры, измените типы экземпляров и т. д.) и повторите измерение.

Вам, безусловно, следует запустить минимальное развертывание в соответствии с вашими требованиями (например, экземпляры в отдельных зонах доступности для высокой доступности), и вы можете использовать автоматическое масштабирование, чтобы при необходимости добавить дополнительную емкость, но с имитацией также потребуется тестирование для определения правильных триггерных точек, в которых следует добавить дополнительные мощности. Например, лучшим индикатором может быть память, ЦП или задержка. Все зависит от приложения и от того, как оно ведет себя под нагрузкой.

person John Rotenstein    schedule 04.09.2018
comment
Да, я это понимаю, но должен быть какой-то способ оценить это даже на теоретическом уровне. Если клиент просит дать смету бюджета для такого рода требований, невозможно фактически создать приложение, настроить серверы, провести нагрузочный тест, а затем предоставить оценку. - person Avi; 04.09.2018