¿Estás cansado de monitorear la carga de tus instancias de AWS y el tráfico que reciben? ¿Por qué no automatizar todo desplegando Grupos de Escalamiento Automático con Terraform? El escalado automático permite que algunos servidores duerman durante cargas bajas y agrega más servidores durante cargas altas, ahorrando costos de electricidad para las empresas.
En este tutorial, aprenderás cómo construir y ejecutar una configuración de Terraform para crear Grupos de Escalamiento Automático y desplegarlos con Terraform.
¡Sigue leyendo y logra un tiempo de inactividad cero en tus instancias!
Requisitos previos
Esta publicación será un tutorial paso a paso. Si deseas seguirlo, asegúrate de tener lo siguiente:
- Una cuenta de Amazon Web Service (AWS).
- A code editor – Even though you can use any text editor to work with Terraform configuration files, consider using Visual Studio (VS) Code as it understands the HCL Terraform language well.
- Terraform: Este tutorial utiliza Terraform v1.1.5 en Ubuntu 20.04 LTS, pero debería funcionar en cualquier sistema operativo con Terraform.
Construyendo la Configuración de Terraform para un Grupo de Escalamiento Automático de AWS
Antes de ejecutar comandos de Terraform para construir e implementar la infraestructura, debes crear los archivos de configuración de Terraform. Construirás una configuración de Terraform para crear un grupo de escalado automático de AWS en tu cuenta de AWS.
1. Inicia sesión en tu máquina utilizando tu cliente SSH favorito.
2. A continuación, crea una carpeta llamada ~/terraform-autoscaling-demo, luego cambia (cd
) el directorio de trabajo a esa carpeta. Esta carpeta contendrá todos los archivos de configuración en los que trabajarás en este tutorial.
3. Abre tu editor de código favorito, copia/pega la siguiente configuración y guarda el archivo como main.tf en el directorio ~/terraform-autoscaling-demo. Este archivo main.tf es la configuración de Terraform para el grupo de escalado automático.
El código a continuación crea una configuración de inicio de escalado automático (web_config
) y provisiona un grupo de escalado automático (autoscalegroup
). El grupo de escalado automático también viene con sus componentes (aws_autoscaling_schedule
y aws_autoscaling_policy
).
4. Cree otro archivo en ~/terraform-autoscaling-demo llamado provider.tf, y complete el contenido a continuación. El archivo provider.tf define proveedores como AWS, Oracle, Azure, y otros. Este archivo de configuración le permite conectar Terraform con los servicios en la nube correctos.
El tutorial estará creando recursos en la región us-east-1. Pero puedes encontrar la lista de regiones que AWS soporta.
5. Por último, ejecute el comando tree
a continuación para verificar que todos los archivos requeridos estén presentes en la carpeta de su proyecto (~/terraform-autoscaling-demo
).

Creando el grupo de escalado automático de AWS con una configuración de Terraform
Ahora que tiene el archivo de configuración de Terraform y los archivos de variables configurados correctamente, es hora de iniciar Terraform y crear el grupo de escalado automático de AWS.
Para aprovisionar el grupo de escalado automático de AWS, al igual que todas las demás configuraciones de Terraform, Terraform utiliza tres comandos en secuencia (terraform init
, terraform plan
y terraform apply
).
1. Ejecute el comando terraform init
en el directorio ~/terraform-autoscaling-demo. El comando inicializa los complementos y proveedores necesarios para trabajar con los recursos.
Si todo va bien, verá el mensaje que indica que Terraform se ha inicializado correctamente en la salida, como se muestra a continuación.

2. A continuación, ejecute el comando terraform plan
para asegurarse de que la sintaxis de los archivos de configuración sea correcta y le proporcione un plano de los recursos que se aprovisionarán en su infraestructura.
Si tiene éxito, debería ver un mensaje que muestre el Plan como el siguiente.

3. Finalmente, ejecute el comando terraform apply
para quitar las ruedas de entrenamiento e invocar a Terraform para crear el grupo de Auto Scaling de AWS.
El comando le indica a Terraform que lea cada configuración (*.tf) en el directorio actual para compilar un estado enviado a AWS. Luego, Terraform construye el grupo de Auto Scaling de AWS y otros componentes.
No hay un cargo adicional por AWS Auto Scaling. Solo pagas por los recursos de AWS necesarios para ejecutar tus aplicaciones.

Verificación del Grupo de Auto Scaling de AWS en la Nube de AWS
Para este punto, debería haber creado el grupo de Auto Scaling de AWS y los componentes relacionados con Terraform. Pero, ¿cómo sabe que existen en su nube de AWS? Verifique el grupo de Auto Scaling comprobando manualmente en la Consola de Administración de AWS.
1. Abra su navegador web favorito e inicie sesión en la Consola de Administración de AWS.
2. En la página de inicio de la consola, haz clic en el cuadro de búsqueda, busca y haz clic en ‘EC2’ para acceder al panel de EC2.
Haz clic en el elemento del menú Grupo de escalado automático de AWS en el panel de EC2 para gestionar tus grupos de escalado automático.
La cantidad deseada de instancias de AWS EC2 se lanzará en la nube de AWS en el panel de EC2 con el siguiente escalado automático.

3. Por último, haz clic en Configuración de lanzamiento de escalado automático de AWS en el panel de EC2. Verás tu configuración de lanzamiento de autoscaling (web_config) como se muestra a continuación.

Escalando automáticamente la instancia EC2 con pruebas de carga
Ahora que has verificado que el grupo/póliza de escalado automático y los componentes relacionados están configurados correctamente, es hora de probar si las características de escalado automático funcionan. ¿Cómo? Agregando carga a la instancia lanzada recientemente con el grupo de AutoScaling.
1. Abre la instancia EC2 de AWS lanzada con el grupo de AutoScaling usando un cliente SSH.
2. A continuación, abre la terminal y ejecuta el siguiente comando para instalar
la herramienta de estrés de carga (stress-ng
). La herramienta de estrés te permite definir y generar estrés en la máquina Ubuntu.
También puedes encontrar otras herramientas de estrés de carga disponibles en el mercado.

3. Ejecuta el comando stress-ng
a continuación para generar la carga de estrés en la instancia.
A continuación, el comando contiene las siguientes banderas:
--cpu
– Indica la cantidad de núcleos en los que se generará carga.
-v
– Habilita el modo detallado.
--timeout
– Especifica el tiempo durante el cual se generará carga.

4. Ahora ejecuta el comando top
tan pronto como generes la carga para mostrar los procesos de Linux.
A continuación, puedes ver que la CPU aumenta después de generar la carga en la instancia.

5. Ve al servicio CloudWatch de AWS en la nube de AWS. Notarás que se genera una alarma cuando la CPU supera el 10%. La alarma notifica al grupo de escalado automático que debe aumentar el número de instancias de una a dos, según lo especificado en el grupo de escalado automático.

6. Finalmente, ve a tus Instancias en el panel de EC2 para verificar las instancias de AWS EC2.
Verás que se ha lanzado una instancia más, lo que confirma la configuración exitosa del grupo de escalado automático de AWS y sus componentes.

También puedes verificar las actividades de escalado automático en las actividades del grupo de escalado automático de AWS, como se muestra a continuación.

Conclusión
En este tutorial, has aprendido cómo usar Terraform para implementar un Grupo de Escalado Automático de AWS y sus componentes. Construir una aplicación de escalado automático con el Grupo de Escalado Automático de AWS te permite escalar según sea necesario y es una tarea rápida.
Ahora, con este conocimiento recién adquirido, ¡vuélvete loco e implementa Auto Scaling con otros servicios de AWS sin preocuparte por la carga en los servidores!
Source:
https://adamtheautomator.com/terraform-autoscaling-group/