Acelerar el lanzamiento de las instancias de Windows de Amazon EC2


16

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.

Respuestas:


8

Instalé 3 instancias anoche de un servidor Windows 2003 de vainilla. Los primeros dos tomaron aproximadamente 45 minutos, el tercero, aproximadamente una hora más tarde, ¡tomó 2 horas completas antes de que estuviera listo!

Esos no tenían nada en absoluto, sin ningún uso de S3. Dudo que haya una manera de acelerar ese paso fundamental, aparte de esperar a que Amazon realice mejoras en la velocidad de implementación con el tiempo. Entonces, concluiría que es de esperar un cierto retraso y el consejo de Kurt es bueno, que es mantener 1 o 2 en reserva ya preparados.

Otra cosa que podría hacer es crear una nueva instancia de su tipo de AMI varias veces y cada vez. Luego, intente varias veces con su almacenamiento S3 y vea cuánto tiempo le agrega. Supongo que la zona de disponibilidad debe coincidir entre la imagen y S3, aunque no sé cuánta diferencia de tiempo hará.

Una vez que haya determinado el tiempo máximo de aprovisionamiento, manténgase por delante de la carga / uso en esos minutos.


Gracias por las sugerencias: 2 horas es bastante extremo. Una cosa que he notado desde que hice esta pregunta es que EC2 a veces reinicia las instancias de Windows inmediatamente después del inicio. No sé por qué es esto (no he descubierto un patrón de por qué algunas instancias se reinician mientras que otras no), pero puede agregar otros 5 o 10 minutos al tiempo de inicio.
gareth_bowles

2
@gareth: esto se debe a que la máquina tiene el mismo nombre que otra en la red (es decir, es una imagen). El EC2ConfigService detecta esto, asigna un nuevo nombre y lo reinicia. Puede deshabilitarlo con la utilidad de configuración ec2config instalada.
Kieren Johnstone

20

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.


El cambio de nombre del host interno es un gran consejo, ¡gracias! También quiero probar los volúmenes raíz de EBS, sobre todo porque facilitará mucho las copias de seguridad. Supongo que tendré que pronosticar un tiempo de inicio promedio de 10 minutos; eso no es un problema en sí mismo, pero la gran variabilidad de los tiempos de inicio sigue siendo un verdadero dolor.
gareth_bowles

Esto debería mencionarse en los documentos de AWS.
Peter Mounce

4

¿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?


4

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.