Действительно медленные запуски AMI - PullRequest
7 голосов
/ 02 февраля 2011

Существует огромное различие во времени запуска Windows AMI (поддерживаемых EBS), которые я использую. Некоторые запускаются всего за 3 минуты. Другие могут занять более 20 минут. Насколько я понимаю, стандартные AMI для Windows могут быть медленными, так как для их активации требуются две перезагрузки, но в моем случае это все настроенные компьютеры, либо публичные, либо созданные мной снимки.


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

Ответы [ 2 ]

5 голосов
/ 18 июня 2011

Это делает разное время для запуска Windows AMI в EC2.Вы можете немного его уменьшить, установив фиксированное имя машины для экземпляра.Сделайте это так, как на любом компьютере с Windows - в свойствах «Мой компьютер», вкладка «Имя компьютера».Затем запустите «Настройки EC2ConfigService» из списка «Все программы» в меню «Пуск».Эта программа установлена ​​там Amazon на большинстве базовых AMI.В этой программе на вкладке «Общие» снимите флажок «Задать имя компьютера». Это исключает повторную загрузку системы один раз при запуске образа , как это должно было бы быть, чтобы установить имя.

Тем не менее, вы хотели бы получать уведомление , когда ваш экземпляр готов!Это идеальная работа для службы простого оповещения Amazon.Служба (также известная как SNS) проста в использовании программно (например, из проекта Windows .NET), бесплатна (для первых 100 000 сообщений, всего менее 1 ГБ), а уведомления являются немедленными.

Код для отправки уведомления (в VB.NET):

    Imports Amazon.EC2.AmazonEC2Client  
    Imports Amazon.SimpleNotificationService  
    DIM LabSNS As New AmazonSimpleNotificationServiceClient(Lab_AWSKey, Lab_AWSSecretKey)  
    Dim PubReq As New Amazon.SimpleNotificationService.Model.PublishRequest  
    Dim Msg As String 'Messege to be built up, then be sent.  It is body of eMail.  
    Msg = "The instance is running and ready!"  
    Msg = Msg + vbCrLf + "Previous State of machine was:" & PreviousState 'A made-up global  
    Msg = Msg + [Any other info. I want to send myself about the start of the instance.]  
    PubReq.WithTopicArn(Topic)'Topic is a global. It's value is a key from SNS topic setup.  
    PubReq.WithSubject("EC2 Instance is Ready!")  
    PubReq.WithMessage(Msg)  
    LabSNS.Publish(PubReq)  

Код требует SDK Amazon для .NET , который является бесплатным.Напишите программу, включающую некоторый код, подобный приведенному выше.Настройте программу на запуск после запуска компьютера и перед входом в систему с помощью планировщика задач Windows - создайте задачу, запускаемую «при запуске системы», которая вызывает программу.

Настройка SNS задокументирована здесь: Документация SNS

Отправка электронной почты выглядит проблематично, однако среда Amazon EC2 очень жесткая, когда она приходитна отправку электронной почты.Многие пытались использовать EC2 в качестве платформы для спама, поэтому Amazon тщательно блокировала трафик SMTP (eMail), за исключением случаев, предписанных Amazon.Вы не можете просто открыть порт в группе безопасности Amazon для обхода блоков Amazon.

У Amazon действительно есть общая функция электронной почты, которую можно использовать из EC2.Он называется Amazon Simple Email Service (SES).Это не будет работать для вас, так как он предназначен для массовой электронной почты.Так что цены SES, обработка исключений и обмен сообщениями не будут соответствовать тому, что вам нужно, я не думаю.

SNS, с другой стороны, отлично подходит для этого.Он включает в себя первоначальное электронное письмо получателям (вам и, возможно, другим, кого вы, возможно, захотите уведомить о подключении вашего сервера к сети) с вопросом, хотят ли они получать будущие сообщения по этой теме;им предоставляется возможность отказаться, и они должны ответить для получения дальнейших действий.

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

Он будет беспроблемным в настройке и твердым, как скала в действии.

1 голос
/ 31 марта 2011

Независимо от источника вашего Windows AMI, он будет перезагружаться несколько раз во время процесса запуска, прежде чем станет доступным через RDP. Все Windows AMI являются производными от Windows AMI, произведенных Amazon, которые имеют этот процесс загрузки по своему замыслу. [Предполагалось, что этот процесс загрузки жестко запрограммирован в собственное ядро, работающее внутри гостевой виртуальной машины.]

Журналы консоли обычно появляются от 2 до 5 минут.

К сожалению, Windows на EC2 сложнее автоматизировать и отслеживать, чем Linux. RightScale и Scalr проделали отличную работу по интеграции Windows в свою платформу управления. И инструмент управления конфигурацией Opscode Chef также поддерживает Windows в EC2 и может помочь вам определить, когда ваши экземпляры готовы к использованию.

...