Назад | Перейти на главную страницу

Стратегия создания нового сервера EC2, когда у виртуального хоста слишком много подключений

Я создаю инфраструктуру на EC2, где у меня есть nginx в качестве балансировщика нагрузки перед серверами apache + php. У каждого сервера apache есть несколько виртуальных хостов.

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

Я думаю, что могу ограничить количество подключений для каждого виртуального хоста, скажем, 100, а затем, когда количество подключений станет более 100, я создаю новый экземпляр (используя рубин и камень тумана) и настраиваю еще один виртуальный хост на этом экземпляре, добавляю еще один бэкэнд в балансировщик nginx с IP-адресом нового экземпляра.

Это правильный путь или что вы порекомендуете?

Это такой же баланс, как и при горизонтальном масштабировании физического оборудования. Скорее всего, это не поможет сосредоточиться на одной метрике, чтобы решить, когда создавать новые экземпляры.

Произвольное ограничение в 100 подключений может быть намного меньше, чем реально способен обрабатывать экземпляр, и в результате вы перерасходуете вычислительную мощность. С другой стороны, ваш экземпляр может подавиться RAM / CPU или I / O, прежде чем достигнет этой точки.

Вам следует взглянуть на автоматическое масштабирование AWS. Это позволит вам настроить политики, которые будут автоматически расширять и сжимать ваш вычислительный кластер в определенных жестких пределах и на основе целого ряда метрик Cloud Watch. Вам нужно будет использовать API для настройки соответствующих политик, а затем наблюдать и настраивать их в соответствии с вашей нагрузкой и бюджетом.