Estoy trabajando en un servicio web que está alojado en EC2 y necesita tener un número variable de instancias en ejecución, dependiendo de la carga. Tenemos el servicio básico en funcionamiento, pero una de las cosas con las que estamos luchando es el tiempo que lleva aprovisionar e iniciar una instancia de Windows (estamos usando algunas herramientas de terceros que solo se ejecutan en Windows). He visto que esto toma desde 10 minutos hasta unos asombrosos 45 minutos.
¿Alguien tiene algún consejo sobre cómo acelerar el lanzamiento de una instancia EC2? Dado que las AMI para los servidores de Windows son grandes en comparación con las AMI de Linux, por ejemplo, me pregunto si una cosa podría ser asegurarse de que el depósito S3 que contiene la AMI esté ubicado en la misma zona donde se inicia la instancia, lo que presumiblemente agilizar el aprovisionamiento de la nueva instancia.
fuente
Las instancias de Amazon Windows se reinician al inicio porque la configuración predeterminada del servicio de Windows "Configuración EC2" es cambiar el nombre de su host al nombre DNS interno de la instancia. Cambiar el nombre de los hosts requiere reiniciar en Windows. Si no necesita usar el nombre DNS interno de su instancia, entonces podría beneficiarse deshabilitando la función SetComputerName. Las instancias de Windows también tienen la ventaja de no tener que inicializar las unidades de inicio donde es posible que ya haya agrupado su configuración nuevamente, ahorrando más tiempo en el inicio de la instancia. Todo esto es posible a través del Servicio de configuración de Windows EC2.
Servicio de configuración de Windows: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html
Mis instancias pequeñas de Windows normalmente tardan entre 15 y 18 minutos en iniciarse (las más grandes son más rápidas). Dependiendo de sus requisitos, es posible que pueda agrupar todo su software dentro de la AMI y que todo se inicie y se ejecute dentro de ese período. Entiendo las reservas para no agrupar todo en una AMI, pero podría valer la pena mejorar el tiempo de inicio para tener AMI de producción con todo lo que se incluye en ellas. Mantenga los scripts de compilación separados si lo desea en sus entornos de compilación.
Además, ahora que Amazon había lanzado volúmenes raíz de EBS en lugar de volúmenes raíz de almacenamiento de instancias. Las imágenes pequeñas de Windows que se ejecutan en un volumen de EBS se inician en casi 5 minutos en comparación con los casi 20 minutos que tomó antes. Además, no necesita terminar, puede detenerlos / iniciarlos, dependiendo de su configuración, esto puede reducir algunos minutos más en algunos scripts de inicio.
Esencialmente, la personalización de su servicio de configuración de Windows EC2, su AMI y el uso potencial de un volumen de arranque de EBS deberían reducir los tiempos de arranque a casi 5 minutos. Puede evitar el sysprep que se ejecuta en un inicio de instancia ec2 dependiendo de su aplicación, especialmente para fines de desarrollo. Una imagen m1.large no sysprepped que evita un cambio de nombre de host en el inicio puede iniciarse en aproximadamente 2 minutos, lo que no está nada mal.
En este momento, hasta donde yo entiendo, eso es lo mejor que puedes hacer con Windows en Amazon EC2, pero eso no es tan malo. Si puede pronosticar cerca de 10 minutos en el futuro en función de los patrones de uso promedio, debería poder activar instancias adicionales y manejar la carga adicional.
fuente
¿Tiene un sistema mínimo, mantener todo lo posible en EBS podría ayudar? ¿O tal vez adopte un enfoque de estilo Apache y ejecute uno o dos en reserva?
fuente
Nos hemos encontrado con este problema exacto, pero de una manera muy seria: nuestro nuevo inicio extiende Amazon EC2 a un entorno de laboratorio virtual (multiusuario, políticas, uso compartido, etc.) y, por lo tanto, necesitábamos acelerar el tiempo de inicio de Máquinas con Windows. Nuestra decisión más importante fue admitir solo volúmenes basados en EBS en nuestra aplicación, porque son los únicos que pueden iniciarse en 5-10 minutos. En nuestras pruebas, encontramos que los tiempos de inicio de la tienda de instancias varían ampliamente y, a veces, toman demasiado tiempo, lo que los hace inútiles para nosotros.
Simon @ LabSlice Virtual Lab Management en EC2
fuente