Ejecutar un sitio web o una aplicación no tiene por qué ser costoso. De hecho, hay formas de ahorrar dinero en recursos mientras se proporciona a los usuarios una excelente experiencia. Un ejemplo es a través de AWS EC2 Autoscaling.
EC2 Auto Scaling es un servicio que puede ayudar a escalar automáticamente su capacidad de Amazon EC2 hacia arriba o hacia abajo según las condiciones que defina. Y en este tutorial, aprenderás cómo configurar y aplicar una configuración básica de Auto Scaling de EC2 en AWS para tus aplicaciones.
Sigue leyendo y asegúrate de que tu aplicación siempre tenga recursos sin pagar más de lo necesario!
Prerrequisitos
Este tutorial comprende demostraciones prácticas. Para seguir, necesitarás una cuenta de AWS, y una cuenta de nivel gratuito sería suficiente.
Creación de una plantilla de inicio
Antes de sumergirte en AWS EC2 Auto Scaling, primero necesitas una forma de iniciar una instancia de EC2, una plantilla de inicio (similar a la configuración de inicio). Una plantilla de inicio contiene toda la información necesaria para iniciar una instancia de EC2, como el tipo de instancia, la subred y los grupos de seguridad.
AWS recomienda el uso de una plantilla de inicio, que proporciona más flexibilidad y características avanzadas que una configuración de inicio. EC2 Auto Scaling utiliza una plantilla de inicio para iniciar nuevas instancias al escalar hacia arriba.
Para crear una plantilla de inicio:
1. Abra su navegador web favorito e inicie sesión en la Consola de administración de AWS.
2. Busque plantillas de inicio de EC2 en la barra de búsqueda y seleccione Plantillas de inicio en los resultados bajo Características. Al hacerlo, se abrirá la página de plantillas de inicio de EC2.

3. A continuación, seleccione una región de la lista desplegable (arriba a la derecha) y haga clic en Crear plantilla de inicio para iniciar la creación de una plantilla de inicio
. Puede utilizar el escalado automático en cualquier región que admita el escalado automático de EC2, pero este tutorial utiliza US East (N. Virginia)

.4. Ahora, configure el nombre y la descripción de la nueva plantilla de inicio de la siguiente manera:
- Nombre de la plantilla de inicio – obligatorio – Proporcione un nombre para su plantilla de inicio (ec2-autoscaling-template-demo). El nombre debe ser único dentro de la región, no más largo de 128 caracteres y no debe contener caracteres especiales que no sean guiones (-), guiones bajos (_) y puntos (.).
- Descripción de la versión de la plantilla – Ingrese una descripción para su plantilla de inicio (demostración de plantilla de inicio de autoscaling de ec2), y no más largo de 255 caracteres.
- Guía de Escalado Automático – Marque la opción Proporcionar orientación para ayudarme a configurar una plantilla que pueda usar con EC2 Auto Scaling para habilitar la orientación de escalado automático. Esta opción facilita la creación de una plantilla de inicio compatible con EC2 Auto Scaling.

5. Desplácese hacia abajo hasta la sección de Contenidos de las plantillas de inicio y elija las imágenes de aplicaciones y sistemas operativos para su plantilla de inicio con lo siguiente:
- Imágenes de Aplicaciones y Sistemas Operativos (Amazon Machine Image) – Seleccione una imagen de arranque para su plantilla, pero este tutorial utiliza una AMI de Amazon Linux 2. Sus instancias EC2 se iniciarán en función de la imagen de arranque seleccionada.
Puede seleccionar cualquier imagen de arranque que prefiera, pero se recomienda una AMI de Amazon Linux 2 ya que es elegible para el nivel gratuito.
- Arquitectura – Seleccione una arquitectura para su plantilla, pero este tutorial utiliza x86-64 (64 bits).

6. A continuación, configure el tipo de instancia y el par de claves (inicio de sesión) para su plantilla de inicio de la siguiente manera:
- Tipo de instancia – Seleccione el tipo de instancia para su plantilla. Pero la opción de este tutorial es t2.micro ya que es elegible para el nivel gratuito.
Considere otros factores al seleccionar un tipo de instancia, como los requisitos de CPU y memoria, ya que algunos tipos de instancias cuestan más que otros.
- Par de claves (inicio de sesión) – Seleccione No incluir en la plantilla de inicio ya que no es necesario para el escalado automático.
Cuando se especifica un par de claves, EC2 Auto Scaling inicia sus instancias con el par de claves.

7. Bajo Configuración de red, elige la opción Seleccionar grupo de seguridad existente y especifica un conjunto de seguridad para tus instancias EC2. Al hacerlo, EC2 Auto Scaling lanzará tus instancias con este grupo de seguridad.
Ten en cuenta que puedes elegir la opción Crear grupo de seguridad si deseas crear un nuevo grupo de seguridad para tus instancias EC2.

8. Mantén las demás configuraciones predeterminadas y haz clic en Crear plantilla de lanzamiento (esquina inferior derecha) en la lista desplegable Resumen para crear tu plantilla de lanzamiento.

9. Por último, haz clic en Crear grupo de Auto Scaling en la sección Crear un grupo de Auto Scaling a partir de tu plantilla para continuar.
No cierres la página de la plantilla de lanzamiento, ya que crearás tu grupo de Auto Scaling en la siguiente sección, uno a la vez.

Creación de un Grupo de Auto Scaling de AWS EC2
Ahora que tienes una plantilla de lanzamiento de EC2, necesitarás crear un grupo de Auto Scaling de AWS EC2 para contener tu instancia EC2. AWS EC2 Auto Scaling tiene funciones que te permiten utilizar reemplazos de comprobación de estado y políticas de escalado.
Puedes crear un grupo de Auto Scaling con múltiples instancias si lo deseas. Pero en este tutorial, crearás un grupo de Auto Scaling de instancia única para demostrar cómo funciona el Auto Scaling.
1. Configura el grupo de Auto Scaling con lo siguiente mientras aún estás en la página de Crear plantilla de lanzamiento:
- Nombre del grupo de escalado automático – Introduce un nombre para tu grupo de escalado automático (ec2-autoscaling-group-demo). El nombre debe ser único dentro de tu región de AWS y tener una longitud máxima de 255 caracteres.
- Plantilla de lanzamiento – Selecciona tu plantilla de lanzamiento de EC2 en la lista desplegable (ec2-autoscaling-template-demo).
- Haz clic en Siguiente para continuar.

2. A continuación, deja todas las configuraciones predeterminadas como están, pero selecciona una VPC y una subred existente para tu grupo de escalado automático, y haz clic en Siguiente para continuar.
Especificar estas configuraciones permite que tu grupo de escalado automático sepa dónde lanzar tus instancias de EC2.

3. Mantén las configuraciones predeterminadas y haz clic en Siguiente para continuar.

4. Ahora, configura el tamaño del grupo de tu grupo de escalado automático con lo siguiente:
Capacity | Limit | Details |
Desired | 1 | Set the number of instances you want in your Auto Scaling group. The desired capacity must be greater than or equal to the minimum capacity and less than or equal to the maximum capacity. |
Minimum | 1 | Set the minimum number of instances in your Auto Scaling group. The value must be greater than or equal to 1 and less than or equal to the maximum capacity. |
Maximum | 1 | Set the maximum number of instances you want in your Auto Scaling group. |

5. Desplázate hacia abajo, mantén las configuraciones predeterminadas y haz clic en Omitir para revisar para continuar.
- Pólizas de escalado – Mantén seleccionada la opción Ninguna ya que usarás una política de escalado simple. Esta política aumenta la capacidad deseada de tu grupo de escalado automático en una instancia de EC2 cuando la instancia más antigua del grupo ha sido terminada.
- Protección contra reducción de escala de instancias – Mantén esta opción deshabilitada ya que no la necesitas en este tutorial. Habilitar esta opción te permite controlar si tu grupo de escalado automático puede terminar tu instancia al reducir la escala.

6. Por último, revisa la configuración de tu grupo de escalado automático y haz clic en Crear grupo de escalado automático (abajo a la derecha) para crear tu grupo de escalado automático.

Una vez creado, verás tu grupo de Auto Scaling en la lista, como se muestra a continuación.

Probando un grupo de Auto Scaling de AWS EC2
¡Genial! Has logrado crear un grupo de Auto Scaling de AWS EC2 para contener tu instancia de EC2. Pero, ¿cómo sabes si tu grupo de Auto Scaling funciona?
Verificarás que tu grupo de Auto Scaling de AWS EC2 ha iniciado una instancia de EC2. Esta instancia es la que especificaste (Capacidad deseada) en el paso cuatro de la sección “Creación de un grupo de Auto Scaling de AWS EC2”.
1. Marca la casilla junto a tu grupo de Auto Scaling recién creado y haz clic en la pestaña Actividad para ver todas las actividades en tu grupo de Auto Scaling.
En la sección Historial de actividad en la parte inferior, verás la descripción del evento más reciente en tu grupo de Auto Scaling. En este caso, la descripción dice “Iniciando una nueva instancia de EC2”, con el estado exitoso e ID de instancia (i-09b699064f6e06070).
Copia el ID de la instancia, ya que lo necesitarás para verificar tu instancia en el siguiente paso.

2. Ve al panel de EC2 y compara el ID de la instancia que copiaste en el paso uno con cualquier instancia en ejecución.
Ver que ambos ID de instancia coinciden indica que tu grupo de Auto Scaling ha iniciado correctamente una instancia de EC2.

3. Regresa a la página del grupo de Auto Scaling, haz clic en la pestaña Administración de instancias y verás toda la información sobre tus instancias de EC2 en un solo lugar. La información más crítica en esta pestaña es:
- La columna Ciclo de vida: Puedes observar que la instancia de EC2 en tu grupo de escalado automático se encuentra en el estado En servicio, lo que indica que la instancia está disponible para manejar solicitudes.
- La columna Estado de salud: Puedes ver que el estado de verificación de salud de tu instancia EC2 es Sano, lo que indica que la instancia está superando todas las verificaciones de salud.
Terminar una instancia EC2
Ahora que has verificado que tu grupo de escalado automático está funcionando, puedes probarlo aún más terminando manualmente la instancia EC2 dentro de él. Recuerda, al terminar una instancia en el grupo, el grupo de escalado automático lanzará automáticamente una nueva instancia EC2 como reemplazo.
En casos de la vida real, usarías un grupo de escalado automático para escalar automáticamente en respuesta a condiciones cambiantes. ¿Cuándo? Por ejemplo, uno de tus servidores web NGINX está sobrecargado con solicitudes y corre el riesgo de caer.
Pero por ahora, probarás tu grupo de escalado automático al terminar la instancia EC2 manualmente para simular lo que ocurriría si una instancia falla.
1. Ve a tus instancias y marca la casilla junto a la instancia para seleccionarla.
Una vez seleccionada, haz clic en el menú desplegable Estado de la instancia → Terminar instancia para terminar la instancia seleccionada.

2. Luego, haz clic en Terminar cuando se te solicite confirmar la terminación de la instancia.

A continuación, puedes ver un mensaje que indica que la instancia EC2 ha sido terminada exitosamente.
El período de espera predeterminado para un grupo de escalado automático es de 300 segundos (5 minutos), lo que significa que al menos tomará al grupo de escalado automático cinco minutos para lanzar una nueva instancia después de que termines la anterior.

3. Finalmente, verifica el historial de actividad en el grupo de escalado automático mientras esperas que se lance la nueva instancia.
Como se muestra a continuación, verás que una nueva instancia EC2 ha sido lanzada automáticamente. Esta salida confirma que tu grupo de escalado automático está funcionando como se esperaba.

Conclusión
Manejar la carga de tu aplicación es una parte esencial para mantenerla funcionando sin problemas. Afortunadamente, con AWS EC2 Auto Scaling, puedes asegurar que tu aplicación siempre tenga los recursos necesarios para manejar los patrones de tráfico cambiantes.
Y en este tutorial, has aprendido cómo crear un grupo de escalado automático, lanzar instancias en el grupo y escalar el grupo en respuesta a condiciones cambiantes. En este punto, ahora puedes crear con confianza grupos de escalado automático de AWS EC2 para tus aplicaciones.
Con este conocimiento recién adquirido, ¿por qué no crear grupos de escalado automático con AWS CloudFormation para aún más comodidad? Te lo agradecerás más tarde cuando tu carga aumente y no tengas que preocuparte por aprovisionar manualmente más recursos.