Estou trabalhando em um serviço da Web 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 funcionamento, 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 terceirizadas que são executadas apenas no Windows). Eu já vi isso levar de 10 minutos a uns 45 minutos impressionantes.
Alguém tem alguma dica sobre como acelerar o lançamento de uma instância do EC2? Como as AMIs para servidores Windows são grandes em comparação às AMIs do Linux, por exemplo, pergunto-me se uma coisa pode ser garantir que o bucket S3 que contém a AMI esteja localizado na mesma zona em que a instância é iniciada, o que provavelmente seria tornar o provisionamento da nova instância mais rápido.
fonte
As instâncias do Amazon windows são reiniciadas no início porque a configuração padrão do serviço do Windows "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 da sua instância, poderá se beneficiar ao desativar 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, economizando 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: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html
Minhas instâncias pequenas do Windows normalmente levam de 15 a 18 minutos para inicializar (as maiores são mais rápidas). Dependendo dos seus requisitos, você poderá agrupar todo o seu software na AMI e poderá ter tudo inicializado e em execução nesse período. 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 agrupado. Mantenha os scripts de construção separados, se desejar, em seus ambientes de construção.
Além disso, agora que a Amazon havia lançado os volumes raiz do EBS, em oposição aos volumes raiz do armazenamento de instância. As pequenas imagens do Windows executadas em um volume EBS são inicializadas em quase 5 minutos, contra os quase 20 minutos anteriores. Além disso, você não precisa finalizar - você pode parar / iniciá-los - dependendo da sua configuração, isso potencialmente raspa mais alguns minutos em alguns scripts de inicialização.
A personalização essencial do serviço de configuração do Windows EC2, a AMI e o uso potencial de um volume de inicialização do EBS devem reduzir o tempo de inicialização para quase 5 minutos. Você pode evitar o sysprep que é executado em uma inicialização da instância ec2, dependendo do seu aplicativo, especialmente para fins de desenvolvimento. Uma imagem m1.large não sysprepped que evita uma alteração no nome do host na inicialização pode ser iniciada em cerca de 2 minutos, o que não é nada ruim.
No momento, pelo que entendi, é o melhor que você pode fazer com o Windows no Amazon EC2, mas isso realmente não é tão ruim. Se você conseguir prever um futuro próximo de 10 minutos com base nos padrões médios de uso, poderá gerar instâncias extras e lidar com a carga adicional.
fonte
Ter um sistema mínimo, manter o máximo possível no EBS pode ajudar? Ou talvez adote uma abordagem no estilo Apache e execute uma ou duas na reserva?
fonte
Nós encontramos esse problema exato, mas de uma maneira 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 horário de início do Máquinas Windows. Nossa maior decisão foi oferecer suporte apenas a 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 da loja da instância variam amplamente e às vezes levam quantidades excessivas de tempo, o que os torna inúteis para nós.
Simon @ LabSlice Gerenciamento de laboratório virtual no EC2
fonte