AWS ASG – Autoescalado

Una de las opciones más interesantes que nos ofrecen los servicios de Cloud como el de AWS, son los modelos de autoscaling. Esto es, que el número de instancias EC2 que prestan un servicio puede crecer o disminuir en base a la carga y necesidades de cada momento, de forma planificada o de forma totalmente automática para adaptarse a las circunstancias de cada momento.

Estas son las opciones básicas para configurar un AutoScaling Group (ASG):

  • La configuración de la instancia:
    • AMI + Tipo de instancia
    • EC2 User Data
    • Volumen EBS
    • Security Group
    • SSH Key Pair
  • Mínimo, máximo y capacidad inicial (número de instancias)
  • Información sobre las subredes donde se despliega.
  • Información sobre el ELB asociado al grupo de autoescalado.
  • Las políticas de escalado, cuando escalar (Scale out y Scale in).

Las instancias que gestiona un ASG se definen en Launch Configurations o en Launch Templates (más moderno). Los ASG son gratis, no se paga por su gestión y/o configuración, solo por los recursos que se implementan. Si el ELB detecta una instancia como unhealthy, el ASG puede reemplazarla por otra nueva, deshaciéndose de la anterior.

Las políticas de autoescalado son:

  • Target Tracking Scaling: el más simple, permite definir un objetivo. Por ejemplo, mantener la CPU del ASG por debajo del 40%.
  • Simple / Step Scaling:
    • Cuando se cumple una condición (ej: CloudWatch alarm CPU >50%), añadir una instancia
    • Caundo se cumple una condición (ej: CloudWatch alarm CPU <30%), eliminar una instancia
  • Scheduled Actions: definir previamente cuándo ampliar o reducir instancias en base a días/horas programadas.

Scaling Cooldowns

El cooldown period es el tiempo que el ASG no añade ni elimina instancias porque se está realizando una tarea de autoescalado, bien reducir o ampliar el grupo.

Por defecto son 300 segundos, pero se puede reducir en el scale-in o scale-out para agilizar estas tareas, o para reducir costes (en el caso del scale-in).

Política de creación y eliminación de instancias

Al terminar una instancia, se decide cuál eliminar de la siguiente forma:

  • Encontrar la AZ donde hay mayor número de instancias
  • Dentro de la AZ, elegir la que tiene la configuración más antigua (la que primero se creó)

ASG trata de balancear el número de instancias entre cada AZ de manera predeterminada.

Lifecycle Hooks

Tareas que se pueden realizar al añadir una nueva instancia o al terminarla, para crear instalaciones o configuraciones necesarias para el servicio, o para realizar las tareas que se necesiten antes de terminar cada instancia.

Launch Configuration vs Launch Templates

La configuración de ambos es similar, pero tienen algunas diferencias importantes:

  • Launch Configuration (antiguo):
    • Hay que recrearlo por completo cada vez que se necesite cambiarlo
  • Launch Template (nuevo):
    • Puede tener múltiples versiones
    • Permite añadir parámetros que se pasan como variables
    • Puede aprovisionar instancias On Demand y Spot (Spot Fleets).
    • Permite utilizar el tipo T2 unlimited burst feature

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.