

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.

# Políticas de escalado de seguimiento de destino para Auto Scaling de aplicaciones
<a name="application-auto-scaling-target-tracking"></a>

Una política de escalado de seguimiento de destino escalado automáticamente de aplicación en función de un valor de métrica de destino. Esto permite que su aplicación mantenga un rendimiento y una rentabilidad óptimos sin intervención manual.

Con el seguimiento de objetivo, seleccione una métrica y un valor objetivo para representar el nivel ideal de utilización promedio o rendimiento para su aplicación. Application Auto Scaling crea y administra las CloudWatch alarmas que activan los eventos de escalado cuando la métrica se desvía del objetivo. Esto es similar a cómo un termostato mantiene una temperatura objetivo.

Por ejemplo, supongamos que tiene una aplicación que actualmente se pone en la flota de spot y desea que la utilización de CPU de la flota permanezca en torno al 50 % cuando cambie la carga en la aplicación. De este modo dispone de capacidad adicional para gestionar picos de tráfico sin mantener una cantidad excesiva de recursos inactivos. 

Puede satisfacer esta necesidad mediante la creación de una política de escalado de seguimiento de destino que tenga como destino una utilización media de CPU del 50 por ciento. Luego, Auto Scaling de aplicaciones se escalará horizontalmente(aumentará la capacidad) cuando la CPU supere el 50 por ciento para gestionar el aumento de carga. Se reducirá horizontalmente (reducirá la capacidad) cuando la CPU caiga por debajo del 50 por ciento para optimizar los costos durante los periodos de baja utilización.

Las políticas de seguimiento de Target eliminan la necesidad de definir manualmente CloudWatch las alarmas y los ajustes de escalado. Auto Scaling de aplicaciones gestiona esto automáticamente en función del objetivo que establezca.

Puede basar políticas de escalado de destino en métricas predefinidas o personalizadas:
+ **Métricas predefinidas**: métricas proporcionadas por Auto Scaling de aplicaciones, como el uso promedio de la CPU o el recuento promedio de solicitudes por objetivo.
+ **Métricas personalizadas**: puedes usar las matemáticas métricas para combinar métricas, aprovechar las métricas existentes o usar tus propias métricas personalizadas publicadas para CloudWatch ti.

Elija una métrica que cambie de forma inversamente proporcional al cambio en la capacidad de su objetivo escalable. Por lo tanto, si duplicas la capacidad, la métrica disminuye un 50 por ciento. Esto permite que los datos de las métricas activen con precisión los eventos de escalado proporcional.

**Topics**
+ [Cómo funciona el seguimiento de objetivos](target-tracking-scaling-policy-overview.md)
+ [Creación de una política de escalado de seguimiento de destino](create-target-tracking-policy-cli.md)
+ [Eliminación de una política de escalado de seguimiento de destino](delete-target-tracking-policy.md)
+ [Uso de la calculadora de métricas](application-auto-scaling-target-tracking-metric-math.md)

# Cómo funciona el escalado de seguimiento de objetivos para Application Auto Scaling
<a name="target-tracking-scaling-policy-overview"></a>

En este tema se describe cómo funciona el escalado de seguimiento de objetivos y se presentan los elementos clave de una política de escalado de seguimiento de objetivos.

**Topics**
+ [Funcionamiento](#target-tracking-how-it-works)
+ [Elección de métricas](#target-tracking-choose-metrics)
+ [Definición del valor de destino](#target-tracking-define-target-value)
+ [Defina los periodos de recuperación](#target-tracking-cooldown)
+ [Consideraciones](#target-tracking-considerations)
+ [Políticas de escalado múltiples](#target-tracking-multiple-scaling-policies)
+ [Comandos de uso frecuente](#target-tracking-policy-commonly-used-commands)
+ [Recursos relacionados](#target-tracking-related-resources)
+ [Limitaciones](#target-tracking-limitations)

## Funcionamiento
<a name="target-tracking-how-it-works"></a>

Para utilizar el escalado de seguimiento de objetivos, debe crear una política de escalado de seguimiento de objetivos y especificar lo siguiente:
+ **Métrica**: una CloudWatch métrica para realizar un seguimiento, como el uso medio de la CPU o el recuento medio de solicitudes por objetivo.
+ **Valor objetivo**: el valor objetivo de la métrica, como el 50 por ciento de uso de la CPU o 1000 solicitudes por objetivo por minuto.

Application Auto Scaling crea y administra las CloudWatch alarmas que invocan la política de escalado y calcula el ajuste de escalado en función de la métrica y el valor objetivo. Amplía y reduce la capacidad en función de las necesidades para mantener la métrica en el valor objetivo especificado o en un valor próximo. 

Cuando la métrica está por encima del valor objetivo, Auto Scaling de aplicaciones se amplía añadiendo capacidad para reducir la diferencia entre el valor de la métrica y el valor objetivo. Cuando la métrica está por debajo del valor objetivo, Auto Scaling de aplicaciones se amplía al eliminar la capacidad.

Las actividades de escalado se realizan con periodos de recuperación entre ellos para evitar fluctuaciones rápidas de la capacidad. Si lo desea, puede configurar los periodos de recuperación para su política de escalado. 

En el siguiente diagrama se muestra información general de cómo funciona una política de escalado de seguimiento de destino cuando se completa la configuración.

![\[Diagrama general de una política de escalado y seguimiento de objetivos\]](http://docs.aws.amazon.com/es_es/autoscaling/application/userguide/images/target-tracking-scaling-policy.png)


Tenga en cuenta que la política de escalado de seguimiento de destino es más agresiva a la hora de agregar capacidad cuando la utilización aumenta que a la hora de eliminar la capacidad cuando la utilización disminuye. Por ejemplo, si la métrica especificada de la política alcanza su valor objetivo, la política supone que la aplicación ya está muy cargada. Por lo tanto, responde agregando capacidad proporcional al valor de métrica lo más rápido posible. Cuanto mayor sea la métrica, mayor será la capacidad agregada.

Cuando la métrica cae por debajo del valor objetivo, la política no se ampliará si calcula que si se elimina una unidad mínima de capacidad, es probable que la métrica vuelva a superar el valor objetivo. En este caso, ralentiza el escalado al eliminar la capacidad solo cuando el uso supera un umbral que está lo suficientemente por debajo del valor de destino (generalmente más del 10 % menos) para que se considere que se ha ralentizado el uso. La intención de este comportamiento más conservador es garantizar que la eliminación de capacidad solo se produzca cuando la aplicación ya no tenga demanda al mismo nivel alto que antes.

## Elección de métricas
<a name="target-tracking-choose-metrics"></a>

Puede crear políticas de escalado de seguimiento de destino con métricas predefinidas o personalizadas. 

Al crear una política de escalado de seguimiento de destino con un tipo de métrica predefinido, debe elegir una métrica de la lista de métricas predefinidas en [Métricas predefinidas para políticas de escalado de seguimiento de destino](monitoring-cloudwatch.md#predefined-metrics). 

Tenga en cuenta las siguientes consideraciones al elegir una métrica:
+ No todas las métricas personalizadas funcionan para el seguimiento de destino. La métrica debe ser una métrica de utilización válida y describir el nivel de actividad de un destino escalable. El valor de la métrica debe aumentar o disminuir proporcionalmente a la capacidad del destino escalable, de forma que los datos de la métrica se puedan utilizar para escalar proporcionalmente el destino escalable. 
+ Para utilizar la métrica `ALBRequestCountPerTarget`, debe especificar el parámetro `ResourceLabel` para identificar el grupo de destino asociado con la métrica. 
+ Cuando una métrica emite valores 0 reales a CloudWatch (por ejemplo,`ALBRequestCountPerTarget`), Application Auto Scaling puede escalar a 0 cuando no hay tráfico en la aplicación durante un período prolongado de tiempo. Para que su objetivo escalable se reduzca horizontalmente a 0 cuando no se enrutan solicitudes,, la capacidad mínima del objetivo escalable debe establecerse a 0. 
+ En lugar de publicar métricas nuevas para utilizarlas en su política de escalado, puede utilizar la matemáticas métricas para combinar las métricas existentes. Para obtener más información, consulte [Creación de una política de escalado de seguimiento de destino para Application Auto Scaling con la calculadora de métricas](application-auto-scaling-target-tracking-metric-math.md).
+ Para ver si un servicio que esté utilizando admite la especificación de métricas personalizadas en la consola del servicio, consulte la documentación correspondiente a dicho servicio. 
+ Le recomendamos que utilice métricas que estén disponibles en intervalos de un minuto para ayudarlo a escalar más rápido en respuesta a los cambios de uso. El seguimiento de objetivos evaluará las métricas agregadas con un grado de detalle de un minuto para todas las métricas predefinidas y personalizadas, pero es posible que la métrica subyacente publique datos con menos frecuencia. Por ejemplo, todas las métricas de Amazon EC2 se envían en intervalos de cinco minutos de forma predeterminada, pero se pueden configurar en un minuto (lo que se conoce como monitoreo detallado). Esta elección depende de los servicios individuales. La mayoría trata de utilizar el intervalo más corto posible.

## Definición del valor de destino
<a name="target-tracking-define-target-value"></a>

Al crear una política de escalado de seguimiento de destino, debe especificar un valor de destino. El valor de destino representa el uso o el rendimiento promedio óptimo para su aplicación. Para usar los recursos de manera rentable, establezca el valor objetivo lo más alto posible con un búfer razonable para aumentos inesperados de tráfico. Cuando la aplicación se escala horizontalmente de manera óptima para un flujo de tráfico normal, el valor de la métrica real debe ser igual al valor de destino, o estar justo por debajo de él.

Cuando una política de escalado se basa en el rendimiento, como el recuento de solicitudes por objetivo para un equilibrador de carga de aplicación, E/S de red u otras métricas de recuento, el valor objetivo representa el rendimiento promedio óptimo de una sola entidad (por ejemplo, un único objetivo del grupo objetivo del equilibrador de carga de aplicación), para un periodo de un minuto.

## Defina los periodos de recuperación
<a name="target-tracking-cooldown"></a>

Si lo desea, puede definir periodos de recuperación en su política de escalado de seguimiento de destinos.

Un periodo de recuperación especifica la cantidad de tiempo que la política de escalado espera a que una actividad de escalado anterior surta efecto.

Existen dos tipos de periodos de recuperación:
+ Con el *periodo de recuperación de escalado ascendente*, la intención es efectuar un escalo ascendente de forma continua (pero no excesivamente). Después de que Application Auto Scaling efectúe de forma correcta el escalado horizontal con una política de escalado, comienza a calcular el tiempo de recuperación. Una política de escalado no volverá a aumentar la capacidad deseada a menos que se desencadene un escalado horizontal mayor o finalice el periodo de recuperación. Mientras el periodo de recuperación del escalado ascendente esté en vigor, la capacidad agregada por la actividad inicial de escalado ascendente se considerará parte de la capacidad deseada para la siguiente actividad de escalado ascendente.
+ Con el *periodo de recuperación de reducción horizontal*, la intención es reducir horizontalmente con precaución para proteger la disponibilidad de la aplicación, de modo que las actividades de reducir horizontalmente se bloqueen hasta que haya transcurrido el periodo de recuperación de reducción horizontal. No obstante, si otra alarma desencadena una actividad de escalado ascendente durante el periodo de recuperación de escalado descendente, Application Auto Scaling realiza inmediatamente un escalado ascendente del destino. En este caso, el periodo de recuperación de la reducción horizontal se detiene y no se completa.

Cada periodo de recuperación se mide en segundos y solo se aplica a las actividades de escalado relacionadas con políticas de escalado. Durante un periodo de recuperación, cuando una acción programada comienza a la hora programada, puede desencadenar una actividad de escalado inmediatamente sin esperar a que finalice el periodo de recuperación.

Puede comenzar con los valores predeterminados, que se pueden ajustar más adelante. Por ejemplo, es posible que deba aumentar un periodo de recuperación para evitar que la política de escalado de seguimiento de destino sea demasiado agresiva con respecto a los cambios que se producen en cortos periodos de tiempo. 

**Valores predeterminados**

Application Auto Scaling proporciona un valor predeterminado de 600 ElastiCache y un valor predeterminado de 300 para los siguientes objetivos escalables:
+ WorkSpaces Flotas de aplicaciones
+ Clústeres de base de datos de Aurora
+ Servicios de ECS
+ Clústeres de Neptune
+ SageMaker Variantes de terminales de IA
+ SageMaker Componentes de inferencia de IA
+ SageMaker Simultaneidad aprovisionada sin servidor de IA
+ Spot Fleets
+ Pool de WorkSpaces
+ Recursos personalizados

Para todos los demás destinos escalables, el valor predeterminado es 0 o nulo:
+ Puntos de conexión de reconocedor de identidades y clasificación de documentos de Amazon Comprehend
+ Tablas de DynamoDB e índices secundarios globales
+ Tablas de Amazon Keyspaces
+ Simultaneidad aprovisionada de Lambda
+ Almacenamiento de bróker de Amazon MSK

Los valores nulos se tratan igual que los valores cero cuando Application Auto Scaling evalúa el periodo de recuperación.

Puede actualizar cualquiera de los valores predeterminados, incluidos los valores nulos, para establecer sus propios periodos de recuperación.

## Consideraciones
<a name="target-tracking-considerations"></a>

Las siguientes consideraciones se aplican al trabajar con las políticas de escalado de seguimiento de destino:
+ No cree, edite ni elimine las CloudWatch alarmas que se utilizan con una política de escalado de seguimiento de objetivos. Application Auto Scaling crea y administra las CloudWatch alarmas asociadas a sus políticas de escalado y seguimiento de objetivos y las elimina cuando ya no son necesarias.
+ Si a la métrica le faltan puntos de datos, el estado de la CloudWatch alarma cambia a`INSUFFICIENT_DATA`. Cuando esto ocurre, Application Auto Scaling no puede escalar su objetivo escalable hasta que se encuentren nuevos puntos de datos. Para obtener más información, consulta [Cómo configurar el modo en que CloudWatch las alarmas tratan los datos faltantes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) en la *Guía del CloudWatch usuario de Amazon*.
+ Si la métrica se presenta de forma dispersa por diseño, las matemáticas métricas pueden resultar útiles. Por ejemplo, para usar los valores más recientes, utilice la función `FILL(m1,REPEAT)`, donde `m1` es la métrica.
+ Es posible que haya diferencias entre el valor de destino y los puntos de datos de la métrica real. Esto se debe a que Auto Scaling de aplicaciones siempre actúa de forma conservadora y redondea hacia arriba o hacia abajo a la hora de determinar la cantidad de capacidad que debe agregar o quitar. Con esto se evita que se agrega capacidad insuficiente o se elimine demasiada capacidad. Sin embargo, en el caso de un destino escalable con poca capacidad, podría parecer que los puntos de datos de la métrica están muy alejados del valor objetivo. 

  Por ejemplo, supongamos que se establece un valor de destino del 50 por ciento de utilización de la CPU y el grupo de escalado automático lo supera. Es posible determinar que la adición de 1,5 instancias disminuirá la utilización de la CPU hasta aproximadamente el 50 por ciento. Como no es posible agregar 1,5 instancias, redondeamos hacia arriba y añadimos dos instancias. Esto podría reducir la utilización de la CPU a un valor inferior al 50 por ciento, pero garantizaría que la aplicación cuenta con los recursos suficientes. Del mismo modo, si determinamos que la eliminación de 0,5 instancias aumentaría la utilización de la CPU por encima del 50 %, decidiremos no reducir horizontalmente hasta que la métrica baje lo suficiente como para que la reducción horizontal no provoque oscilaciones. 

  En el caso de un destino escalable con mayor capacidad, cuando se agrega o elimina capacidad, la diferencia entre el valor de destino y los datos reales de la métrica es menor.
+ En las políticas de escalado de seguimiento de destino, se presupone que el escalado ascendente se lleva a cabo cuando la métrica está por encima del valor de destino. No puede utilizar una política de escalado de seguimiento de destinos si la métrica especificada está por debajo del valor de destino.

## Políticas de escalado múltiples
<a name="target-tracking-multiple-scaling-policies"></a>

Puede tener varias políticas de escalado de seguimiento de destino para un destino escalable, siempre que cada una de ellas utilice una métrica diferente. El objetivo de Auto Scaling de aplicaciones siempre es dar prioridad a la disponibilidad, por lo que su comportamiento varía en rol de si las políticas de seguimiento de destino están listas para el escalado horizontal o reducción horizontal. Realizará un escalado ascendente del destino escalable si cualquiera de las políticas de seguimiento de destino está lista para el escalado ascendente, pero solo realizará el escalado descendente si todas las políticas de seguimiento de destino (que tienen la parte de escalado descendente habilitada) están listas para el escalado descendente. 

Si varias políticas de escalado indican al destino escalable que escale horizontalmente o reduzca horizontalmente al mismo tiempo, Auto Scaling de aplicaciones se escala en función de la política que proporciona la mayor capacidad para escalar horizontalmente y reducir horizontalmente Esto brinda una mayor flexibilidad para abordar diferentes situaciones y garantizar que siempre haya capacidad suficiente para procesar las cargas de trabajo. 

Puede deshabilitar la parte de reducción horizontal de una política de escado de seguimiento de destino para utilizar un método para reducir horizontalmente diferente al que utiliza para escalar horizontalmente. Por ejemplo, puede utilizar una política de escalado por pasos para el escalado descendente mientras utiliza una política de escalado de seguimiento de destino para el escalado ascendente. 

Sin embargo, recomendamos precaución al utilizar políticas de escalado de seguimiento de destino con políticas de escalado por pasos, ya que los conflictos entre estas políticas pueden provocar un comportamiento no deseado. Por ejemplo, si la política de escalado por pasos inicia una actividad de reducción horizontal antes de que la política de seguimiento de destino esté lista para la reducción horizontal, la actividad de reducción horizontal no se bloqueará. Una vez completada la actividad de escalado descendente, la política de seguimiento de destino podría indicar al destino escalable que vuelva a realizar el escalado ascendente. 

Para las cargas de trabajo de naturaleza cíclica, también tiene la opción de automatizar los cambios de capacidad según una programación mediante escalado programado. Para cada acción programada, se pueden definir un nuevo valor mínimo de capacidad y otro nuevo máximo. Estos valores constituyen los límites de la política de escalado. La combinación de escalado programado y escalado de seguimiento de destino puede contribuir a reducir el impacto de un fuerte aumento de los niveles de utilización, cuando se necesita capacidad inmediatamente.

## Comandos de uso frecuente para la creación, administración y eliminación de políticas de escalado
<a name="target-tracking-policy-commonly-used-commands"></a>

Los comandos comúnmente utilizados para trabajar con políticas de escalado incluyen: 
+ [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)registrar AWS o personalizar los recursos como objetivos escalables (un recurso que Application Auto Scaling puede escalar) y suspender y reanudar el escalado. 
+ [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)para añadir o modificar políticas de escalado para un objetivo escalable existente.
+  [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)para devolver información sobre el escalamiento de las actividades en una AWS región. 
+ [describe-scaling-policies](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-policies.html)para devolver información sobre las políticas de escalado en una AWS región.
+ [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html)para eliminar una política de escalado. 

## Recursos relacionados
<a name="target-tracking-related-resources"></a>

Para obtener más información sobre cómo crear políticas de escalado de seguimiento de destino para grupos de Auto Scaling, consulte [Políticas de escalado de seguimiento de destino para Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) en la *Guía de usuario de Amazon EC2 Auto Scaling*. 

## Limitaciones
<a name="target-tracking-limitations"></a>

Las siguientes son limitaciones al usar la política de escalado de seguimiento de destino:
+ El destino escalable no puede ser un clúster de Amazon EMR. Las políticas de escalado de seguimiento de destino no son compatible con Amazon EMR.
+ Cuando un clúster de Amazon MSK es el destino escalable, reducir horizontalmente se desactiva y no se puede habilitar.
+ No puede utilizar las operaciones de la `RegisterScalableTarget` `PutScalingPolicy` API para actualizar un plan de AWS Auto Scaling escalado.
+ El acceso a la consola para ver, agregar, actualizar o eliminar políticas de escalado de seguimiento de destino en recursos escalables depende del recurso que utilice. Para obtener más información, consulte [Servicios de AWS que puede usar con Application Auto Scaling](integrated-services-list.md).

# Cree una política de escalado de seguimiento de objetivos para Application Auto Scaling mediante el AWS CLI
<a name="create-target-tracking-policy-cli"></a>

En este ejemplo, se utilizan AWS CLI comandos para crear una política de almacenamiento objetivo para una flota de Amazon EC2 Spot. Para un destino escalable diferente, especifique su espacio de nombres en `--service-namespace`, su dimensión escalable en `--scalable-dimension` y su ID de recurso en `--resource-id`.

Cuando utilice el AWS CLI, recuerde que sus comandos se ejecutan en la Región de AWS configuración de su perfil. Si desea ejecutar los comandos en otra región, cambie la región predeterminada de su perfil o utilice el parámetro `--region` con el comando.

**Topics**
+ [Paso 1: Registro de un destino escalable](#target-tracking-register-scalable-target)
+ [Paso 2: Crear una política de escalado de seguimiento de destino](#create-target-tracking-policy)
+ [Paso 3: Descripción de políticas de escalado de seguimiento de destino](#describe-target-tracking-policy)

## Paso 1: Registro de un destino escalable
<a name="target-tracking-register-scalable-target"></a>

Si aún no lo ha hecho, registre el destino escalable. Utilice el [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)comando para registrar un recurso específico en el servicio de destino como un destino escalable. En el ejemplo siguiente se registra una solicitud de flota de spot con Auto Scaling de aplicaciones. Auto Scaling de aplicaciones puede escalar el número de instancias de flota de spot en un mínimo de 2 instancias y un máximo de 10. Reemplace cada *user input placeholder* por su propia información.

**Linux, macOS o Unix**

```
aws application-autoscaling register-scalable-target --service-namespace ec2 \
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity \
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
  --min-capacity 2 --max-capacity 10
```

**Windows**

```
aws application-autoscaling register-scalable-target --service-namespace ec2 ^
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^
  --min-capacity 2 --max-capacity 10
```

**Output**  
Si se ejecuta correctamente, este comando devolverá el ARN del destino escalable. A continuación, se muestra un ejemplo del resultado.

```
{
    "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
}
```

## Paso 2: Crear una política de escalado de seguimiento de destino
<a name="create-target-tracking-policy"></a>

Para crear una política de escalado de seguimiento de destino, puede utilizar los siguientes ejemplos para empezar.

**Para crear una política de escalado de seguimiento de destino**

1. Utilice el siguiente comando `cat` para almacenar un valor de destino para su política de escalado y una especificación de métricas predefinida en un archivo JSON llamado `config.json` en su directorio principal. A continuación, se incluye un ejemplo de configuración de seguimiento de destino que mantiene la utilización media de la CPU en un 50 por ciento.

   ```
   $ cat ~/config.json
   {
     "TargetValue": 50.0,
     "PredefinedMetricSpecification": 
       {
         "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization"
       }
   }
   ```

   Para obtener más información, consulte la *Referencia [PredefinedMetricSpecification](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html)de la API Application Auto Scaling*.

   También puede usar una métrica personalizada para el escalado mediante la creación de una especificación de métrica personalizada y la adición de valores para cada parámetro desde CloudWatch. ​A continuación, se muestra un ejemplo de configuración de seguimiento de destino que mantiene la utilización media de la métrica especificada en 100.

   ```
   $ cat ~/config.json
   {
      "TargetValue": 100.0,
      "CustomizedMetricSpecification":{
         "MetricName": "MyUtilizationMetric",
         "Namespace": "MyNamespace",
         "Dimensions": [
            {
               "Name": "MyOptionalMetricDimensionName",
               "Value": "MyOptionalMetricDimensionValue"
            }
         ],
         "Statistic": "Average",
         "Unit": "Percent"
      }
   }
   ```

   Para obtener más información, consulte la *Referencia [CustomizedMetricSpecification](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_CustomizedMetricSpecification.html)de la API Application Auto Scaling*.

1. Utilice el siguiente comando [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) junto con el archivo `config.json` que ha creado para generar una política de escalado denominada `cpu50-target-tracking-scaling-policy`.

   **Linux, macOS o Unix**

   ```
   aws application-autoscaling put-scaling-policy --service-namespace ec2 \
     --scalable-dimension ec2:spot-fleet-request:TargetCapacity \
     --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
     --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling \
     --target-tracking-scaling-policy-configuration file://config.json
   ```

   **Windows**

   ```
   aws application-autoscaling put-scaling-policy --service-namespace ec2 ^
     --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^
     --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^
     --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling ^
     --target-tracking-scaling-policy-configuration file://config.json
   ```

**Output**  
Si se ejecuta correctamente, este comando devuelve los nombres ARNs y los nombres de CloudWatch las dos alarmas creadas en su nombre. A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:resource/ec2/spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE:policyName/cpu50-target-tracking-scaling-policy",
       "Alarms": [
           {
               "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
               "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
           },
           {
               "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
               "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
           }
       ]
   }
   ```

## Paso 3: Descripción de políticas de escalado de seguimiento de destino
<a name="describe-target-tracking-policy"></a>

Puede describir todas las políticas de escalado del espacio de nombres de servicio especificado mediante el siguiente comando [describe-scaling-policies](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-policies.html).

```
aws application-autoscaling describe-scaling-policies --service-namespace ec2
```

Puede filtrar los resultados a solo las políticas de escalado de seguimiento de destino mediante el parámetro `--query`. Para obtener más información acerca de syntax para `query`, consulte [Control de la salida de comandos de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html) en la *Guía del usuario de AWS Command Line Interface *.

**Linux, macOS o Unix**

```
aws application-autoscaling describe-scaling-policies --service-namespace ec2 \
  --query 'ScalingPolicies[?PolicyType==`TargetTrackingScaling`]'
```

**Windows**

```
aws application-autoscaling describe-scaling-policies --service-namespace ec2 ^
  --query "ScalingPolicies[?PolicyType==`TargetTrackingScaling`]"
```

**Output**  
A continuación, se muestra un ejemplo del resultado.

```
[
    {
        "PolicyARN": "PolicyARN",
        "TargetTrackingScalingPolicyConfiguration": {
            "PredefinedMetricSpecification": {
                "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization"
            },
            "TargetValue": 50.0
        },
        "PolicyName": "cpu50-target-tracking-scaling-policy",
        "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity",
        "ServiceNamespace": "ec2",
        "PolicyType": "TargetTrackingScaling",
        "ResourceId": "spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
        "Alarms": [
            {
                "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
                "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
            },
            {
                "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
                "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
            }
        ],
        "CreationTime": 1515021724.807
    }
]
```

# Elimine una política de escalado de seguimiento de objetivos para Application Auto Scaling mediante el AWS CLI
<a name="delete-target-tracking-policy"></a>

Cuando termine de usar una política de escalado de seguimiento de destino, puede eliminarla con el comando [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html).

El siguiente comando elimina la política de escalado de seguimiento de destino especificada para la solicitud de flota de spot indicada. También elimina las CloudWatch alarmas que Application Auto Scaling creó en su nombre.

**Linux, macOS o Unix**

```
aws application-autoscaling delete-scaling-policy --service-namespace ec2 \
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity \
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
  --policy-name cpu50-target-tracking-scaling-policy
```

**Windows**

```
aws application-autoscaling delete-scaling-policy --service-namespace ec2 ^
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^
  --policy-name cpu50-target-tracking-scaling-policy
```

# Creación de una política de escalado de seguimiento de destino para Application Auto Scaling con la calculadora de métricas
<a name="application-auto-scaling-target-tracking-metric-math"></a>

Con las matemáticas métricas, puede consultar varias CloudWatch métricas y utilizar expresiones matemáticas para crear nuevas series temporales basadas en estas métricas. Puede visualizar la serie temporal resultante en la consola de CloudWatch y agregarla 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*. 

Las siguientes consideraciones se aplican a las expresiones de la calculadora de métricas:
+ Puede consultar cualquier CloudWatch métrica disponible. Cada métrica es una combinación única de nombre de métrica, espacio de nombres y cero o más dimensiones. 
+ Puede usar 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. 
+ Todas las expresiones utilizadas en la especificación de una métrica deben devolver en última instancia una única serie temporal.
+ Puede comprobar que una expresión matemática métrica es válida mediante la CloudWatch consola o la API. CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)

**Topics**
+ [Ejemplo: cola de tareas pendientes de Amazon SQS por tarea](#metric-math-sqs-queue-backlog)
+ [Limitaciones](#metric-math-limitations)

## Ejemplo: cola de tareas pendientes de Amazon SQS por tarea
<a name="metric-math-sqs-queue-backlog"></a>

Para calcular la cola de tareas pendientes de Amazon SQS por tarea, se toma el número aproximado de mensajes disponibles para recuperar de la cola y se divide por el número de tareas de Amazon ECS ejecutándose en el servicio. Para obtener más información, consulte [Auto Scaling de Amazon Elastic Container Service (ECS) mediante métricas personalizadas](https://aws.amazon.com/blogs/containers/amazon-elastic-container-service-ecs-auto-scaling-using-custom-metrics/) en el blog de AWS informática.

La lógica de la expresión es la siguiente:

 `sum of (number of messages in the queue)/(number of tasks that are currently in the RUNNING state)`

A continuación, la información de sus CloudWatch métricas es la siguiente.


| ID | CloudWatch métrica | Estadística | Periodo | 
| --- | --- | --- | --- | 
| m1 | ApproximateNumberOfMessagesVisible | Sum | 1 minuto | 
| m2 | RunningTaskCount | Media | 1 minuto | 

Su ID de cálculo de métrica y expresión son los siguientes.


| ID | Expression | 
| --- | --- | 
| e1 | (m1)/(m2) | 

El siguiente diagrama ilustra la arquitectura de esta métrica:

![\[Diagrama de arquitectura de Application Auto Scaling que utiliza colas\]](http://docs.aws.amazon.com/es_es/autoscaling/application/userguide/images/sqs-custom-metric-diagram.png)


**Para utilizar esta calculadora de métricas para crear una política de escalado de seguimiento de destino (AWS CLI)**

1. Guarde la expresión de la calculadora de métricas como parte de una especificación métrica personalizada en un archivo JSON denominado `config.json`. 

   Utilice el siguiente ejemplo como ayuda para comenzar. Reemplace cada *user input placeholder* por su propia información.

   ```
   {
       "CustomizedMetricSpecification": {
           "Metrics": [
               {
                   "Label": "Get the queue size (the number of messages waiting to be processed)",
                   "Id": "m1",
                   "MetricStat": {
                       "Metric": {
                           "MetricName": "ApproximateNumberOfMessagesVisible",
                           "Namespace": "AWS/SQS",
                           "Dimensions": [
                               {
                                   "Name": "QueueName",
                                   "Value": "my-queue"
                               }
                           ]
                       },
                       "Stat": "Sum"
                   },
                   "ReturnData": false
               },
               {
                   "Label": "Get the ECS running task count (the number of currently running tasks)",
                   "Id": "m2",
                   "MetricStat": {
                       "Metric": {
                           "MetricName": "RunningTaskCount",
                           "Namespace": "ECS/ContainerInsights",
                           "Dimensions": [
                               {
                                   "Name": "ClusterName",
                                   "Value": "my-cluster"
                               },
                               {
                                   "Name": "ServiceName",
                                   "Value": "my-service"
                               }
                           ]
                       },
                       "Stat": "Average"
                   },
                   "ReturnData": false
               },
               {
                   "Label": "Calculate the backlog per instance",
                   "Id": "e1",
                   "Expression": "m1 / m2",
                   "ReturnData": true
               }
           ]
       },
       "TargetValue": 100
   }
   ```

   Para obtener más información, consulte la *Referencia [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)de la API Application 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 CloudWatch las métricas:   
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://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 

1. Para crear esta política, ejecute el [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)comando con el archivo JSON como entrada, como se muestra en el siguiente ejemplo.

   ```
   aws application-autoscaling put-scaling-policy --policy-name sqs-backlog-target-tracking-scaling-policy \
     --service-namespace ecs --scalable-dimension ecs:service:DesiredCount --resource-id service/my-cluster/my-service \
     --policy-type TargetTrackingScaling --target-tracking-scaling-policy-configuration file://config.json
   ```

   Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política y la ARNs de las dos CloudWatch alarmas creadas en su nombre.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy: 8784a896-b2ba-47a1-b08c-27301cc499a1:resource/ecs/service/my-cluster/my-service:policyName/sqs-backlog-target-tracking-scaling-policy",
       "Alarms": [
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0",
               "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0"
           },
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4",
               "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4"
           }
       ]
   }
   ```
**nota**  
Si este comando arroja un error, asegúrese de haber actualizado la versión AWS CLI local a la última versión.

## Limitaciones
<a name="metric-math-limitations"></a>
+ El tamaño máximo de solicitud es 50 KB. Este es el tamaño total de la carga útil de la solicitud de [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)API cuando se utilizan las matemáticas métricas en la definición de la política. Si supera este límite, Application Auto Scaling rechaza la solicitud.
+ Los siguientes servicios no se admiten cuando se utilizan métricas matemáticas con las políticas de escalado de seguimiento de destino:
  + Amazon Keyspaces (para Apache Cassandra) 
  + DynamoDB
  + Amazon EMR
  + Amazon MSK
  + Amazon Neptune