

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Escalado predictivo para Amazon EC2 Auto Scaling
<a name="ec2-auto-scaling-predictive-scaling"></a>

El escalado predictivo funciona mediante el análisis de los datos históricos de carga para detectar patrones diarios o semanales en los flujos de tráfico. Utiliza esta información para pronosticar las necesidades de capacidad futuras, de modo que Amazon EC2 Auto Scaling pueda aumentar proactivamente la capacidad de su grupo de escalado automático para adaptarla a la carga prevista.

El escalado predictivo es adecuado para situaciones en las que tiene:
+ Tráfico cíclico; por ejemplo, un uso elevado de recursos durante el horario laborable normal y un uso reducido de recursos por la noche o los fines de semana.
+ Patrones on-and-off de carga de trabajo recurrentes, como el procesamiento por lotes, las pruebas o el análisis periódico de datos
+ Aplicaciones que tardan mucho tiempo en inicializarse, lo que provoca un notable impacto de latencia en el rendimiento de las aplicaciones durante eventos de escalado horizontal.

En general, si tiene patrones regulares de aumento de tráfico y aplicaciones que tardan mucho tiempo en inicializarse, debe considerar el uso del escalado predictivo. El escalado predictivo puede ayudarle a escalar más rápidamente al lanzar la capacidad antes de la carga prevista, en comparación con solo usar el escalado dinámico, que tiene una naturaleza reactiva. Además, el escalado predictivo puede ahorrarle dinero en la factura de EC2, ya que le ayuda a evitar la necesidad de aprovisionar la capacidad en exceso.

Por ejemplo, piense en una aplicación que tiene un uso elevado durante el horario laborable y un uso bajo durante la noche. Al comienzo de cada día laborable, el escalado predictivo puede agregar capacidad antes de la primera afluencia de tráfico. Esto ayuda a la aplicación a mantener una alta disponibilidad y rendimiento al pasar de un periodo de menor utilización a uno de mayor utilización. No tiene que esperar a que el escalado dinámico reaccione a los cambios en el tráfico. Tampoco tiene que dedicar tiempo a revisar los patrones de carga de la aplicación e intentar programar la cantidad correcta de capacidad mediante el escalado programado. 

**Topics**
+ [Funcionamiento del escalado predictivo](predictive-scaling-policy-overview.md)
+ [Creación de una política de escalado predictivo](predictive-scaling-create-policy.md)
+ [Evaluación de las políticas de escalado predictivo](predictive-scaling-graphs.md)
+ [Anulación del pronóstico](predictive-scaling-overriding-forecast-capacity.md)
+ [Uso de métricas personalizadas](predictive-scaling-customized-metric-specification.md)

# Funcionamiento del escalado predictivo
<a name="predictive-scaling-policy-overview"></a>

Este tema explica cómo funciona el escalado predictivo y describe qué debe tener en cuenta al crear una política de escalado predictivo.

**Topics**
+ [Funcionamiento](#how-predictive-scaling-works)
+ [Límite de la capacidad máxima](#predictive-scaling-maximum-capacity-limit)
+ [Consideraciones](#predictive-scaling-considerations)
+ [Regiones admitidas](#predictive-scaling-regions)

## Funcionamiento
<a name="how-predictive-scaling-works"></a>

Para usar el escalado predictivo, cree una política de escalado predictivo que especifique la CloudWatch métrica que se debe monitorear y analizar. Para que el escalado predictivo comience a pronosticar valores futuros, esta métrica debe tener datos de, por lo menos, las últimas 24 horas.

Tras crear la política, el escalado predictivo comienza a analizar los datos de las métricas de los últimos 14 días para identificar patrones. Utiliza este análisis para generar una previsión horaria de los requisitos de capacidad para las próximas 48 horas. La previsión se actualiza cada 6 horas con los CloudWatch datos más recientes. A medida que llegan nuevos datos, el escalado predictivo puede mejorar continuamente la precisión de las previsiones futuras.

La primera vez que se habilita el escalado predictivo, se ejecuta en modo de *solo previsión*. En este modo, genera previsiones de capacidad, pero no escala el grupo de escalado automático en función de esas previsiones. Esto permite evaluar la precisión e idoneidad de la previsión. Puede ver los datos del pronóstico mediante la operación de API `GetPredictiveScalingForecast` o la Consola de administración de AWS.

Tras revisar los datos de previsión y decidir empezar a escalar en función de esos datos, cambie la política de escalado al modo de *previsión y escalado*. En este modo:
+ Si la previsión prevé un aumento de la carga, Amazon EC2 Auto Scaling aumentará la capacidad mediante el escalado horizontal.
+ Si la previsión prevé una disminución de la carga, no se reducirá la capacidad mediante la reducción horizontal. Si desea eliminar la capacidad que ya no necesita, debe crear políticas de escalado dinámico.

De forma predeterminada, Amazon EC2 Auto Scaling escala el grupo de escalado automático al principio de cada hora en función de la previsión de esa hora. Si lo desea, puede especificar una hora de inicio más temprana mediante la propiedad `SchedulingBufferTime` en la operación de la API `PutScalingPolicy` o la configuración **Instancias previas al lanzamiento** en la Consola de administración de AWS. Esto hace que Amazon EC2 Auto Scaling lance nuevas instancias anticipándose a la demanda prevista, lo que les da tiempo para arrancar y prepararse para gestionar el tráfico. 

Para permitir el lanzamiento de instancias nuevas antes de la demanda prevista, se recomienda encarecidamente habilitar la *preparación predeterminada de instancias* para su grupo de escalado automático. Esto especifica un período de tiempo posterior a una actividad de escalado horizontal durante el cual Amazon EC2 Auto Scaling no realizará una reducción horizontal, incluso si las políticas de escalado dinámico indican que la capacidad debe reducirse. Esto ayuda a garantizar que las instancias recién lanzadas dispongan del tiempo suficiente para empezar a atender el aumento del tráfico antes de que se las considere para operaciones de reducción horizontal. Para obtener más información, consulte [Establecimiento de la preparación predeterminada de instancias para un grupo de escalado automático](ec2-auto-scaling-default-instance-warmup.md).

## Límite de la capacidad máxima
<a name="predictive-scaling-maximum-capacity-limit"></a>

Los grupos de escalado automático tienen una configuración de capacidad máxima que limita el número máximo de instancias de EC2 que se pueden lanzar para el grupo. De manera predeterminada, cuando se establecen políticas de escalado, estas no pueden aumentar la capacidad por encima de la capacidad máxima.

Como alternativa, puede permitir que la capacidad máxima del grupo aumente automáticamente si la capacidad previste se aproxima o supera la capacidad máxima del grupo de escalado automático. Para habilitar este comportamiento, utilice las propiedades `MaxCapacityBreachBehavior` y `MaxCapacityBuffer` de la operación de API `PutScalingPolicy` o la configuración de **Comportamiento de capacidad máxima** de la Consola de administración de AWS. 

**aviso**  
Tenga cuidado al permitir que la capacidad máxima aumente automáticamente. Esto puede provocar el lanzamiento de más instancias de las previstas si no se supervisa ni gestiona el aumento de la capacidad máxima. La capacidad máxima incrementada se convertirá en la nueva capacidad máxima normal para el grupo de escalado automático hasta que la actualice manualmente. La capacidad máxima no vuelve a disminuir automáticamente hasta el máximo original.

## Consideraciones
<a name="predictive-scaling-considerations"></a>
+ Confirme si el escalado predictivo es adecuado para su carga de trabajo. Una carga de trabajo es idónea para el escalado predictivo si presenta patrones de carga recurrentes específicos del día de la semana o de la hora del día. Para comprobar esto, configure las políticas de escalado predictivo en el modo *solo previsión* y, a continuación, consulte las recomendaciones de la consola. Amazon EC2 Auto Scaling ofrece recomendaciones basadas en observaciones sobre el posible rendimiento de las políticas. Evalúe la previsión y su precisión antes de permitir que el escalado predictivo escale la aplicación de forma activa.
+ Para comenzar el pronóstico, el escalado predictivo necesita al menos 24 horas de datos históricos. Sin embargo, las previsiones son más eficaces si los datos históricos abarcan dos semanas completas. Si para actualizar la aplicación crea un nuevo grupo de escalado automático y elimina el anterior, el nuevo grupo de escalado automático necesita 24 horas de datos de carga históricos antes de que el escalado predictivo pueda volver a generar pronósticos. Puede usar métricas personalizadas para agregar métricas de grupos de escalado automático nuevos y antiguos. De lo contrario, es posible que tenga que esperar unos días para obtener una previsión más precisa. 
+ Elija una métrica de carga que represente con precisión la carga total de la aplicación y que sea el aspecto de la aplicación que más le interese escalar.
+ El uso del escalado dinámico en conjunto con el escalado predictivo le ayuda a seguir de cerca la curva de demanda de su aplicación, reduciendo horizontalmente durante periodos de bajo tráfico y escalando horizontalmente cuando el tráfico es mayor de lo esperado. Cuando hay activas varias políticas de escalado, cada política determina la capacidad deseada de forma independiente, y la capacidad deseada se establece en el máximo de ellas. Por ejemplo, si se requieren 10 instancias para mantenerse en la utilización de destino en una política de escalado de seguimiento de destino y se requieren 8 instancias para mantenerse en la utilización de destino en una política de escalado predictivo, la capacidad deseada del grupo se establece en 10. Si no está familiarizado con el escalado dinámico, le recomendamos que utilice políticas de escalado de seguimiento de objetivo. Para obtener más información, consulte [Escalado dinámico para Amazon EC2 Auto Scaling](as-scale-based-on-demand.md).
+ Una suposición fundamental del escalado predictivo es que el grupo de escalado automático es homogéneo y todas las instancias tienen la misma capacidad. Si esto no es así en el caso de su grupo, es posible que la capacidad prevista sea incorrecta. Por lo tanto, tenga cuidado cuando cree políticas de escalado predictivo para [grupos de instancias mixtas](ec2-auto-scaling-mixed-instances-groups.md), porque se pueden aprovisionar instancias de distintos tipos con una capacidad desigual. A continuación se presentan algunos ejemplos en los que la capacidad prevista será incorrecta:
  + Su política de escalado predictivo se basa en el uso de la CPU, pero el número de v CPUs en cada instancia de Auto Scaling varía según el tipo de instancia.
  + La política de escalado predictivo se basa en la entrada o salida de la red, pero el rendimiento del ancho de banda de la red para cada instancia de Auto Scaling varía según los tipos de instancias. Por ejemplo, los tipos de instancias M5 y M5n son similares, pero el tipo de instancia M5n ofrece un rendimiento de red significativamente superior.

## Regiones admitidas
<a name="predictive-scaling-regions"></a>
+ Este de EE. UU. (Norte de Virginia)
+ Este de EE. UU. (Ohio)
+ Oeste de EE. UU. (Norte de California)
+ Oeste de EE. UU. (Oregón)
+ África (Ciudad del Cabo)
+ Asia-Pacífico (Hong Kong)
+ Asia-Pacífico (Hyderabad)
+ Asia-Pacífico (Yakarta)
+ Asia-Pacífico (Melbourne)
+ Asia-Pacífico (Mumbai)
+ Asia-Pacífico (Osaka)
+ Asia-Pacífico (Seúl)
+ Asia-Pacífico (Singapur)
+ Asia-Pacífico (Sídney)
+ Asia-Pacífico (Tokio)
+ Canadá (centro)
+ Oeste de Canadá (Calgary)
+ China (Pekín)
+ China (Ningxia)
+ Europa (Fráncfort)
+ Europa (Irlanda)
+ Europa (Londres)
+ Europa (Milán)
+ Europa (París)
+ Europa (España)
+ Europa (Estocolmo)
+ Europa (Zúrich)
+ Israel (Tel Aviv)
+ Middle East (Bahrain)
+ Medio Oriente (EAU)
+ América del Sur (São Paulo)
+ AWS GovCloud (Este de EE. UU.)
+ AWS GovCloud (Estados Unidos-Oeste)

# Creación de una política de escalado predictivo para un grupo de escalado automático
<a name="predictive-scaling-create-policy"></a>

Los siguientes procedimientos le ayudan a crear una política de escalado predictivo mediante el comando Consola de administración de AWS o AWS CLI. 

Si el grupo de escalado automático es nuevo, debe proporcionar al menos 24 horas de datos antes de que Amazon EC2 Auto Scaling pueda generar una previsión para el grupo de escalado automático. 

**Topics**
+ [Creación de una política de escalado predictivo (consola)](#predictive-scaling-policy-console)
+ [Creación de una política de escalado predictivo (AWS CLI)](#predictive-scaling-policy-aws-cli)

## Creación de una política de escalado predictivo (consola)
<a name="predictive-scaling-policy-console"></a>

Si es la primera vez que crea una política de escalado predictivo, se recomienda utilizar la consola para crear varias políticas de escalado predictivo en el modo de *solo previsión*. Esto le permite poner a prueba los posibles efectos de diferentes métricas y valores de destino. Puede crear varias políticas de escalado predictivo para cada grupo de escalado automático, pero solo una de las políticas se puede utilizar para el escalado activo.

### Creación de una política de escalado predictivo en la consola (métricas predefinidas)
<a name="create-a-predictive-scaling-policy-in-the-console"></a>

Utilice el procedimiento siguiente para crear una política de escalado predictivo mediante métricas predefinidas (CPU, E/S de red o recuento de solicitudes del equilibrador de carga de aplicación). La forma más simple de crear una política de escalado predictivo es mediante métricas predefinidas. Si prefiere utilizar métricas personalizadas en su lugar, consulte la [Creación de una política de escalado predictivo en la consola (métricas personalizadas)](#create-a-predictive-scaling-policy-in-the-console-custom-metrics).

**Para crear una política de escalado predictivo**

1. Abra la consola Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)y seleccione **Auto Scaling Groups** en el panel de navegación.

1. Seleccione la casilla situada junto al grupo de escalado automático.

   Se abre un panel dividido en la parte inferior de la página. 

1. En la pestaña **Automatic scaling (Escalado automático)**, en **Scaling policies (Políticas de escalado)**, elija **Create predictive scaling policy (Crear política de escalado automático)**.

1. Introduzca un nombre para la política.

1. Active **Scale based on forecast (Escalado basado en pronóstico)** para conceder a Amazon EC2 Auto Scaling permiso para empezar a escalar de inmediato.

   Para mantener la política en modo *Forecast only (Solo pronóstico)*, mantenga **Scale based on forecast (Escalado pasado en pronóstico)** desactivado. 

1. En **Metrics (Métricas)**, elija las métricas de la lista de opciones. Las opciones incluyen **CPU**, **Network In (Entrada de red)**, **Network Out (Salida de red)**, **Application Load Balancer request count (Recuento de solicitudes de Application Load Balancer)** y **Custom metric pair (Par de métricas personalizadas)**.

   Si eligió **Application Load Balancer request count per target (Recuento de solicitudes de Application Load Balancer por destino)**, luego elija un grupo de destino en **Target group (Grupo de destino)**. **Application Load Balancer request count per target (Recuento de solicitudes de Application Load Balancer por destino)** solo se admite si ha adjuntado un grupo de destino del Application Load Balancer al grupo de escalado automático. 

   Si eligió **Custom metric pair (Par de métricas personalizadas)**, elija métricas individuales en las listas desplegables de **Load metric (Métrica de carga)** y **Scaling metric (Métrica de escalado)**. 

1. En **Target utilization (Utilización de destino)**, ingrese el valor de destino que debe mantener Amazon EC2 Auto Scaling. Amazon EC2 Auto Scaling escala horizontalmente la capacidad hasta que la utilización media se encuentre en la utilización de destino, o hasta que alcance el número máximo de instancias que haya especificado.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/autoscaling/ec2/userguide/predictive-scaling-create-policy.html)

1. (Opcional) En **Pre-launch instances (Lanzamiento previo de instancias)**, elija con qué antelación desea que se lancen las instancias antes de que el pronóstico exija que aumente la carga. 

1. (Opcional) En **Max capacity behavior** (Comportamiento de capacidad máxima), elija si desea permitir que Amazon EC2 Auto Scaling escale horizontalmente más allá de la capacidad máxima del grupo cuando la capacidad prevista supere el máximo definido. Activar esta configuración permite que el escalado horizontal se produzca durante los periodos en los que se prevé que el tráfico sea el máximo.

1. (Opcional) En **Buffer maximum capacity above the forecasted capacity (Capacidad máxima del búfer por encima de la capacidad prevista**, elija la capacidad adicional que se utilizará cuando la capacidad prevista se acerque o supere la capacidad máxima. El valor se especifica como porcentaje en relación con la capacidad prevista. Por ejemplo, si el búfer es 10, este valor indica un búfer del 10 por ciento. Por lo tanto, si la capacidad de previsión es 50 y la capacidad máxima es 40, la capacidad máxima nominal es 55. 

   Si se establece en 0, Amazon EC2 Auto Scaling puede escalar la capacidad por encima de la capacidad máxima para que sea igual a la capacidad máxima, pero no la supere.

1. Elija **Create predictive scaling policy (Crear política de escalado predictivo)**.

### Creación de una política de escalado predictivo en la consola (métricas personalizadas)
<a name="create-a-predictive-scaling-policy-in-the-console-custom-metrics"></a>

Utilice el procedimiento siguiente para crear una política de escalado predictivo mediante métricas personalizadas. Las métricas personalizadas pueden incluir otras métricas proporcionadas por usted CloudWatch o en las que CloudWatch publique. Para utilizar el recuento de solicitudes de CPU, E/S de red o equilibrador de carga de aplicación por destino, consulte [Creación de una política de escalado predictivo en la consola (métricas predefinidas)](#create-a-predictive-scaling-policy-in-the-console).

Para crear una política de escalado predictivo mediante métricas personalizadas, debe hacer lo siguiente:
+ Debe proporcionar las consultas sin procesar que permiten a Amazon EC2 Auto Scaling interactuar con las métricas CloudWatch internas. Para obtener más información, consulte [Políticas avanzadas de escalado predictivo mediante métricas personalizadas](predictive-scaling-customized-metric-specification.md). Para asegurarse de que Amazon EC2 Auto Scaling puede extraer los datos CloudWatch de las métricas, confirme que cada consulta devuelva puntos de datos. Confirme esto mediante la CloudWatch consola o la operación de la CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)API. 
**nota**  
Proporcionamos cargas JSON de ejemplo en el editor JSON de la consola de Amazon EC2 Auto Scaling. Estos ejemplos te proporcionan una referencia de los pares clave-valor necesarios para añadir otras CloudWatch métricas proporcionadas AWS o en las que publicaste anteriormente. CloudWatch Puede utilizarlos como punto de partida y, luego, personalizarlos en función de sus necesidades.
+ Si utiliza algún cálculo métrico, debe construir manualmente el JSON para que se ajuste a su escenario único. Para obtener más información, consulte [Uso de expresiones de cálculos de métricas](using-math-expression-examples.md). Antes de utilizar las matemáticas métricas en su política, confirme que las consultas métricas basadas en expresiones matemáticas métricas son válidas y devuelven una única serie temporal. Confirme esto mediante la CloudWatch consola o la operación de la CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)API.

Si comete un error en una consulta al proporcionar datos incorrectos, como un nombre de grupo de escalado automático incorrecto, la previsión no tendrá ningún dato. Para solucionar problemas con las métricas personalizadas, consulte [Consideraciones sobre la utilización de métricas personalizadas en una política de escalado predictivo](custom-metrics-troubleshooting.md).

**Para crear una política de escalado predictivo**

1. Abra la consola Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)y seleccione **Auto Scaling Groups** en el panel de navegación.

1. Seleccione la casilla situada junto al grupo de escalado automático.

   Se abre un panel dividido en la parte inferior de la página. 

1. En la pestaña **Automatic scaling (Escalado automático)**, en **Scaling policies (Políticas de escalado)**, elija **Create predictive scaling policy (Crear política de escalado automático)**.

1. Introduzca un nombre para la política.

1. Active **Scale based on forecast (Escalado basado en pronóstico)** para conceder a Amazon EC2 Auto Scaling permiso para empezar a escalar de inmediato.

   Para mantener la política en modo *Forecast only (Solo pronóstico)*, mantenga **Scale based on forecast (Escalado pasado en pronóstico)** desactivado. 

1. En **Metrics** (Métricas), elija **Custom metric pair (Par de métricas personalizadas)**.

   1. En **Métrica de carga**, elija ** CloudWatch Métrica personalizada** para usar una métrica personalizada. Construcción de la carga JSON que contiene la definición de métricas de carga de la política y péguelo en el cuadro del editor JSON de modo que sustituya lo que ya se encuentra en el cuadro.

   1. En la **métrica de escalado**, elija ** CloudWatch Métrica personalizada** para usar una métrica personalizada. Construcción de la carga JSON que contiene la definición de métricas de escalado de la política y péguelo en el cuadro del editor JSON de modo que sustituya lo que ya se encuentra en el cuadro. 

   1. (Opcional) Para agregar una métrica de capacidad personalizada, active la casilla **Add custom capacity metric** (Agregar una métrica de capacidad personalizada). Construcción de la carga JSON que contiene la definición de métricas de capacidad de la política y péguelo en el cuadro del editor JSON de modo que sustituya lo que ya se encuentra en el cuadro.

      Solo necesita habilitar esta opción para crear una nueva serie temporal de capacidad si los datos métricos de capacidad abarcan varios grupos de escalado automático. En este caso, debe utilizar las matemáticas métricas para agregar los datos en una sola serie temporal.

1. En **Target utilization (Utilización de destino)**, ingrese el valor de destino que debe mantener Amazon EC2 Auto Scaling. Amazon EC2 Auto Scaling escala horizontalmente la capacidad hasta que la utilización media se encuentre en la utilización de destino, o hasta que alcance el número máximo de instancias que haya especificado. 

1. (Opcional) En **Pre-launch instances (Lanzamiento previo de instancias)**, elija con qué antelación desea que se lancen las instancias antes de que el pronóstico exija que aumente la carga. 

1. (Opcional) En **Max capacity behavior** (Comportamiento de capacidad máxima), elija si desea permitir que Amazon EC2 Auto Scaling escale horizontalmente más allá de la capacidad máxima del grupo cuando la capacidad prevista supere el máximo definido. Activar esta configuración permite que el escalado horizontal se produzca durante los periodos en los que se prevé que el tráfico sea el máximo.

1. (Opcional) En **Buffer maximum capacity above the forecasted capacity (Capacidad máxima del búfer por encima de la capacidad prevista**, elija la capacidad adicional que se utilizará cuando la capacidad prevista se acerque o supere la capacidad máxima. El valor se especifica como porcentaje en relación con la capacidad prevista. Por ejemplo, si el búfer es 10, este valor indica un búfer del 10 por ciento. Por lo tanto, si la capacidad de previsión es 50 y la capacidad máxima es 40, la capacidad máxima nominal es 55. 

   Si se establece en 0, Amazon EC2 Auto Scaling puede escalar la capacidad por encima de la capacidad máxima para que sea igual a la capacidad máxima, pero no la supere.

1. Elija **Create predictive scaling policy (Crear política de escalado predictivo)**.

## Creación de una política de escalado predictivo (AWS CLI)
<a name="predictive-scaling-policy-aws-cli"></a>

Utilice AWS CLI lo siguiente para configurar las políticas de escalado predictivo para su grupo de Auto Scaling. Reemplace cada *user input placeholder* por su propia información.

Para obtener más información sobre las CloudWatch métricas que puede especificar, consulte la referencia [PredictiveScalingMetricSpecification](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PredictiveScalingMetricSpecification.html)de la *API Amazon EC2 Auto Scaling*.

### Ejemplo 1: Política de escalado predictivo que crea pronósticos, pero no escala
<a name="predictive-scaling-configuration-ex1"></a>

En la siguiente política de ejemplo se muestra una configuración de política completa que utiliza métricas de utilización de CPU para el escalado predictivo con una utilización de destino de`40`. `ForecastOnly` se utiliza de forma predeterminada, a menos que especifique explícitamente qué modo utilizar. Guarde esta configuración en un archivo llamado `config.json`.

```
{
    "MetricSpecifications": [
        {
            "TargetValue": 40,
            "PredefinedMetricPairSpecification": {
                "PredefinedMetricType": "ASGCPUUtilization"
            }
        }
    ]
}
```

Para crear la política desde la línea de comandos, ejecute el [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html)comando con el archivo de configuración especificado, como se muestra en el siguiente ejemplo.

```
aws autoscaling put-scaling-policy --policy-name cpu40-predictive-scaling-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
```

Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/cpu40-predictive-scaling-policy",
  "Alarms": []
}
```

### Ejemplo 2: Política de escalado predictivo que pronostica y escala
<a name="predictive-scaling-configuration-ex2"></a>

Para una política que permita a Amazon EC2 Auto Scaling pronosticar y escalar, agregue la propiedad `Mode` con un valor de `ForecastAndScale`. En el ejemplo siguiente se muestra la configuración de una política que utiliza métricas de recuento de solicitudes del Application Load Balancer. La utilización de destino es `1000`, y el escalado predictivo se establece en el modo `ForecastAndScale`.

```
{
    "MetricSpecifications": [
        {
            "TargetValue": 1000,
            "PredefinedMetricPairSpecification": {
                "PredefinedMetricType": "ALBRequestCount",
                "ResourceLabel": "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff"
            }
        }
    ],
    "Mode": "ForecastAndScale"
}
```

Para crear esta política, ejecute el [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html)comando con el archivo de configuración especificado, como se muestra en el siguiente ejemplo.

```
aws autoscaling put-scaling-policy --policy-name alb1000-predictive-scaling-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
```

Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:19556d63-7914-4997-8c81-d27ca5241386:autoScalingGroupName/my-asg:policyName/alb1000-predictive-scaling-policy",
  "Alarms": []
}
```

### Ejemplo 3: Política de escalado predictivo que puede escalar por encima de la capacidad máxima
<a name="predictive-scaling-configuration-ex3"></a>

En el ejemplo siguiente se muestra cómo crear una política que puede escalar más allá del límite de tamaño máximo del grupo cuando se necesita para gestionar una carga superior a la normal. De forma predeterminada, Amazon EC2 Auto Scaling no escala la capacidad de EC2 por encima de la capacidad máxima definida. Sin embargo, podría resultar útil permitir que escale la capacidad un poco más allá para evitar problemas de rendimiento o disponibilidad.

Para dejar espacio para que Amazon EC2 Auto Scaling aprovisione la capacidad adicional cuando se prevea que la capacidad sea igual o muy cercana al tamaño máximo de su grupo, especifique las propiedades `MaxCapacityBreachBehavior` y `MaxCapacityBuffer`, como se muestra en el ejemplo siguiente. Debe especificar `MaxCapacityBreachBehavior` con un valor de `IncreaseMaxCapacity`. El número máximo de instancias que el grupo puede tener depende del valor de `MaxCapacityBuffer`. 

```
{
    "MetricSpecifications": [
        {
            "TargetValue": 70,
            "PredefinedMetricPairSpecification": {
                "PredefinedMetricType": "ASGCPUUtilization"
            }
        }
    ],
    "MaxCapacityBreachBehavior": "IncreaseMaxCapacity",
    "MaxCapacityBuffer": 10
}
```

En este ejemplo, la política está configurada para utilizar un búfer del 10 por ciento (`"MaxCapacityBuffer": 10`), de forma que si la capacidad prevista es de 50 y la capacidad máxima es de 40, la capacidad máxima efectiva es de 55. Una política que pueda escalar la capacidad por encima de la capacidad máxima para que sea igual a la capacidad prevista, pero no mayor, tendría un búfer de 0 (`"MaxCapacityBuffer": 0`). 

Para crear esta política, ejecute el [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html)comando con el archivo de configuración especificado, como se muestra en el siguiente ejemplo.

```
aws autoscaling put-scaling-policy --policy-name cpu70-predictive-scaling-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
```

Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:d02ef525-8651-4314-bf14-888331ebd04f:autoScalingGroupName/my-asg:policyName/cpu70-predictive-scaling-policy",
  "Alarms": []
}
```

# Evaluación de las políticas de escalado predictivo
<a name="predictive-scaling-graphs"></a>

Antes de utilizar una política de escalado predictivo para escalar automáticamente su grupo de escalado automático, consulte las recomendaciones y otros datos de la política en la consola de Amazon EC2 Auto Scaling. Esto es importante porque no es recomendable que una política de escalado predictivo amplíe su capacidad real hasta que sepa que sus predicciones son precisas.

Si el grupo de escalado automático es nuevo, espere 24 horas para que Amazon EC2 Auto Scaling cree la primera previsión.

Cuando Amazon EC2 Auto Scaling crea una previsión, utiliza datos históricos. Si su grupo de escalado automático aún no cuenta con muchos datos históricos recientes, Amazon EC2 Auto Scaling podría rellenar temporalmente la previsión con agregados creados a partir de los agregados históricos disponibles actualmente. Las previsiones se rellenan hasta dos semanas antes de la fecha de creación de la política.

**Topics**
+ [Visualización de las recomendaciones](#view-predictive-scaling-recommendations)
+ [Revisión de los gráficos de supervisión](#review-predictive-scaling-monitoring-graphs)
+ [Supervise las métricas con CloudWatch](monitor-predictive-scaling-cloudwatch.md)

## Visualización de las recomendaciones de escalado predictivo
<a name="view-predictive-scaling-recommendations"></a>

Para poder llevar a cabo un análisis eficaz, Amazon EC2 Auto Scaling debe tener al menos dos políticas de escalado predictivo para comparar. (Sin embargo, aún puede revisar los resultados de una sola política). Al crear varias políticas, puede evaluar una política que usa una métrica en comparación con una política que usa una diferente. También puede evaluar el impacto de diferentes combinaciones de valores y métricas de destino. Una vez creadas las políticas de escalado predictivo, Amazon EC2 Auto Scaling comienza inmediatamente a evaluar qué política haría un mejor trabajo a la hora de escalar el grupo.

**Visualización de las recomendaciones en la consola de Amazon EC2 Auto Scaling**

1. Abra la consola Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)y seleccione **Auto Scaling Groups** en el panel de navegación.

1. Seleccione la casilla situada junto al grupo de escalado automático. 

   Se abre un panel dividido en la parte inferior de la página.

1. En la pestaña **Escalado automático**, en **Políticas de escalado predictivo**, puede ver los detalles de una política junto con nuestra recomendación. La recomendación indica si la política de escalado predictivo funciona mejor que si no se utiliza. 

   Si no está seguro de si una política de escalado predictivo es adecuada para su grupo, revise las columnas **Impacto en la disponibilidad** e **Impacto en los costos** para elegir la política correcta. La información de cada columna indica cuál es el impacto de la política. 
   + **Impacto en la disponibilidad**: describe si la política evitaría un impacto negativo en la disponibilidad al aprovisionar suficientes instancias para gestionar la carga de trabajo, en comparación con no utilizar la política.
   + **Impacto en los costos**: describe si la política evitaría un impacto negativo en los costos al no aprovisionar en exceso las instancias, en comparación con no utilizar la política. Al aprovisionar demasiado, las instancias quedan infrautilizadas o inactivas, lo que no hace más que aumentar el impacto en los costos.

   Si tiene varias políticas, aparecerá una etiqueta que pondrá **Mejor predicción** junto al nombre de la política que ofrece la mayor cantidad de beneficios de disponibilidad a un costo menor. Se da más importancia al impacto en la disponibilidad. 

1. (Opcional) Para seleccionar el periodo de tiempo deseado de los resultados de las recomendaciones, elija el valor que prefiera en el menú desplegable **Periodo de evaluación**: **2 días**, **1 semana**, **2 semanas**, **4 semanas**, **6 semanas** u **8 semanas**. De forma predeterminada, el periodo de evaluación son las dos últimas semanas. Un periodo de evaluación más largo proporciona más puntos de datos para los resultados de la recomendación. Sin embargo, es posible que agregar más puntos de datos no mejore los resultados si los patrones de carga han cambiado, por ejemplo, después de un periodo de demanda excepcional. En este caso, puede obtener una recomendación más específica si consulta datos más recientes.

**nota**  
Las recomendaciones se generan solo para las políticas que están en el modo **Solo previsión**. La característica de recomendaciones funciona mejor cuando una política está en el modo **Solo previsión** durante el periodo de evaluación. Si inicia una política en modo **Previsión y escalado** y luego la cambia al modo **Solo previsión**, es probable que los resultados de esa política estén sesgados. Esto se debe a que la política ya ha contribuido a la capacidad real.

## Revisión de los gráficos de supervisión del escalado predictivo
<a name="review-predictive-scaling-monitoring-graphs"></a>

En la consola de Amazon EC2 Auto Scaling, puede revisar la previsión de los días, semanas o meses anteriores para visualizar el rendimiento de la política a lo largo del tiempo. También puede utilizar esta información para evaluar la precisión de las predicciones a la hora de decidir si va a permitir que una política amplíe su capacidad real.

**Visualización de los gráficos de supervisión en la consola de Amazon EC2 Auto Scaling**

1. Elija una política de la lista **Políticas de escalado predictivo**. 

1. En la sección **Supervisión**, puede ver las previsiones pasadas y futuras de su política de carga y capacidad y compararlas con los valores reales. En el gráfico **Carga** se muestra el pronóstico de carga y los valores reales para la métrica de carga que elija. En el gráfico **Capacidad** se muestra el número de instancias pronosticado por la política. También se incluye el número real de instancias lanzadas. La línea vertical separa los valores históricos de las previsiones futuras. Estos gráficos estarán disponibles poco después de que se cree la política. 

1. (Opcional) Para cambiar la cantidad de datos históricos que se muestra en el gráfico, elija su valor preferido en el menú desplegable **Periodo de evaluación** en la parte superior de la página. El periodo de evaluación no transforma los datos de esta página de ninguna manera. Solo cambia la cantidad de datos históricos que se muestran.

La siguiente imagen muestra los gráficos **Carga** y **Capacidad** cuando las previsiones se han aplicado varias veces. El escalado predictivo prevé la carga en función de los datos de carga históricos. La carga que genera la aplicación se representa como la suma de la utilización de la CPU, la entrada/salida de la red, las solicitudes recibidas o la métrica personalizada de cada instancia del grupo de escalado automático. El escalado predictivo calcula las necesidades de capacidad futuras en función de la previsión de carga y el uso objetivo que se quiera alcanzar en la métrica de escalado.

![\[Gráficos de escalado predictivo\]](http://docs.aws.amazon.com/es_es/autoscaling/ec2/userguide/images/predictive-scaling-graphs.png)


**Comparación de datos en el gráfico **Carga****  
Cada línea horizontal representa un conjunto diferente de puntos de datos de los que se ha informado en intervalos de una hora:

1. La **carga real observada** utiliza la estadística SUM de la métrica de carga elegida para mostrar la carga total por hora en el pasado.

1. **Carga pronosticada por la política** muestra la predicción de carga por hora. Esta predicción se basa en las dos semanas anteriores de observaciones de carga reales.

**Comparación de los datos en el gráfico **Capacidad****  
Cada línea horizontal representa un conjunto diferente de puntos de datos de los que se ha informado en intervalos de una hora:

1. La **capacidad observada real** muestra la capacidad real pasada de su grupo de Auto Scaling cuando la [GroupTotalInstances](ec2-auto-scaling-metrics.md#as-group-metrics)métrica está habilitada. Esta capacidad depende de las demás políticas de escalado y del tamaño mínimo del grupo durante el periodo de tiempo seleccionado.

1. **Capacidad pronosticada por la política** muestra la capacidad de referencia que puede esperar tener al principio de cada hora cuando la política esté en modo **Previsión y escalado**.

1. **Capacidad necesaria inferida** muestra la capacidad ideal para mantener la métrica de escalado en el valor objetivo que haya elegido.

1. **Capacidad mínima** muestra la capacidad mínima del grupo de escalado automático.

1. **Capacidad máxima** muestra la capacidad máxima del grupo de escalado automático.

Para calcular la capacidad necesaria inferida, primero asumimos que cada instancia se utiliza por igual en un valor objetivo específico. En la práctica, las instancias no se utilizan por igual. Sin embargo, si asumimos que la utilización se distribuye de manera uniforme entre las instancias, podemos hacer una estimación probabilística de la cantidad de capacidad que se necesita. A continuación, se calcula el requisito de capacidad para que sea inversamente proporcional a la métrica de escalado que se utilizó para la política de escalado predictivo. En otras palabras, a medida que aumenta la capacidad, la métrica de escalado disminuye al mismo ritmo. Por ejemplo, si la capacidad se duplica, la métrica de escalado debe reducirse a la mitad. 

La fórmula para la capacidad necesaria inferida:

 `sum of (actualCapacityUnits*scalingMetricValue)/(targetUtilization)`

Por ejemplo, tomamos los valores de `actualCapacityUnits` (`10`) y `scalingMetricValue` (`30`) de una hora determinada. A continuación, tomamos el valor de `targetUtilization` que especificó en su política de escalado predictivo (`60`) y calculamos la capacidad necesaria inferida de la misma hora. Esto devuelve un valor de `5`. Esto significa que cinco es la cantidad de capacidad inferida necesaria para mantener la capacidad en proporción inversa directa al valor de destino de la métrica de escalado.

**nota**  
Hay varias palancas disponibles para ajustar y mejorar el ahorro de costos y la disponibilidad de la aplicación.  
Se utiliza el escalado predictivo para la capacidad de referencia y el escalado dinámico para gestionar la capacidad adicional. El escalado dinámico funciona independientemente del escalado predictivo, escalando vertical u horizontalmente en función de la utilización actual. En primer lugar, Amazon EC2 Auto Scaling calcula el número recomendado de instancias de cada política de escalado dinámico. A continuación, se escala en función de la política que proporciona la mayor cantidad de instancias.
Para permitir que se reduzca horizontalmente cuando la carga disminuya, su grupo de escalado automático siempre debe tener al menos una política de escalado dinámico con la parte de reducción horizontal habilitada.
Puede mejorar el rendimiento del escalado si se asegura de que su capacidad mínima y máxima no sean demasiado restrictivas. Se impedirá que una política con un número recomendado de instancias que no se encuentre dentro del rango de capacidad mínima y máxima se reduzca o escale horizontalmente.

# Supervise las métricas de escalado predictivo con CloudWatch
<a name="monitor-predictive-scaling-cloudwatch"></a>

Según sus necesidades, es posible que prefiera acceder a los datos de monitoreo para el escalado predictivo desde Amazon CloudWatch en lugar de desde la consola Amazon EC2 Auto Scaling. Después de crear una política de escalado predictivo, la política recopila datos que se utilizan para pronosticar su carga y capacidad futuras. Una vez recopilados estos datos, se almacenan automáticamente a CloudWatch intervalos regulares. A continuación, puede utilizarlos CloudWatch para visualizar el rendimiento de la política a lo largo del tiempo. También puede crear CloudWatch alarmas que le notifiquen cuando los indicadores de rendimiento cambien más allá de los límites que usted haya definido CloudWatch.

**Topics**
+ [Visualización de los datos de las previsiones](#visualize-historical-forecast-data)
+ [Creación de métricas de precisión mediante la matemática métrica](#create-accuracy-metrics)

## Visualización de los datos de las previsiones
<a name="visualize-historical-forecast-data"></a>

Puede ver los datos de previsión de carga y capacidad para una política de escalado predictivo en CloudWatch. Esto puede resultar útil a la hora de visualizar las previsiones comparándolas con otras CloudWatch métricas en un único gráfico. También puede ser útil cuando desee ver un intervalo de tiempo mayor para poder identificar las tendencias a lo largo del tiempo. Puede acceder a métricas históricas de hasta 15 meses para obtener una mejor perspectiva del rendimiento de su política.

Para obtener más información, consulte [Dimensiones y métricas de escalado predictivo](ec2-auto-scaling-metrics.md#predictive-scaling-metrics).

**Para ver los datos históricos de las previsiones mediante la consola CloudWatch**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, elija **Metrics** (Métricas) y, a continuación, **All metrics** (Todas las métricas).

1. Elija el espacio de nombre de métrica **Auto Scaling** (Escalado automático).

1. Elija una de las siguientes opciones para ver las métricas de previsión de carga o de previsión de capacidad: 
   + **Predictive Scaling Load Forecasts** (Pronósticos de carga de escala predictiva)
   + **Predictive Scaling Capacity Forecasts** (Pronósticos de capacidad de escalabilidad predictiva)

1. En el campo de búsqueda, ingrese el nombre de la política de escalado predictivo o el nombre del grupo de escalado automático y, a continuación, pulse Intro para filtrar los resultados. 

1. Para representar gráficamente una métrica, active la casilla de verificación situada junto a ella. Para cambiar el nombre del gráfico, seleccione el icono de lápiz. Para cambiar el intervalo de tiempo, seleccione uno de los valores predefinidos o elija **custom (personalizado)**. Para obtener más información, consulta Cómo [graficar una métrica](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_a_metric.html) en la *Guía del CloudWatch usuario de Amazon*.

1. Para cambiar la estadística, elija la pestaña **Graphed metrics**. Elija el encabezado de columna o un valor individual y, a continuación, elija una estadística diferente. Si bien puedes elegir cualquier estadística para cada métrica, no todas las estadísticas son útiles para **PredictiveScalingLoadForecast**las **PredictiveScalingCapacityForecast**métricas. Por ejemplo, las estadísticas **Media**, **Mínimo** y **Máximo** son útiles para el uso de la CPU, pero no así la estadística **Suma**.

1. Para agregar otra métrica al gráfico, en **Browse** (Examinar), elija **All** (Todo), busque la métrica específica y luego seleccione la casilla de verificación que aparece a su lado. Puede añadir hasta 10 métricas.

   Por ejemplo, para agregar los valores reales de uso de la CPU al gráfico, elija el espacio de nombres de **EC2** y, a continuación, elija **By Auto Scaling Group** (Por grupo de escalado automático). A continuación, seleccione la casilla de verificación de la **CPUUtilization**métrica y del grupo de Auto Scaling específico. 

1. (Opcional) Para añadir el gráfico a un CloudWatch cuadro de mando, seleccione **Acciones** y **Añadir al cuadro de mando**.

## Creación de métricas de precisión mediante la matemática métrica
<a name="create-accuracy-metrics"></a>

Con la matemática métrica, puede consultar múltiples CloudWatch métricas y usar expresiones matemáticas para crear nuevas series temporales basadas en estas métricas. Puede visualizar las series temporales resultantes en la CloudWatch consola y añadirlas a los paneles. Para obtener más información sobre las matemáticas métricas, consulte [Uso de las matemáticas métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) en la *Guía del CloudWatch usuario de Amazon*.

Con la matemática métrica, puede representar gráficamente los datos que Amazon EC2 Auto Scaling genera para reducir horizontalmente de diferentes maneras. Esto es de utilidad para supervisar el rendimiento de las políticas a lo largo del tiempo y a comprender si se puede mejorar la combinación de métricas.

Por ejemplo, puede usar una expresión matemática métrica para supervisar el [mean absolute percentage error](https://en.wikipedia.org/wiki/Mean_absolute_percentage_error) (error porcentual absoluto medio o MAPE). La métrica MAPE ayuda a supervisar la diferencia entre los valores pronosticados y los valores reales observados durante un periodo de previsión determinado. Los cambios en el valor de MAPE pueden indicar si el rendimiento de la política se degrada con el tiempo a medida que cambia la naturaleza de la aplicación. Un aumento en MAPE indica una brecha más amplia entre los valores pronosticados y los valores reales. 

**Ejemplo: expresiones matemáticas de métricas**

Para empezar a utilizar este tipo de gráfica, puede crear una expresión matemática métrica como la que se muestra en el siguiente ejemplo.

```
{
  "MetricDataQueries": [
    {
      "Expression": "TIME_SERIES(AVG(ABS(m1-m2)/m1))",
      "Id": "e1",
      "Period": 3600,
      "Label": "MeanAbsolutePercentageError",
      "ReturnData": true
    },
    {
      "Id": "m1",
      "Label": "ActualLoadValues",
      "MetricStat": {
        "Metric": {
          "Namespace": "AWS/EC2",
          "MetricName": "CPUUtilization",
          "Dimensions": [
            {
              "Name": "AutoScalingGroupName",
              "Value": "my-asg"
            }
          ]
        },
        "Period": 3600,
        "Stat": "Sum"
      },
      "ReturnData": false
    },
    {
      "Id": "m2",
      "Label": "ForecastedLoadValues",
      "MetricStat": {
        "Metric": {
          "Namespace": "AWS/AutoScaling",
          "MetricName": "PredictiveScalingLoadForecast",
          "Dimensions": [
            {
              "Name": "AutoScalingGroupName",
              "Value": "my-asg"
            },
            {
              "Name": "PolicyName",
              "Value": "my-predictive-scaling-policy"
            },
            {
              "Name": "PairIndex",
              "Value": "0"
            }
          ]
        },
        "Period": 3600,
        "Stat": "Average"
      },
      "ReturnData": false
    }
  ]
}
```

En lugar de una sola métrica, hay una matriz de estructuras de consulta de datos métricos para `MetricDataQueries`. Cada elemento de `MetricDataQueries` obtiene una métrica o realiza una expresión matemática. El primer elemento, `e1`, es la expresión matemática. La expresión designada establece el parámetro `ReturnData` a `true`, que en última instancia produce una sola serie temporal. Para todas las demás métricas, el valor `ReturnData` es `false`. 

En el ejemplo, la expresión designada utiliza los valores reales y previstos como entrada y devuelve la nueva métrica (MAPE). `m1`es la CloudWatch métrica que contiene los valores de carga reales (suponiendo que la utilización de la CPU sea la métrica de carga que se especificó originalmente para la política denominada`my-predictive-scaling-policy`). `m2`es la CloudWatch métrica que contiene los valores de carga previstos. La sintaxis matemática de la métrica MAPE es la siguiente:

*Average of (abs ((Actual - Forecast)/(Actual)))* (Promedio de (abs ((Real - Previsión)/(Real))))

### Visualización de métricas de precisión y configuración de alarmas
<a name="visualize-accuracy-metrics-set-alarms"></a>

Para visualizar los datos de las métricas de precisión, seleccione la pestaña **Métricas** de la CloudWatch consola. Puede hacer una representación gráfica de los datos desde allí. Para obtener más información, consulta [Cómo añadir una expresión matemática a un CloudWatch gráfico](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#adding-metrics-expression-console) en la *Guía del CloudWatch usuario de Amazon*.

Puede configurar una alarma para una métrica que supervise desde la sección **Metrics**. Mientras está en la pestaña **Métricas diagramadas**, puede seleccionar el icono **Crear alarma** en la columna **Acciones**. El icono **Create alarm** se representa como una pequeña campana. Para obtener más información y opciones de notificación, consulte [Crear una CloudWatch alarma basada en una expresión matemática métrica](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create-alarm-on-metric-math-expression.html) y [Notificar a los usuarios los cambios de alarma en](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Notify_Users_Alarm_Changes.html) la *Guía del CloudWatch usuario de Amazon*.

Como alternativa, puede usar [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)y [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html)realizar cálculos mediante cálculos métricos y crear alarmas en función de los resultados.

# Anulación de valores de pronóstico mediante acciones programadas
<a name="predictive-scaling-overriding-forecast-capacity"></a>

A veces, es posible que tenga información adicional sobre los requisitos futuros de la aplicación que el cálculo del pronóstico no pueda tener en cuenta. Por ejemplo, los cálculos de pronóstico podrían subestimar la capacidad necesaria para un próximo evento de marketing. Puede utilizar acciones programadas para anular temporalmente el pronóstico durante periodos futuros. Las acciones programadas se pueden ejecutar de forma periódica, o en una fecha y hora específicas cuando hay fluctuaciones de demanda únicas. 

Por ejemplo, puede crear una acción programada con una capacidad mínima superior a la pronosticada. En tiempo de ejecución, Amazon EC2 Auto Scaling actualiza la capacidad mínima del grupo de escalado automático. Dado que el escalado predictivo optimiza la capacidad, se cumple una acción programada con una capacidad mínima superior a los valores del pronóstico. Esto evita que la capacidad sea menor que lo esperado. Para dejar de anular el pronóstico, utilice una segunda acción programada para devolver la capacidad mínima a su configuración original.

En el siguiente procedimiento se describen los pasos para anular el pronóstico durante periodos futuros. 

**Topics**
+ [Paso 1: (opcional) Analizar los datos de serie temporal](#analyzing-time-series-data)
+ [Paso 2: Crear dos acciones programadas](#scheduling-capacity)

**importante**  
En este tema, se supone que está intentando anular la previsión para escalar a una capacidad superior a la prevista. Si necesita reducir temporalmente la capacidad sin que interfiera una política de escalado predictivo, utilice el modo de *solo previsión*. Mientras esté en el modo de solo previsión, el escalado predictivo seguirá generando previsiones, pero no aumentará automáticamente la capacidad. De esta manera, puede supervisar la utilización de los recursos y reducir manualmente el tamaño del grupo según sea necesario. Para obtener más información acerca del escalado manual, consulte [Escalado manual para Amazon EC2 Auto Scaling](ec2-auto-scaling-scaling-manually.md). 

## Paso 1: (opcional) Analizar los datos de serie temporal
<a name="analyzing-time-series-data"></a>

Para comenzar, analice los datos de serie temporal del pronóstico. Este es un paso opcional, pero resulta útil si desea comprender los detalles del pronóstico.

1. **Recuperar el pronóstico**

   Una vez creado el pronóstico, puede consultar un periodo específico en el pronóstico. El objetivo de la consulta es obtener una vista completa de los datos de serie temporal para un periodo específico. 

   La consulta puede incluir hasta dos días de datos de pronósticos futuros. Si hace tiempo utiliza el escalado predictivo, también puede acceder a los datos de pronóstico anteriores. Sin embargo, la duración máxima entre la hora de inicio y la hora de finalización es de 30 días. 

   Para obtener la previsión mediante el [get-predictive-scaling-forecast](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/get-predictive-scaling-forecast.html) AWS CLI comando, introduzca los siguientes parámetros en el comando: 
   + Ingrese el nombre del grupo de escalado automático en el parámetro `--auto-scaling-group-name`. 
   + Ingrese el nombre de la política en el parámetro `--policy-name`. 
   + Indique la hora de inicio en el parámetro `--start-time` para devolver solo los datos pronosticados para la hora especificada o con posterioridad.
   + Indique la hora de finalización en el parámetro `--end-time` para devolver solo los datos pronosticados para antes de la hora especificada. 

   ```
   aws autoscaling get-predictive-scaling-forecast --auto-scaling-group-name my-asg \
       --policy-name cpu40-predictive-scaling-policy \
       --start-time "2021-05-19T17:00:00Z" \
       --end-time "2021-05-19T23:00:00Z"
   ```

   Si se ejecuta correctamente, el comando devuelve datos similares al ejemplo siguiente. 

   ```
   {
       "LoadForecast": [
           {
               "Timestamps": [
                   "2021-05-19T17:00:00+00:00",
                   "2021-05-19T18:00:00+00:00",
                   "2021-05-19T19:00:00+00:00",
                   "2021-05-19T20:00:00+00:00",
                   "2021-05-19T21:00:00+00:00",
                   "2021-05-19T22:00:00+00:00",
                   "2021-05-19T23:00:00+00:00"
               ],
               "Values": [
                   153.0655799339254,
                   128.8288551285919,
                   107.1179447150675,
                   197.3601844551528,
                   626.4039934516954,
                   596.9441277518481,
                   677.9675713779869
               ],
               "MetricSpecification": {
                   "TargetValue": 40.0,
                   "PredefinedMetricPairSpecification": {
                       "PredefinedMetricType": "ASGCPUUtilization"
                   }
               }
           }
       ],
       "CapacityForecast": {
           "Timestamps": [
               "2021-05-19T17:00:00+00:00",
               "2021-05-19T18:00:00+00:00",
               "2021-05-19T19:00:00+00:00",
               "2021-05-19T20:00:00+00:00",
               "2021-05-19T21:00:00+00:00",
               "2021-05-19T22:00:00+00:00",
               "2021-05-19T23:00:00+00:00"
           ],
           "Values": [
               2.0,
               2.0,
               2.0,
               2.0,
               4.0,
               4.0,
               4.0
           ]
       },
       "UpdateTime": "2021-05-19T01:52:50.118000+00:00"
   }
   ```

   La respuesta incluye dos pronósticos: `LoadForecast` y `CapacityForecast`. `LoadForecast` muestra el pronóstico de carga por hora. `CapacityForecast` muestra los valores pronosticados para la capacidad que se necesita cada hora para gestionar la carga pronosticada mientras se mantiene un `TargetValue` de 40,0 (una utilización media de la CPU del 40 %).

1. **Identifique el periodo de destino**

   Identifique la o las horas en las que debe tener lugar la fluctuación de la demanda única. Recuerde que las fechas y horas que aparecen en el pronóstico están en UTC.

## Paso 2: Crear dos acciones programadas
<a name="scheduling-capacity"></a>

A continuación, cree dos acciones programadas para un periodo específico en el que la aplicación tendrá una carga superior a la pronosticada. Por ejemplo, si tiene un evento de marketing que incrementará el tráfico hacia su sitio durante un periodo de tiempo limitado, puede programar una acción única para actualizar la capacidad mínima cuando comience. A continuación, programe otra acción para devolver la capacidad mínima a la configuración original cuando el evento finalice. 

**Para crear dos acciones programadas para eventos únicos (consola)**

1. Abra la consola Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)y seleccione **Auto Scaling Groups** en el panel de navegación.

1. Seleccione la casilla situada junto al grupo de escalado automático.

   Se abre un panel dividido en la parte inferior de la página. 

1. En la pestaña **Escalado automático**, en **Acciones programadas**, elija **Crear acción programada**.

1. Rellene los siguientes ajustes para la acción configuración:

   1. Ingrese un **Name (Nombre)** para la acción programada.

   1. Para **Min (Mínimo)**, ingrese la nueva capacidad mínima para el grupo de escalado automático. **Min** debe ser menor o igual que el tamaño máximo del grupo. Si el nuevo valor de **Min** es mayor que el tamaño máximo del grupo, debe actualizar **Max (Máximo)**. 

   1. En **Recurrencia**, elija **Una vez**.

   1. En **Time zone (Zona horaria)**, elija una zona horaria. Si no se elige ninguna zona horaria, se utiliza `ETC/UTC` de forma predeterminada.

   1. Defina **Specific start time (Hora de inicio específica)**. 

1. Seleccione **Crear**.

   La consola muestra las acciones programadas para el grupo de escalado automático. 

1. Configure una segunda acción programada para que la capacidad mínima recupere la configuración original al final del evento. El escalado predictivo puede escalar la capacidad únicamente cuando el valor establecido para **Min (Mínimo)** es menor que los valores del pronóstico.

**Para crear dos acciones programadas para eventos únicos (AWS CLI)**  
Para utilizarla AWS CLI para crear las acciones programadas, utilice el comando [put-scheduled-update-group-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scheduled-update-group-action.html). 

Por ejemplo, definamos una programación que mantenga una capacidad mínima de tres instancias el 19 de mayo a las 17:00 durante ocho horas. En los siguientes comandos se muestra cómo implementar este escenario.

El comando first [put-scheduled-update-group-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scheduled-update-group-action.html) indica a Amazon EC2 Auto Scaling que actualice la capacidad mínima del grupo de Auto Scaling especificado a las 17:00 UTC del 19 de mayo de 2021. 

```
aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-event-start \
  --auto-scaling-group-name my-asg --start-time "2021-05-19T17:00:00Z" --minimum-capacity 3
```

El segundo comando indica a Amazon EC2 Auto Scaling que establezca la capacidad mínima del grupo en uno a la 1:00 (UTC) del 20 de mayo de 2021. 

```
aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-event-end \
  --auto-scaling-group-name my-asg --start-time "2021-05-20T01:00:00Z" --minimum-capacity 1
```

Después de agregar estas acciones programadas al grupo de escalado automático, Amazon EC2 Auto Scaling realiza lo siguiente: 
+ A las 17:00 (UTC) del 19 de mayo de 2021, se ejecuta la primera acción programada. Si el grupo tiene actualmente menos de tres instancias, el grupo se escala horizontalmente hasta tres instancias. Durante este tiempo y durante las siguientes ocho horas, Amazon EC2 Auto Scaling puede seguir escalando horizontalmente si la capacidad prevista es superior a la capacidad real o si existe una política de escalado dinámico en vigor. 
+ A la 1:00 (UTC) del 20 de mayo de 2021, se ejecuta la segunda acción programada. Esto devuelve la capacidad mínima a la configuración original al final del evento.

### Escalado basado en programaciones recurrentes
<a name="scheduling-recurring-actions"></a>

Para anular el pronóstico para el mismo periodo cada semana, cree dos acciones programadas y proporcione la lógica de fecha y hora utilizando una expresión cron. 

El formato de una expresión cron consta de cinco campos separados por espacios: [minuto] [hora] [día\$1del\$1mes] [mes\$1del\$1año] [día\$1de\$1la\$1semana]. Los campos pueden contener cualquier valor permitido, incluidos caracteres especiales. 

Por ejemplo, la siguiente expresión cron ejecuta una acción todos los martes a las 6:30. El asterisco se utiliza como comodín para coincidir con todos los valores de un campo.

```
30 6 * * 2
```

### Véase también
<a name="scheduling-scaling-see-also"></a>

Para obtener más información acerca de cómo crear, enumerar, editar y eliminar acciones programadas, consulte [Escalado programado para Amazon EC2 Auto Scaling](ec2-auto-scaling-scheduled-scaling.md).

# Políticas avanzadas de escalado predictivo mediante métricas personalizadas
<a name="predictive-scaling-customized-metric-specification"></a>

En una política de escalado predictivo, puede utilizar métricas predefinidas o personalizadas. Las métricas personalizadas son prácticas cuando las métricas predefinidas (CPU, E/S de red y recuento de solicitudes de Application Load Balancer) no describen adecuadamente la carga de su aplicación.

Al crear una política de escalado predictivo con métricas personalizadas, puede especificar otras CloudWatch métricas proporcionadas por AWS, o bien puede especificar métricas que defina y publique usted mismo. También puede utilizar las matemáticas métricas para agregar y transformar las métricas existentes en una nueva serie temporal que AWS no se realice un seguimiento automático. Cuando combina valores en los datos, por ejemplo, al calcular nuevas sumas o promedios, se denomina *aggregating* (agrupando). Los datos obtenidos se denominan *aggregate* (agrupación).

En la siguiente sección se encuentran las mejores prácticas y ejemplos de cómo construir la estructura JSON para la política. 

**Topics**
+ [Prácticas recomendadas](#custom-metrics-best-practices)
+ [Requisitos previos](#custom-metrics-prerequisites)
+ [Construir JSON para métricas personalizadas](construct-json-custom-metrics.md)
+ [Consideraciones sobre la utilización de métricas personalizadas en una política de escalado predictivo](custom-metrics-troubleshooting.md)
+ [Limitaciones](#custom-metrics-limitations)

## Prácticas recomendadas
<a name="custom-metrics-best-practices"></a>

Las siguientes prácticas recomendadas pueden ayudarlo a utilizar las métricas personalizadas de manera más eficaz:
+ Para la especificación de las métricas de carga, la métrica que resulta de mayor utilidad es la que representa la carga en un grupo de escalado automático en su conjunto, independientemente de la capacidad del grupo.
+ Para la especificación de la métrica de escalado, la métrica que resulta de mayor utilidad para escalar es una métrica de rendimiento o uso promedio por instancia.
+ La métrica de escalado debe ser inversamente proporcional a la capacidad. Es decir, si el número de instancias en el grupo de escalado automático aumenta, la métrica de escalado debería disminuir aproximadamente en la misma proporción. Para garantizar que el escalado predictivo se comporte según lo esperado, la métrica de carga y la métrica de escalado también deben estar estrechamente correlacionadas entre sí. 
+ El uso objetivo debe coincidir con el tipo de métrica de escalado. Para configurar una política que emplee la utilización de la CPU, se trata de un porcentaje objetivo. Para la configuración de una política que use el rendimiento, como el número de solicitudes o mensajes, este es el número objetivo de solicitudes o mensajes por instancia durante cualquier intervalo de un minuto.
+ Si no se siguen estas recomendaciones, es probable que los valores futuros pronosticados de la serie temporal sean incorrectos. Para validar que los datos son correctos, puede ver los valores pronosticados en la consola de Amazon EC2 Auto Scaling. Como alternativa, después de crear la política de escalado predictivo, inspeccione los `CapacityForecast` objetos devueltos por una llamada a la [GetPredictiveScalingForecast](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_GetPredictiveScalingForecast.html)API `LoadForecast` y los objetos devueltos por ella.
+ Se recomienda configurar el escalado predictivo en modo Forecast only (Solo pronóstico) para poder evaluar el pronóstico antes de que el escalado predictivo comience a escalar la capacidad de forma activa.

## Requisitos previos
<a name="custom-metrics-prerequisites"></a>

Para agregar métricas personalizadas en la política de escalado predictivo, debe tener permisos de `cloudwatch:GetMetricData`.

Para especificar sus propias métricas en lugar de las métricas que AWS proporciona, primero debe publicar las métricas en CloudWatch. Para obtener más información, consulta [Publicar métricas personalizadas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) en la *Guía del CloudWatch usuario de Amazon*. 

Si publica sus propias métricas, asegúrese de publicar los puntos de datos con una frecuencia mínima de cinco minutos. Amazon EC2 Auto Scaling recupera los puntos CloudWatch de datos en función de la duración del período que necesite. Por ejemplo, la especificación de métrica de carga utiliza métricas por hora para medir la carga de la aplicación. CloudWatch utiliza los datos de las métricas publicados para proporcionar un único valor de datos para cualquier período de una hora al agregar todos los puntos de datos con las marcas de tiempo correspondientes a cada período de una hora. 

# Construir JSON para métricas personalizadas
<a name="construct-json-custom-metrics"></a>

La siguiente sección contiene ejemplos sobre cómo configurar el escalado predictivo desde el que consultar datos. CloudWatch Existen dos métodos diferentes para configurar esta opción, y el método que elija afectará al formato que utilice para construir el JSON para su política de escalado predictivo. Cuando usa matemáticas métricas, el formato del JSON varía aún más en función de las matemáticas métricas que se estén desempeñando.

1. Para crear una política que obtenga datos directamente de otras CloudWatch métricas proporcionadas AWS o en las que publique CloudWatch, consulte[Ejemplo de política de escalado predictivo con una métrica de escalado personalizada y de carga personalizada (AWS CLI)](#custom-metrics-ex1).

1. Para crear una política que pueda consultar varias CloudWatch métricas y utilizar expresiones matemáticas para crear nuevas series temporales basadas en estas métricas, consulte[Uso de expresiones de cálculos de métricas](using-math-expression-examples.md).

## Ejemplo de política de escalado predictivo con una métrica de escalado personalizada y de carga personalizada (AWS CLI)
<a name="custom-metrics-ex1"></a>

Para crear una política de escalado predictivo con métricas de carga y escalado personalizadas con el AWS CLI, almacene los argumentos `--predictive-scaling-configuration` en un archivo JSON denominado`config.json`.

Para empezar a agregar métricas personalizadas, sustituya los valores reemplazables del siguiente ejemplo por los de sus métricas y su utilización objetivo.

```
{
  "MetricSpecifications": [
    {
      "TargetValue": 50,
      "CustomizedScalingMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "scaling_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "MyUtilizationMetric",
                "Namespace": "MyNameSpace",
                "Dimensions": [
                  {
                    "Name": "MyOptionalMetricDimensionName",
                    "Value": "MyOptionalMetricDimensionValue"
                  }
                ]
              },
              "Stat": "Average"
            }
          }
        ]
      },
      "CustomizedLoadMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "MyLoadMetric",
                "Namespace": "MyNameSpace",
                "Dimensions": [
                  {
                    "Name": "MyOptionalMetricDimensionName",
                    "Value": "MyOptionalMetricDimensionValue"
                  }
                ]
              },
              "Stat": "Sum"
            }
          }
        ]
      }
    }
  ]
}
```

Para obtener más información, consulte la [MetricDataQuery](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MetricDataQuery.html)referencia de la *API Amazon EC2 Auto Scaling*.

**nota**  
Los siguientes son algunos recursos adicionales que pueden ayudarle a encontrar nombres de métricas, espacios de nombres, dimensiones y estadísticas para las métricas: CloudWatch   
Para obtener información sobre las métricas disponibles para AWS los servicios, consulta [AWS los servicios que publican CloudWatch métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) en la *Guía del CloudWatch usuario de Amazon*.
[Para obtener el nombre, el espacio de nombres y las dimensiones exactos (si corresponde) de una CloudWatch métrica con el AWS CLI, consulta list-metrics.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/list-metrics.html) 

Para crear esta política, ejecute el [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html)comando con el archivo JSON como entrada, como se muestra en el siguiente ejemplo.

```
aws autoscaling put-scaling-policy --policy-name my-predictive-scaling-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
```

Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-predictive-scaling-policy",
  "Alarms": []
}
```

# Uso de expresiones de cálculos de métricas
<a name="using-math-expression-examples"></a>

En la siguiente sección se proporcionan información y ejemplos de políticas de escalado predictivo que muestran cómo puede utilizar las matemáticas métricas en su política. 

**Topics**
+ [Descripción del cálculo de métricas](#custom-metrics-metric-math)
+ [Ejemplo de política de escalado predictivo que combina las métricas mediante el uso del cálculo de métricas (AWS CLI)](#custom-metrics-ex2)
+ [Ejemplo de política de escalado predictivo para usar en un escenario de blue/green despliegue (AWS CLI)](#custom-metrics-ex3)

## Descripción del cálculo de métricas
<a name="custom-metrics-metric-math"></a>

Si lo único que quiere hacer es agregar los datos de las métricas existentes, las matemáticas CloudWatch métricas le ahorran el esfuerzo y el costo de publicar otra métrica en ella CloudWatch. Puede usar cualquier métrica que AWS proporcione y también puede usar las métricas que defina como parte de sus aplicaciones. Por ejemplo, es posible que desee calcular la cola de tareas pendientes de Amazon SQS por instancia. Para ello, se toma el número aproximado de mensajes disponibles que desea recuperar de la cola y se divide por la capacidad de funcionamiento del grupo de escalado automático.

Para obtener más información, consulta [Uso de las matemáticas métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) en la *Guía del CloudWatch usuario de Amazon*. 

Si decide utilizar una expresión de cálculo de métricas en su política de escalado predictivo, tenga en cuenta los siguientes aspectos:
+ Las operaciones de cálculo de métricas utilizan los puntos de datos de la combinación única de nombre de métrica, espacio de nombres y pares de claves/valores de la dimensión de las métricas. 
+ Puede utilizar cualquier operador aritmético (\$1 - \$1/^), función estadística (como AVG o SUM) u otra función compatible. CloudWatch 
+ Puede utilizar tanto las métricas como los resultados de otras expresiones matemáticas en las fórmulas de la expresión matemática. 
+ Sus expresiones de cálculo de métricas se pueden formar con diferentes agrupaciones. Sin embargo, es una práctica recomendada para el resultado final de la agrupación que se utilice `Average` para la métrica de escalado y `Sum` para la métrica de carga.
+ Todas las expresiones utilizadas en la especificación de una métrica deben devolver en última instancia una única serie temporal.

Para utilizar cálculos de métricas, haga lo siguiente:
+ Elija una o más métricas. CloudWatch A continuación, cree la expresión. Para obtener más información, consulta [Uso de las matemáticas métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) en la *Guía del CloudWatch usuario de Amazon*. 
+ Compruebe que la expresión matemática métrica es válida mediante la CloudWatch consola o la CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)API.

## Ejemplo de política de escalado predictivo que combina las métricas mediante el uso del cálculo de métricas (AWS CLI)
<a name="custom-metrics-ex2"></a>

En ocasiones, en lugar de especificar la métrica directamente, es posible que tenga que procesar primero sus datos de alguna manera. Por ejemplo, puede tener una aplicación que extraiga trabajo de una cola de Amazon SQS y puede querer utilizar el número de elementos en la cola como criterio para realizar un escalado predictivo. El número de mensajes en la cola no define exclusivamente el número de instancias que necesita. Por lo tanto, es necesario trabajar más para crear una métrica que pueda utilizarse para calcular las tareas pendientes por instancia. Para obtener más información, consulte [Política de escalado basada en Amazon SQS](as-using-sqs-queue.md).

A continuación se presenta un ejemplo de política de escalado predictivo para este caso. Especifica las métricas de escalado y carga que dependen de la métrica `ApproximateNumberOfMessagesVisible` de Amazon SQS, es decir, el número de mensajes disponibles para recuperar de la cola. Asimismo, utiliza la métrica `GroupInServiceInstances` de Amazon EC2 Auto Scaling y una expresión matemática que permite calcular las tareas pendientes por instancia para la métrica de escalado.

```
aws autoscaling put-scaling-policy --policy-name my-sqs-custom-metrics-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
{
  "MetricSpecifications": [
    {
      "TargetValue": 100,
      "CustomizedScalingMetricSpecification": {
        "MetricDataQueries": [
          {
            "Label": "Get the queue size (the number of messages waiting to be processed)",
            "Id": "queue_size",
            "MetricStat": {
              "Metric": {
                "MetricName": "ApproximateNumberOfMessagesVisible",
                "Namespace": "AWS/SQS",
                "Dimensions": [
                  {
                    "Name": "QueueName",
                    "Value": "my-queue"
                  }
                ]
              },
              "Stat": "Sum"
            },
            "ReturnData": false
          },
          {
            "Label": "Get the group size (the number of running instances)",
            "Id": "running_capacity",
            "MetricStat": {
              "Metric": {
                "MetricName": "GroupInServiceInstances",
                "Namespace": "AWS/AutoScaling",
                "Dimensions": [
                  {
                    "Name": "AutoScalingGroupName",
                    "Value": "my-asg"
                  }
                ]
              },
              "Stat": "Sum"
            },
            "ReturnData": false
          },
          {
            "Label": "Calculate the backlog per instance",
            "Id": "scaling_metric",
            "Expression": "queue_size / running_capacity",
            "ReturnData": true
          }
        ]
      },
      "CustomizedLoadMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "ApproximateNumberOfMessagesVisible",
                "Namespace": "AWS/SQS",
                "Dimensions": [
                  {
                    "Name": "QueueName",
                    "Value": "my-queue"
                  }
                ],
              },
              "Stat": "Sum"
            },
            "ReturnData": true
          }
        ]
      }
    }
  ]
}
```

En el ejemplo se devuelve el ARN de la política.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-sqs-custom-metrics-policy",
  "Alarms": []
}
```

## Ejemplo de política de escalado predictivo para usar en un escenario de blue/green despliegue (AWS CLI)
<a name="custom-metrics-ex3"></a>

Una expresión de búsqueda proporciona una opción avanzada en la que se puede consultar una métrica de varios grupos de Auto Scaling y realizar expresiones matemáticas en ellos. Esto resulta especialmente útil para blue/green las implementaciones. 

**nota**  
Una *implementación azul/verde* es un método de implementación en el que se crean dos grupos de Auto Scaling independientes pero idénticos a la vez. Solo uno de ellos recibe el tráfico de producción. El tráfico de usuarios se dirige en principio al grupo de escalado automático (“azul”) anterior, mientras que un nuevo grupo (“verde”) se utiliza para probar y evaluar una nueva versión de una aplicación o de un servicio. El tráfico de usuarios pasa al grupo de escalado automático verde una vez que se prueba y acepta una nueva implementación. A continuación, puede eliminar el grupo azul una vez que la implementación se realiza correctamente.

Cuando se crean nuevos grupos de Auto Scaling como parte de una blue/green implementación, el historial de métricas de cada grupo se puede incluir automáticamente en la política de escalado predictivo sin tener que cambiar sus especificaciones métricas. Para obtener más información, consulte [Uso de las políticas de escalado predictivo de Auto Scaling de EC2 con implementaciones azules/verdes](https://aws.amazon.com/blogs/compute/retaining-metrics-across-blue-green-deployment-for-predictive-scaling/) en el blog de informática. AWS 

En el siguiente ejemplo de política se muestra cómo hacerlo. En este ejemplo, la política utiliza la métrica `CPUUtilization` emitida por Amazon EC2. Utiliza la métrica `GroupInServiceInstances` de Amazon EC2 Auto Scaling y una expresión matemática que permite calcular el valor de la métrica de escalado por instancia. También establece una especificación de la métrica de capacidad para obtener la métrica `GroupInServiceInstances`.

La expresión de búsqueda localiza la `CPUUtilization` de las instancias en varios grupos de Auto Scaling según los criterios de búsqueda especificados. Si posteriormente se crea un nuevo grupo de escalado automático que coincida con los mismos criterios de búsqueda, la `CPUUtilization` de las instancias del nuevo grupo se incluye de manera automática.

```
aws autoscaling put-scaling-policy --policy-name my-blue-green-predictive-scaling-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
{
  "MetricSpecifications": [
    {
      "TargetValue": 25,
      "CustomizedScalingMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_sum",
            "Expression": "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" ASG-myapp', 'Sum', 300))",
            "ReturnData": false
          },
          {
            "Id": "capacity_sum",
            "Expression": "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceInstances\" ASG-myapp', 'Average', 300))",
            "ReturnData": false
          },
          {
            "Id": "weighted_average",
            "Expression": "load_sum / capacity_sum",
            "ReturnData": true
          }
        ]
      },
      "CustomizedLoadMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_sum",
            "Expression": "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" ASG-myapp', 'Sum', 3600))"
          }
        ]
      },
      "CustomizedCapacityMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "capacity_sum",
            "Expression": "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceInstances\" ASG-myapp', 'Average', 300))"
          }
        ]
      }
    }
  ]
}
```

En el ejemplo se devuelve el ARN de la política.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-blue-green-predictive-scaling-policy",
  "Alarms": []
}
```

# Consideraciones sobre la utilización de métricas personalizadas en una política de escalado predictivo
<a name="custom-metrics-troubleshooting"></a>

Si se produce un problema durante el uso de las métricas personalizadas, se recomienda seguir los siguientes pasos:
+ Si aparece un mensaje de error, léalo y solucione el problema que indica, en caso de que sea posible. 
+ Si se produce un problema al intentar utilizar una expresión de búsqueda en un escenario de blue/green despliegue, primero asegúrese de que sabe cómo crear una expresión de búsqueda que busque una coincidencia parcial en lugar de una coincidencia exacta. Además, compruebe que en su consulta solo se encuentren los grupos de Auto Scaling que ejecutan la aplicación específica. Para obtener más información sobre la sintaxis de las expresiones de búsqueda, consulte la sintaxis de las [expresiones de CloudWatch búsqueda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-syntax.html) en la *Guía del CloudWatch usuario de Amazon*. 
+ Si no ha validado una expresión por adelantado, el [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html)comando la valida al crear la política de escalado. Sin embargo, existe la posibilidad de que este comando no identifique la causa exacta de los errores detectados. Para solucionar los problemas, solucione los errores que reciba en respuesta a una solicitud al [get-metric-data](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/get-metric-data.html)comando. También puedes solucionar los problemas de la expresión desde la CloudWatch consola.
+ Cuando vea los gráficos de **Load** (Carga) y **Capacity** (Capacidad) en la consola, es posible que el gráfico de **Capacity** (Capacidad) no muestre ningún dato. Para garantizar que los gráficos tengan datos completos, asegúrese de habilitar de manera sistemática las métricas de grupo para sus grupos de Auto Scaling. Para obtener más información, consulte [Habilitación de las métricas de grupo de Auto Scaling (consola)](ec2-auto-scaling-metrics.md#as-enable-group-metrics).
+ La especificación de la métrica de capacidad solo resulta de utilidad en el caso de las implementaciones azul/verde cuando se tienen aplicaciones que se ejecutan en diferentes grupos de Auto Scaling a lo largo de su vida útil. Esta métrica personalizada le permite proporcionar la capacidad total de varios grupos de Auto Scaling. El escalado predictivo lo utiliza para mostrar datos históricos en los gráficos de **Capacity** (Capacidad) de la consola.
+ Debe especificar `false` para `ReturnData` si `MetricDataQueries` especifica la función SEARCH() por sí sola sin una función matemática como SUM(). Esto se debe a que las expresiones de búsqueda podrían devolver varias series temporales, mientras que una especificación métrica basada en una expresión solo puede devolver una serie temporal.
+ Todas las métricas que aparecen en una expresión de búsqueda deben tener la misma resolución.

## Limitaciones
<a name="custom-metrics-limitations"></a>
+ Puede consultar puntos de datos de hasta 10 métricas en una especificación de métrica.
+ A efectos de este límite, una expresión cuenta como una métrica.