Cómo configurar el Grupo de Autoescalado de EC2 (ASG) en AWS
La función ASG (Auto Scaling Group) viene junto con el servicio EC2 (Elastic Compute Cloud) de la nube AWS (Amazon Web Services). Un ASG contiene una colección de instancias EC2 que se tratan como una agrupación lógica con el fin de escalar automáticamente. Un ASG permite utilizar las funciones de escalado automático de EC2, como los reemplazos de comprobación de estado y las políticas de escalado. Ayuda a mantener el número de instancias en un ASG y el escalado automático del servicio EC2 Auto Scaling. Para crear un ASG, primero tenemos que crear una Configuración de Lanzamiento.
Una configuración de lanzamiento es una plantilla de configuración que un ASG utiliza para lanzar instancias de EC2. Cuando creamos una configuración de lanzamiento, especificamos información para las instancias, como la Imagen de Máquina de Amazon (AMI), el tipo de instancia, un par de claves, grupos de seguridad, etc.
Auto Scaling supervisa nuestras aplicaciones y ajusta automáticamente la capacidad deseada si hay alguna diferencia en el recuento.
No hay cargos adicionales por el Autoescalado. Sólo tenemos que pagar los recursos de AWS necesarios para ejecutar las aplicaciones y las tarifas de monitorización de Amazon CloudWatch.
Para saber más sobre la facturación relacionada con ASG, haz clic aquí.
En este artículo, veremos cómo crear un ASG y ver cómo se puede mantener el número de instancias si el recuento disminuye o la carga del sistema aumenta.
Requisitos previos
- Cuenta de AWS(crearla si no la tienes).
¿Qué haremos?
- Iniciar sesión en AWS.
- Crea una configuración de lanzamiento
- Crea un Grupo de Autoescalado
- Termina la instancia para dejar que el ASG gestione el recuento de instancias.
- Aumenta la carga de los servidores para que ASG aumente el número de instancias.
- Elimina el Grupo de Autoescalado.
Iniciar sesión en AWS
- Haz clic aquí para ir a la página de inicio de sesión de AWS.
Cuando pulsemos el enlace anterior, veremos una página web como la siguiente en la que se nos pide que iniciemos sesión con nuestros datos de acceso.
Una vez que iniciemos sesión en AWS con éxito, veremos la consola principal con todos los servicios listados como sigue.
Crear una configuración de lanzamiento
Para crear una Configuración de Lanzamiento, haz clic en «Servicios» en la barra de navegación de la parte superior de la pantalla y haz clic en «EC2» para ir a la consola de EC2.
En el panel de navegación de la izquierda de la pantalla, en «Autoescalado», elige «Configuraciones de lanzamiento».
En la siguiente página, elige «Crear configuración de lanzamiento».
En la página «Elegir AMI», selecciona una AMI. Incluso puedes seleccionar la AMI de Mis AMIs si tienes tu propia AMI. En este caso, estoy eligiendo una AMI de Ubuntu Server 18.04 LTS que es aplicable a la capa gratuita.
En la página Elegir tipo de instancia, selecciona una configuración de hardware para tu instancia. Haz clic en «Siguiente: Configurar».
Aquí estoy seleccionando un tipo de instancia aplicable a la capa gratuita. Puedes elegir el tipo de instancia que desees.
En esta página, da un nombre a la Configuración de Lanzamiento que se va a crear y mantén el resto como está. Haz clic en «Siguiente: Añadir almacenamiento».
Especifica el espacio en disco que deseas y haz clic en «Siguiente: Configurar grupo de seguridad».
En la página de Revisión, selecciona «Crear un nuevo grupo de seguridad», y luego haz clic en Revisar. Esto ayudará a permitir el acceso ssh al servidor desde cualquier lugar, ya que el origen es 0.0.0.0/0.
En la página de Revisión, selecciona «Crear configuración de lanzamiento».
Para seleccionar un par de claves existente o crear un nuevo par de claves, selecciona una de las opciones de la lista de tu elección y, a continuación, selecciona la casilla de verificación de reconocimiento, y luego elige Crear configuración de lanzamiento.
Crear un grupo de autoescalado
Una vez que hayas terminado de crear una configuración de lanzamiento, verás la siguiente pantalla. Para crear un ASG, haz clic en «Crear un Grupo de Autoescalado utilizando esta configuración de lanzamiento».
Dale un nombre al ASG que vas a crear y selecciona las subredes existentes de tu VPC para Alta Disponibilidad y haz clic en «Siguiente: configurar políticas de escalado».
En esta página, selecciona «utilizar políticas de escalado para ajustar la capacidad de este grupo» y especifica el número de instancias a escalar entre el número deseado y el número máximo de instancias en el ASG. En el tipo de métrica mantén «Utilización media de la CPU» y especifica el «Valor objetivo» de tu elección. Esto aumentará el recuento de instancias en el Grupo si la carga de la CPU supera el valor objetivo especificado en % durante el periodo especificado. Haz clic en «Siguiente: configurar la notificación».
Este es un paso opcional que ayuda a recibir las notificaciones. No lo configuro porque es opcional. Haz clic en «Siguiente: Configurar etiquetas».
Este es también un paso opcional. Para añadir etiquetas, elige Editar etiquetas, proporciona una clave de etiqueta y un valor para cada etiqueta, y luego elige Revisar.
En la página de Revisión, haz clic en el botón «Crear grupo de autoescalado».
Si te aparece el mensaje «Fallo al crear el grupo de Autoescalado», no te asustes y haz clic en Reintentar.
Ahora, ve a la página de Autoescalado y podrás ver el estado del grupo de Autoescalado, haz clic en el Historial de Actividad para ver el estado.
También puedes ver el estado de la instancia y el número de instancias desde la Página de la Instancia.
Termina la instancia para dejar que el ASG gestione el recuento de instancias.
Para ver si el ASG funciona como se espera, termina una de las instancias. Selecciona la instancia y haz clic en Acciones -> Estado de la Instancia -> Terminar y cuando se te pida haz clic en «Sí, Terminar».
Habíamos especificado 2 como nuestro recuento deseado/mínimo en las políticas de escalado, lo que significa que nuestro ASG debe tener siempre 2 instancias en estado saludable. Una vez que la terminación se caiga, el ASG esperará los 300 segundos que habíamos especificado en la Política de Escalado antes de realizar cualquier actividad de escalado.
Después de esperar 300 segundos, el ASG se invoca e intenta lanzar una nueva instancia para mantener el recuento deseado. Puedes comprobar el estado en el Historial de actividades de ASG.
Aumenta la carga de las instancias para que ASG aumente el recuento de instancias.
Ahora veremos cómo ASG el recuento de instancias si la carga en los servidores supera el valor objetivo que especificamos en la política de escalado que creamos.
Para aumentar la carga en el servidor inicia sesión en las dos instancias EC2.
Para saber cómo crear una instancia EC2 y conocer los pasos para conectarse a ella, haz clic aquí.
Una vez que te conectes, instala el paquete necesario para aumentar la carga utilizando los siguientes comandos.
sudo apt-get update
sudo apt-get install stress
Aumenta la carga de la CPU con el siguiente comando.
stress --cpu 50 --timeout 400
Este comando aumentará la carga de la CPU al 50% durante 400 segundos.
Una vez que la carga de la CPU supere el valor objetivo, el ASG esperará los 300 segundos que habíamos especificado en Políticas de escalado antes de realizar cualquier actividad de escalado.
Después de esperar 300 segundos, el ASG se invoca e intenta lanzar una nueva instancia para cumplir el requisito.
Puedes comprobar el estado en el Historial de actividades del ASG.
También puedes ver el recuento de instancias en la página de instancias.
Eliminar el Grupo de Autoescalado
Eliminar todas las instancias no es suficiente para limpiar los recursos. El ASG volverá a crear la instancia para que coincida con el estado deseado. Para limpiar el recurso, tenemos que eliminar el ASG.
Para eliminar el ASG, ve al ASG que hemos creado y haz clic en Acciones -> Eliminar y, cuando se te pida, haz clic en «Sí, eliminar».
Conclusión:
En este artículo hemos creado una Configuración de Lanzamiento y hemos creado un ASG con ella. Hemos visto cómo el ASG actualiza el estado deseado y aumenta el número de instancias para cumplir la política de escalado. También hemos visto cómo se puede eliminar un ASG.