2016-11-09 4 views
0

Я хочу поддерживать пул остановленных экземпляров ecazon ec2. Всякий раз, когда сумма ниже порога, я хотел бы иметь возможность создавать новые экземпляры, а затем сразу же останавливать их после их запуска. Возможно ли это в рамках инфраструктуры Amazon?Обеспечьте наличие пула остановленных экземпляров ec2

+0

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

+0

Время запуска остановленного экземпляра намного короче, чем время для создания нового экземпляра. –

+0

Итак, вы ищете быстрый способ масштабирования? Вы рассмотрели [Amazon EC2 Container Service] (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)? Он может развернуть контейнеры (например, с вашим приложением) за считанные секунды. С какими трудностями вы сталкиваетесь, что делает запуск слишком медленным? Используете ли вы полностью настроенный AMI при запуске экземпляров? Вы используете Linux или Windows? –

ответ

1

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

Для этого не существует автоматизированного метода. Вы можете иметь код решение, которое выполняет следующее:

  • Monitor числа остановленных экземпляров
  • Если количество находится ниже порогового значения, запуск новый экземпляр
  • Новый экземпляр может автоматически остановить себя через данные пользователя (либо с помощью команды выключения в операционной системе, либо по вызову StopInstances для EC2)

Некоторые вещи, которые вы должны рассмотреть следующие вопросы:

  • Что вызывает мониторинг? Будет ли это по графику?
  • Задача, которая запускает новый экземпляр нужно будет ждать для нового экземпляра для того чтобы запустить & Stop перед запуском каких-либо более экземпляров
  • Что Запускает случаев, когда они необходимы?
  • Бывают ли случаи когда-либо Остановлен, когда они больше не требуются?

Гораздо лучше выбор будет использовать Auto Scaling с масштабной сигнализацией на основе некоторой метрики, что говорит ваш флот занят, и масштабная в тревоге, чтобы удалить случаи, когда флот не занятый. Сигнал масштабирования может быть установлен для запуска экземпляров после передачи порога (например, 80% CPU), который должен позволять запускать новый экземпляр до того, как все будет на 100% занято. Разница во времени между запуском нового экземпляра и запуском существующего экземпляра довольно мала (по крайней мере для Linux).

Если вы используете Windows, самая большая задержка при запуске нового экземпляра связана с Sysprep, что делает «чистую» машину с новыми уникальными идентификаторами. Вы можете обмануть, создав AMI без Sysprep, который будет загружаться быстрее.

+0

Спасибо @John Rotenstein. В настоящее время у нас есть закодированное решение, ожидающее изменения состояния. Я не знал, что для этого можно использовать пользовательские данные, и я, разумеется, не знал о Sysprep. Отличный ответ. –

0

Возможно, я не понимаю вашу цель ... вы не можете «обеспечить доступность» случаев, не платя за них.

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

Для того, чтобы экземпляры всегда доступны, вы должны зарезервировать их, и вы должны указать оговорки в определенной доступности зоны:

Amazon EC2 Reserved Инстансы обеспечивают значительную скидку (до 75%) по сравнению с ценой по запросу и предоставить резервирование мощности при использовании в конкретной зоне доступности. [курсив]

https://aws.amazon.com/ec2/pricing/reserved-instances/

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

+0

Вы неправильно поняли вопрос. Я хочу поддерживать определенное количество экземпляров для региона, находящегося в состоянии «остановлено». Предположим, что это число равно 10. Каждый раз, когда один из этих экземпляров «запущен», я хочу создать другой экземпляр, который останавливается после его «запуска». Вот и все. –

+0

Как этот план более полезен/полезен, чем просто запускать экземпляры, когда они вам нужны? В чем преимущество этой стратегии? –

+0

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

Смежные вопросы