AWS EC2 Немедленное расширение? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть веб-сервис, работающий на нескольких компьютерах EC2. Основываясь на метрике задержки Cloudwatch, я бы хотел увеличить дополнительные блоки. Но, учитывая, что требуется несколько минут, чтобы раскрутить EC2 из AMI (с кодом запуска, чтобы загрузить последнюю версию JAR приложения и применить исправления ОС), есть ли способ получить «холодный» сервер, который можно было бы немедленно включить / от

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

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

  1. Какой был самый высокий трафик, когда-либо обрабатывавшийся вашим приложением? Как серверы оценивали трафик? Как прошло время ответа пользователя?

  2. Когда ваш трафик нарастает или достигает пика? Некоторые приложения получают трафик в рабочее время, а другие - вечером.

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

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

Если вы все равно хотите автоматически масштабировать, одним из решений будет контейнеризация вашего приложения с помощью Docker или создание собственного AMI, как предлагали другие. Тем не менее, это займет несколько минут, чтобы загрузить их. Следующим вариантом является сохранение хостов в режиме ожидания, но добавление их к вашим балансировщикам нагрузки с помощью сценариев (или лямбда-функций), которые отслеживают определенные вами метрики (я предполагаю, что ваше приложение работает за балансировщиками нагрузки).

Удачи.

0 голосов
/ 06 июля 2018

Не с использованием AutoScaling. По крайней мере, не так, как вы описали. Однако вы можете сделать это намного быстрее, создав собственный модифицированный образ AMI, в который вы поместите JAR и последние исправления ОС. Эти AMI могут быть сгенерированы как часть вашего конвейера сборки. В этом случае единственное реальное время ожидания - запуск ОС и служб, аналогично «холодному» серверу.

Упаковщик - инструмент, обычно используемый для таких случаев использования.

Кроме того, вы можете управлять им самостоятельно, отключив серверы, и запустить их, написав несколько пользовательских лямбда-скриптов, которые запускаются оповещениями Cloudwatch. Но поскольку остановленные серверы тоже не совсем бесплатны, я бы порекомендовал против этого по соображениям стоимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...