Acelerando o lançamento de instâncias do Windows do Amazon EC2

16

Estou trabalhando em um serviço da Web que está hospedado no EC2 e precisa ter um número variável de instâncias em execução, dependendo da carga. Temos o serviço básico em execução, mas uma das coisas com as quais estamos lutando é o tempo necessário para provisionar e iniciar uma instância do Windows (estamos usando algumas ferramentas de terceiros que só executam no Windows). Eu vi isso levar de 10 minutos a incríveis 45 minutos.

Alguém tem alguma dica sobre como acelerar o lançamento de uma instância do EC2? Como as AMIs dos servidores Windows são grandes em comparação com as AMIs do Linux, por exemplo, estou pensando em uma coisa: certificar-se de que o bucket S3 contendo a AMI esteja localizado na mesma zona em que a instância foi lançada, o que presumivelmente tornar o provisionamento da nova instância mais rápido.

    
por gareth_bowles 22.07.2009 / 06:14

4 respostas

8

Eu instalei 3 instâncias na noite passada de um servidor Windows 2003 baunilha. Os dois primeiros levaram cerca de 45 minutos, o terceiro, cerca de uma hora depois, demorou 2 horas antes de estar pronto!

Eles não tinham nada, sem uso do S3. Eu duvido que haja uma maneira de acelerar esse passo fundamental além de esperar que a Amazon melhore a velocidade de implantação ao longo do tempo. Então, eu concluo que um certo atraso é esperado e o conselho de Kurt é bom, que é manter 1 ou 2 na reserva já preparada.

Outra coisa que você poderia fazer é criar uma nova instância do seu tipo de AMI algumas vezes e marcá-la. Em seguida, tente algumas vezes com seu armazenamento S3 e veja quanto tempo isso adiciona a ele. Suponho que a zona de disponibilidade deve corresponder entre a imagem e S3, embora eu não saiba quanto diferença de tempo isso fará.

Depois de determinar o tempo máximo de provisionamento, mantenha-se à frente da carga / uso em tantos minutos.

    
por 29.08.2009 / 15:38
18

As instâncias do Windows do Amazon são reiniciadas no início porque a configuração padrão do serviço de janelas "EC2 Config" é renomear seu host para o nome DNS interno da instância. Renomear hosts requer uma reinicialização no Windows. Se você não precisar usar o nome DNS interno de sua instância, poderá se beneficiar desativando o recurso SetComputerName. As instâncias do Windows também têm a vantagem de não precisar inicializar as unidades de inicialização nas quais você já pode ter empacotado sua configuração novamente, poupando mais tempo na inicialização da instância. Tudo isso é possível através do Serviço de Configuração do Windows EC2.

Serviço de configuração do Windows: link

Minhas instâncias pequenas do Windows normalmente levam de 15 a 18 minutos para serem inicializadas (as maiores são mais rápidas). Dependendo de suas necessidades, você poderá agrupar todo o seu software dentro da AMI e conseguir que tudo seja inicializado e executado dentro desse período. Eu entendo as reservas para não agrupar tudo em uma AMI, mas pode valer a pena melhorar o tempo de inicialização para ter AMIs de produção com tudo incluído nelas. Mantenha os scripts de construção separados se você quiser em seus ambientes de construção.

Além disso, agora que a Amazon lançou os volumes de raiz do EBS em oposição aos volumes de raiz de armazenamento de instância. As pequenas imagens do Windows em execução em um volume do EBS são inicializadas em quase 5 minutos em comparação com os quase 20 minutos que foram necessários antes. Além disso, você não precisa finalizar - pode pará-los / iniciá-los - dependendo da sua configuração, isso potencialmente raspa mais alguns minutos em alguns scripts de inicialização.

A personalização do serviço de configuração do Windows EC2, a sua AMI e, potencialmente, a utilização de um volume de arranque do EBS devem reduzir os tempos de arranque para quase 5 minutos. Você pode evitar o sysprep executado em uma inicialização de instância ec2, dependendo do aplicativo, especialmente para fins de desenvolvimento. Uma imagem não-sysprepped m1.large que evita uma alteração de nome de host na inicialização pode ser iniciada em cerca de 2 minutos, o que não é nada ruim.

No momento, pelo que eu entendi, é o melhor que você pode fazer com o Windows no Amazon EC2, mas isso não é tão ruim. Se você puder prever cerca de 10 minutos para o futuro com base nos padrões de uso médios, será possível gerar instâncias extras e lidar com a carga adicional.

    
por 22.04.2011 / 04:30
4

Ter um sistema mínimo, manter o máximo possível no EBS pode ajudar? Ou talvez ter uma abordagem estilo Apache e executar um ou dois na reserva?

    
por 10.08.2009 / 06:54
4

Nós nos deparamos com esse problema exato, mas de uma forma muito séria - nossa nova inicialização estende o Amazon EC2 para um ambiente de Laboratório Virtual (multiusuário, políticas, compartilhamento etc.) e, portanto, precisávamos acelerar o processo hora de início das máquinas Windows. Nossa maior decisão foi suportar apenas volumes baseados em EBS em nosso aplicativo, porque eles são os únicos que podem iniciar em 5 a 10 minutos. Em nossos testes, descobrimos que os tempos de inicialização das lojas de instâncias variam amplamente e, às vezes, levam muito tempo, o que os torna inúteis para nós.

Gerenciamento de laboratório virtual Simon @ LabSlice no EC2

    
por 10.08.2010 / 21:22