3 min read

AWS Step Scaling Policies: Una Visión General

AWS Step Scaling Policies: Una Visión General
Photo by Vitali Adutskevich / Unsplash

Auto Scaling es un servicio que te ayuda a asegurarte de tener el número correcto de instancias de EC2 disponibles para manejar la carga de tus apps

Auto Escalado es un servicio de AWS que te ayuda a asegurarte de tener el número correcto de instancias de Amazon EC2 disponibles para manejar la carga de tus aplicaciones. Para lograr esto, puedes configurar políticas de escalado que determinen cuándo y cómo ajustar el número de instancias de EC2 en tu grupo de Auto Escalado.

Un tipo de política de escalado que puedes usar es el escalado por pasos. Las políticas de escalado por pasos ajustan el número de instancias de EC2 en tu grupo de Auto Escalado en base al valor de una métrica en relación con umbrales especificados. En este blog, veremos los conceptos básicos de las políticas de escalado por pasos y cómo escribirlas correctamente en CloudFormation.

Políticas de Escalado por Pasos

Las políticas de escalado por pasos te permiten definir una serie de pasos que el grupo de Auto Escalado debería realizar cuando el valor de la métrica cruza los umbrales especificados. Puedes pensar en estos pasos como "si-entonces". Por ejemplo, si el valor de la métrica está por debajo de un cierto umbral, podrías querer agregar una instancia de EC2. Si el valor de la métrica está por encima de otro umbral, podrías querer eliminar una instancia de EC2.

Este es un ejemplo de cómo funcionan las políticas de escalado por pasos:

  1. Especificas la métrica a usar para el escalado. Esto podría ser algo como la utilización promedio de la CPU de tus instancias de EC2 o el número de solicitudes por segundo.

  2. Especificas los umbrales para la métrica, que determinan cuándo deben tomar efecto las políticas de escalado.

  3. Especificas el número de instancias de EC2 que debes agregar o eliminar en función del valor de la métrica en relación con los umbrales.

Las políticas de escalado por pasos son flexibles y se pueden ajustar a tus necesidades específicas. Por ejemplo, puedes especificar diferentes números de instancias de EC2 que debes agregar o eliminar en función del tamaño del valor de la métrica en relación con los umbrales.

Cómo escribir políticas de escalado por pasos en CloudFormation

Ahora que comprendes los conceptos básicos de las políticas de escalado por pasos, veamos cómo escribirlas correctamente en CloudFormation.

{
  "Type": "AWS::AutoScaling::ScalingPolicy",
  "Properties": {
    "AdjustmentType": "ChangeInCapacity",
    "AutoScalingGroupName": {
      "Ref": "AutoScalingGroup"
    },
    "PolicyType": "StepScaling",
    "StepAdjustments": [
      {
        "MetricIntervalLowerBound": 0,
        "ScalingAdjustment": 2
      },
      {
        "MetricIntervalLowerBound": 10,
        "MetricIntervalUpperBound": 20,
        "ScalingAdjustment": 4
      },
      {
        "MetricIntervalLowerBound": 20,
        "ScalingAdjustment": 6
      }
    ],
    "MetricAggregationType": "Average"
  }
}

En este ejemplo, la política de escalado en pasos aumenta el número de instancias EC2 en el grupo de Auto Escalado en 2 si la utilización promedio de la CPU está entre 0 y 10, en 4 si la utilización promedio de la CPU está entre 10 y 20, y en 6 si la utilización promedio de la CPU es mayor que 20.

Con las políticas de reducción, puede disminuir el número de instancias EC2 en su grupo según el mismo conjunto de reglas que define para las políticas de escalado en pasos. Para crear una política de reducción, simplemente establece la propiedad ScalingAdjustment en un valor negativo, lo que indica que desea disminuir el número de instancias EC2 en su grupo.

En resumen, las políticas de escalado en pasos son una herramienta útil para ajustar automáticamente el número de instancias EC2 en su grupo de Auto Escalado en función de las condiciones que define. Al crear políticas de escalado en pasos y políticas de reducción, puede asegurarse de que su grupo de Auto Escalado siempre esté ejecutando el número óptimo de instancias EC2, lo que puede ayudar a reducir los costos y mejorar el rendimiento de la aplicación.