Información general
Auto Scaling le permite escalar vertical u horizontalmente la capacidad de Amazon EC2 de forma automática según las condiciones que defina. Con Auto Scaling, puede asegurarse de que el número de instancias de Amazon EC2 que utiliza aumente sin interrupciones durante los picos de demanda, a fin de mantener el rendimiento, y se reduzca automáticamente durante los periodos de calma en la demanda para minimizar los costos. Auto Scaling resulta especialmente adecuado para aquellas aplicaciones que muestran variaciones de uso según la hora, el día o la semana.
Sin embargo, Auto Scaling representa algo más que una forma de agregar y quitar servidores. También es un mecanismo para manejar fallas similar a la forma en que el balanceo de carga maneja los servidores que no responden. Este laboratorio demostrará la configuración de Auto Scaling para lanzar, monitorear y actualizar automáticamente el balanceador de carga asociado con las instancias de Elastic Compute Cloud (EC2).
Hay dos puntos importantes que debe saber sobre Auto Scaling. En primer lugar, Auto Scaling es una forma de establecer la “temperatura de la nube”. Usted utiliza políticas para “configurar el termostato” y, entre bastidores, Auto Scaling controla el calor agregando y quitando recursos de Amazon EC2 según sea necesario para mantener la “temperatura” (capacidad).
Una política de Auto Scaling consta de lo siguiente:
Una configuración de lanzamiento que define los servidores que se crean en respuesta al aumento de la demanda.
Un grupo de Auto Scaling que define cuándo utilizar una configuración de lanzamiento para crear nuevas instancias de servidor y en qué contexto de la zona de disponibilidad y del balanceador de carga deben crearse.
En segundo lugar, Auto Scaling asume un conjunto de servidores homogéneos. Es decir, Auto Scaling no sabe que el servidor A es una instancia extragrande de 64 bits y que tiene más capacidad que una instancia pequeña de 32 bits. De hecho, este es un principio fundamental de la informática en la nube: escalar horizontalmente con una flota de recursos fungibles; los recursos individuales son secundarios a la propia flota.
Temas tratados
Al final de este laboratorio, podrá hacer lo siguiente:
- crear una nueva configuración de lanzamiento mediante herramientas de línea de comandos
- crear un nuevo grupo de Auto Scaling mediante herramientas de línea de comandos
- configurar notificaciones de Auto Scaling que se activan cuando los recursos de la instancia se vuelven demasiado altos o demasiado bajos
- crear políticas para escalar verticalmente o reducir verticalmente el número de instancias en ejecución en el momento como respuesta a cambios en la utilización de recursos
Requisitos previos del laboratorio
Para completar correctamente este laboratorio, debe estar familiarizado con la administración básica del servidor Linux y sentirse cómodo con las herramientas de línea de comandos de Linux. También debe ser competente en este punto con los conceptos básicos de la creación de nuevas instancias del servidor de Amazon EC2 y la configuración de Elastic Load Balancing.
Otros servicios de AWS
La política de IAM deshabilita los servicios de AWS que no son necesarios para este laboratorio durante su tiempo de acceso al laboratorio. Además, las capacidades de los servicios utilizados para este laboratorio están limitadas según los requisitos de este e incluso, en algunos casos, de forma deliberada como parte del diseño del laboratorio. Espere recibir mensajes de error cuando acceda a otros servicios o cuando lleve a cabo acciones que no consten en la guía de este laboratorio.
Componentes clave de Auto Scaling
Cuando lanza un servidor de forma manual, proporciona parámetros como la Amazon Machine Image (AMI), el tipo de instancia y el grupo de seguridad en el que se va a lanzar. Auto Scaling llama a esto configuración de lanzamiento. Es simplemente un conjunto de parámetros que describen qué tipo de instancias lanzar.
Los grupos de Auto Scaling indican al sistema qué hacer con una instancia después de lanzarla. Aquí es donde se especifica en qué zonas de disponibilidad se deben lanzar las instancias, de qué balanceadores de carga recibirán tráfico y, lo que es más importante, el número mínimo y máximo de instancias que se ejecutarán en un momento dado.
Necesita reglas que le digan al sistema cuándo agregar o quitar instancias. Estas políticas se conocen como políticas de escalado y tienen reglas como “escalar la flota horizontalmente en un 10 %” y “reducir horizontalmente en 1 instancia”.
El tiempo importa
Hay costos relacionados con la utilización de Auto Scaling. Existen dos factores importantes que afectan de forma directa el costo de AWS y también la forma en que se escala la aplicación: el costo y el tiempo.
Las instancias Linux de Amazon EC2 se cobran por segundo
Esto significa que puede escalar horizontalmente los servidores cuando hay mucha actividad y, a continuación, reducir horizontalmente para disminuir los costos cuando se requiere menos capacidad.
El escalado lleva tiempo
Considere el siguiente gráfico. En la mayoría de las situaciones, transcurre una cantidad considerable de tiempo entre el momento en que surge la necesidad de un evento de escalado y el momento en que sucede el evento de escalado.
- En este ejemplo, la regla dice que debe estar en una condición particular durante al menos dos minutos.
- CloudWatch es el sistema de recopilación de datos subyacente que monitorea estadísticas como la utilización de la CPU. Es un protocolo de sondeo y, en general, tarda 60 segundos en agregar datos nuevos.
- Auto Scaling también es un sistema de sondeo y tarda otros 60 segundos.
- Luego, su servidor tiene un tiempo de arranque. Un servidor grande y complejo puede tardar muchos minutos en lanzarse.
- Finalmente, el balanceador de carga debe sondear el servidor durante unos cuantos ciclos antes de estar seguro de que el servidor está en buen estado y que acepta solicitudes.