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

Ускорение запуска инстансов Amazon EC2 Windows

Я работаю над веб-сервисом, который размещен на EC2 и должен иметь различное количество запущенных экземпляров в зависимости от нагрузки. У нас есть базовая служба, работающая и работающая, но одна из проблем, с которой мы боремся, - это время, необходимое для подготовки и запуска экземпляра Windows (мы используем некоторые сторонние инструменты, которые работают только в Windows). Я видел, как это занимало от 10 минут до ошеломляющих 45 минут.

Есть ли у кого-нибудь советы, как ускорить запуск инстанса EC2? Так как AMI для серверов Windows имеют большие размеры по сравнению, например, с AMI Linux, мне интересно, может ли одна вещь заключаться в том, чтобы убедиться, что корзина S3, содержащая AMI, расположена в той же зоне, где запущен экземпляр, что предположительно ускорить подготовку нового экземпляра.

Экземпляры Windows Amazon перезагружаются при запуске, потому что по умолчанию служба Windows «EC2 Config» переименовывает ваш хост во внутреннее DNS-имя экземпляра. Для переименования хостов требуется перезагрузка Windows. Если вам не нужно использовать внутреннее DNS-имя вашего экземпляра, вы можете получить выгоду, отключив функцию SetComputerName. Экземпляры Windows также имеют то преимущество, что им не нужно инициализировать загрузочные диски, на которых вы, возможно, уже снова скомпоновали свою конфигурацию, что позволяет сэкономить время при запуске экземпляра. Все это возможно через службу конфигурации Windows EC2.

Служба конфигурации Windows: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html

Мои маленькие экземпляры Windows обычно загружаются за 15-18 минут (большие - быстрее). В зависимости от ваших требований вы можете объединить все свое программное обеспечение в AMI и иметь возможность загружать и запускать все в течение этого периода. Я понимаю, что не следует объединять все в AMI, но, возможно, стоит улучшить время запуска, чтобы иметь производственные AMI со всем, что в них объединено. Храните сценарии сборки отдельно, если хотите, в своих средах сборки.

Кроме того, теперь, когда Amazon выпустила корневые тома EBS, а не корневые тома инстансов. Небольшие образы Windows, запущенные на томе EBS, загружаются почти за 5 минут по сравнению с почти 20 минутами, которые требовались ранее. Также вам не нужно завершать работу - вы можете останавливать / запускать их - в зависимости от ваших настроек, это потенциально сокращает еще несколько минут в некоторых сценариях запуска.

По сути, настройка службы конфигурации Windows EC2, вашего AMI и возможное использование загрузочного тома EBS должны сократить время запуска почти до 5 минут. Вы можете избежать sysprep, который запускается при запуске экземпляра ec2 в зависимости от вашего приложения, особенно в целях разработки. Образ m1.large без предварительной подготовки, который позволяет избежать изменения имени хоста при запуске, может запуститься примерно через 2 минуты, что совсем неплохо.

На данный момент, насколько я понимаю, это лучшее, что вы можете сделать с Windows на Amazon EC2, но это действительно не так уж плохо. Если вы можете прогнозировать будущее примерно на 10 минут на основе средних шаблонов использования, вы должны иметь возможность запускать дополнительные экземпляры и справляться с дополнительной нагрузкой.

Вчера вечером я установил 3 экземпляра ванильного сервера Windows 2003. Первые два заняли около 45 минут, а третья, примерно через час, заняла целых 2 часа, прежде чем она была готова!

В них вообще ничего не было, без использования S3. Я сомневаюсь, что есть способ ускорить этот фундаментальный шаг, кроме ожидания, когда Amazon со временем улучшит скорость развертывания. Итак, я хотел бы сделать вывод, что следует ожидать некоторой задержки, и совет Курта хорош, а именно: подготовить 1 или 2 в резерве.

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

Определив максимальное время подготовки, опережайте нагрузку / использование на это количество минут.

У вас есть минимальная система, может помочь как можно больше в EBS? Или, возможно, возьмем подход в стиле Apache и запустим один или два в резерв?

Мы столкнулись именно с этой проблемой, но очень серьезно - наш новый стартап расширяет Amazon EC2 в среду виртуальной лаборатории (многопользовательская, политики, совместное использование и т. Д.), Поэтому нам нужно было ускорить время запуска Машины с Windows. Нашим самым большим решением было поддерживать в нашем приложении только тома на основе EBS, потому что они единственные, которые могут запускаться за 5-10 минут. В ходе нашего тестирования мы обнаружили, что время запуска хранилища экземпляров сильно различается и иногда занимает слишком много времени, что сделало их бесполезными для нас.

Simon @ LabSlice Управление виртуальной лабораторией на EC2