Beneficios de Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

Beneficios de Amazon EC2 Auto Scaling

Añadir Adding Amazon EC2 Auto Scaling a su arquitectura de aplicaciones es una forma de obtener el máximo beneficio de la nube de AWS. Cuando se utiliza Amazon EC2 Auto Scaling, sus aplicaciones disfrutan de los siguientes beneficios:

  • Mejor tolerancia a errores. Amazon EC2 Auto Scaling puede detectar cuándo una instancia está en mal estado, terminarla y lanzar una instancia para reemplazarla. También puede configurar Amazon EC2 Auto Scaling para que use varias zonas de disponibilidad. Si una zona de disponibilidad deja de estar disponible, Amazon EC2 Auto Scaling puede lanzar instancias en otra para compensar.

  • Mejor disponibilidad. Amazon EC2 Auto Scaling puede ayudarle a garantizar que la aplicación tiene siempre la capacidad adecuada para controlar la demanda de tráfico actual.

  • Mejor administración de costes. Amazon EC2 Auto Scaling puede aumentar y reducir de forma dinámica la capacidad según sea necesario. Dado que se paga por las instancias EC2 que se utilizan, es posible ahorrar dinero lanzando instancias cuando se necesitan y terminándolas cuando ya no son necesarias.

Ejemplo: Cubrir una demanda variable

Para mostrar algunos de los beneficios de Amazon EC2 Auto Scaling, considere una aplicación web básica que se ejecuta en AWS. Esta aplicación permite a los empleados buscar salas de conferencias para las reuniones. Durante el comienzo y el final de la semana, el uso de esta aplicación es mínimo. A mitad de semana, hay más empleados que programan reuniones, de modo que la demanda de la aplicación aumenta de forma significativa.

En el siguiente gráfico se muestra cuánta capacidad de la aplicación se usa a lo largo de una semana.


					Un ejemplo de la capacidad de demanda de una aplicación.

Tradicionalmente, hay dos formas de planificar estos cambios de capacidad. La primera opción consiste en agregar servidores suficientes para que la aplicación siempre tenga capacidad suficiente para satisfacer la demanda. La desventaja de esta opción, sin embargo, es que hay días en que la aplicación no necesita tanta capacidad. La capacidad adicional permanece sin utilizar y, en esencia, aumenta el costo de mantener la aplicación en ejecución.


					Un ejemplo que ilustra cómo comprar más capacidad de la necesaria es ineficaz desde el punto de vista de la rentabilidad.

La segunda opción es tener capacidad suficiente para controlar la demanda media de la aplicación. Esta opción es menos cara, ya que no necesita comprar equipos que utilizará solo de vez en cuando. Sin embargo, existe el riesgo de que la experiencia del cliente se vea afectada si la demanda de la aplicación supera su capacidad.


					Un ejemplo que ilustra cómo comprar menos capacidad de la necesaria puede suponer una mala experiencia para los clientes.

Añadiendo Amazon EC2 Auto Scaling a esta aplicación, dispone de una tercera opción. Puede añadir nuevas instancias a la aplicación solo cuando sea necesario y terminarlas cuando ya no las necesite. Como Amazon EC2 Auto Scaling utiliza instancias EC2, solo tiene que pagar por las instancias que utilice, cuando las utilice. Ahora tiene una arquitectura rentable que proporciona la mejor experiencia a los clientes a la vez que se minimizan los gastos.


					Un ejemplo que ilustra cómo Amazon EC2 Auto Scaling puede ajustar la capacidad según sea necesario.

Ejemplo: Arquitectura de aplicaciones web

En un escenario de aplicación web común, ejecuta varias copias de su aplicación de forma simultánea para cubrir el volumen del tráfico de sus clientes. Estas copias múltiples de la aplicación se alojan en instancias EC2 idénticas (servidores en la nube), cada una de las cuales tramita solicitudes de los clientes.


					Una arquitectura básica de tres niveles.

Amazon EC2 Auto Scaling administra el lanzamiento y la terminación de estas instancias EC2 en su nombre. Usted define un conjunto de criterios (como una alarma de Amazon CloudWatch) que determinan cuándo el grupo de Auto Scaling lanza o termina instancias EC2. Añadir grupos de Auto Scaling a la arquitectura de red ayuda a aumentar la disponibilidad y la tolerancia a errores de la aplicación.


					Arquitectura básica de tres niveles con un grupo de Auto Scaling.

Puede crear todos los grupos de Auto Scaling que necesite. Por ejemplo, puede crear un grupo de Auto Scaling para cada capa.

Para distribuir el tráfico entre las instancias del grupo de Auto Scaling, puede introducir un balanceador de carga en su arquitectura. Para obtener más información, consulte Elastic Load Balancing.

Ejemplo: Distribución de instancias entre zonas de disponibilidad

Los recursos de AWS como las instancias EC2, se alojan en centros de datos de alta disponibilidad. Para proporcionar escalabilidad y fiabilidad adicionales, estos centros de datos están en ubicaciones físicas diferentes. Las regiones son ubicaciones grandes dispersas por toda la geografía. Cada región contiene varias ubicaciones separadas, denominadas zonas de disponibilidad, que están diseñadas para estar aisladas de los errores que ocurran en las demás zonas de disponibilidad. Proporcionan conectividad de red económica y de baja latencia con las demás zonas de disponibilidad dentro de la misma región.

Amazon EC2 Auto Scaling le permite beneficiarse de la seguridad y la fiabilidad de la redundancia geográfica repartiendo los grupos de Auto Scaling por varias zonas de disponibilidad dentro de una región. Cuando una zona de disponibilidad pasa a tener un estado incorrecto o deja de estar disponible, Auto Scaling lanza nuevas instancias en la zona de disponibilidad afectada. Cuando la zona de disponibilidad en mal estado vuelve a tener un estado correcto, Auto Scaling redistribuye automáticamente las instancias de la aplicación de manera uniforme por todas las zonas de disponibilidad designadas.

Un grupo de Auto Scaling puede contener instancias EC2 en una o varias zonas de disponibilidad dentro de la misma región. Sin embargo, los grupos de Auto Scaling no pueden abarcar varias regiones.

Para los grupos de Auto Scaling en una VPC, las instancias EC2 se lanzan en subredes. Se seleccionan las subredes para las instancias EC2 cuando crea o actualiza el grupo de Auto Scaling. Puede seleccionar una o varias subredes por zona de disponibilidad. Para obtener más información, consulte VPC y subredes en la Guía del usuario de Amazon VPC.

Distribución de instancias

Amazon EC2 Auto Scaling intenta distribuir las instancias de manera uniforme entre las zonas de disponibilidad que están habilitadas para el grupo de Auto Scaling. Para ello, Amazon EC2 Auto Scaling intenta lanzar nuevas instancias en la zona de disponibilidad con el menor número de instancias. Sin embargo, si el intento fracasa, Amazon EC2 Auto Scaling intenta lanzar las instancias en otra zona de disponibilidad hasta que lo logra. Para los grupos de Auto Scaling de una VPC, si hay varias subredes en una zona de disponibilidad, Amazon EC2 Auto Scaling selecciona una subred de la zona de disponibilidad aleatoriamente.


						Un grupo de Auto Scaling típico que abarca dos zonas de disponibilidad.

Actividades de reequilibrio

Las actividades de reequilibrio se dividen en dos categorías: reequilibrio de zona de disponibilidad y reequilibrio de capacidad.

Reequilibrio de zona de disponibilidad

Cuando se producen determinadas acciones, el grupo de Auto Scaling puede quedar desequilibrado entre las zonas de disponibilidad. Amazon EC2 Auto Scaling compensa este desequilibrio reequilibrando las zonas de disponibilidad. Las siguientes acciones pueden derivar en una actividad de reequilibrio:

  • Cambia las zonas de disponibilidad del grupo.

  • Termina o desasocia instancias de forma explícita y el grupo queda desequilibrado.

  • Una zona de disponibilidad que anteriormente tenía capacidad insuficiente se recupera y ahora tiene capacidad adicional disponible.

  • Una zona de disponibilidad que anteriormente tenía un precio de spot superior a su precio máximo ahora tiene un precio de spot inferior a su precio máximo.

Durante el reequilibrio, Amazon EC2 Auto Scaling lanza nuevas instancias antes de terminar las antiguas, por lo que no se pone en peligro el rendimiento ni la disponibilidad de la aplicación.

Como Amazon EC2 Auto Scaling intenta lanzar nuevas instancias antes de terminar las antiguas, si se está en la capacidad máxima especificada o cerca de ella podría impedir o detener completamente las actividades de reequilibrio. Para evitar este problema, el sistema puede superar temporalmente la capacidad máxima especificada de un grupo en un margen del 10% (o en un margen de 1 instancia, lo que sea mayor) durante una actividad de reequilibrio. El margen solo se amplía si el grupo tiene o se aproxima a la capacidad máxima y necesita reequilibrarse, ya sea por una distribución de zonas solicitada por el usuario o para compensar los problemas de disponibilidad de zona. La extensión se mantiene solamente mientras sea necesaria para reequilibrar el grupo (normalmente unos minutos).

Reequilibrio de la capacidad

Puede habilitar el reequilibrio de capacidad para los grupos de Auto Scaling cuando utilice instancias de spot. Al activar el reequilibrio de capacidad, Amazon EC2 Auto Scaling intenta lanzar una instancia de spot siempre que Amazon EC2 notifica que una instancia de spot tiene un riesgo elevado de interrupción. Después de lanzar una nueva instancia, termina una instancia antigua. Para obtener más información, consulte Reequilibrio de la capacidad de Amazon EC2 Auto Scaling.