

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.

# 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
    }
]
```