Прежде чем вы отправитесь в путешествие по автоматическому масштабированию вашей инфраструктуры и затрат времени / усилий. Возможно, вам следует немного проанализировать структуру трафика день за днем, неделю за неделей и месяц за месяцем и посмотреть, нужно ли это вообще? Попробуйте ответить на некоторые из этих вопросов.
Какой был самый высокий трафик, когда-либо обрабатывавшийся вашим приложением? Как серверы оценивали трафик? Как прошло время ответа пользователя?
Когда ваш трафик нарастает или достигает пика? Некоторые приложения получают трафик в рабочее время, а другие - вечером.
Какова ваша текущая пропускная способность? Например, вы можете обрабатывать 1 000 запросов / мин, а два хоста EC2 в среднем загружают ЦП на 20%. если количество запросов утроилось до 3 000 запросов / мин, вы можете увидеть около 60% - 70% среднего процессора? Это хороший признак того, что использование вашего приложения достаточно предсказуемо и может линейно масштабироваться путем добавления большего количества хостов. Но если вы никогда не видели, чтобы трафик взрывался подобным образом, нет смысла выделять ресурсы.
Если у вас нет приложения, подобного Zynga, где вы можете видеть большое количество трафика одновременно, возможно, лучше понять структуру вашего трафика и добавить дополнительный хост в качестве страховки. Я делаю эти предположения, так как не знаю природу вашего бизнеса.
Если вы все равно хотите автоматически масштабировать, одним из решений будет контейнеризация вашего приложения с помощью Docker или создание собственного AMI, как предлагали другие. Тем не менее, это займет несколько минут, чтобы загрузить их. Следующим вариантом является сохранение хостов в режиме ожидания, но добавление их к вашим балансировщикам нагрузки с помощью сценариев (или лямбда-функций), которые отслеживают определенные вами метрики (я предполагаю, что ваше приложение работает за балансировщиками нагрузки).
Удачи.