

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Políticas de escalabilidade com monitoramento do objetivo para o Amazon EC2 Auto Scaling
<a name="as-scaling-target-tracking"></a>

Uma política de escalabilidade de rastreamento de destinos escala automaticamente a aplicação com base em um valor de métrica de destino. Ele se adapta automaticamente aos padrões de uso exclusivos de suas aplicações individuais. Isso permite que a aplicação mantenha uma performance ideal e alta utilização de suas instâncias do EC2 para obter eficiência de custos sem necessidade de intervenção manual.

Com o rastreamento de destinos, você seleciona uma métrica e um valor de destino para representar a utilização média ideal ou o nível de throughput para a aplicação. O Amazon EC2 Auto Scaling cria e CloudWatch gerencia os alarmes que invocam eventos de escalabilidade quando a métrica se desvia da meta. Isso é semelhante a como um termostato mantém a temperatura desejada.

Por exemplo, digamos que você tenha uma aplicação que seja executada em duas instâncias e queira que a utilização de CPU do grupo do Auto Scaling permaneça em cerca de 50% quando a carga na aplicação mudar. Isso fornece capacidade extra para lidar com picos de tráfego sem manter um número excessivo de recursos ociosos. 

Você pode satisfazer essa necessidade criando uma política de escalabilidade com monitoramento de objetivo visando uma utilização média de 50% da CPU. Em seguida, o Application Auto Scaling aumentará a escala horizontalmente (aumento da capacidade) quando a CPU exceder 50% para lidar com o aumento de carga. Ele reduzirá a escala horizontalmente (diminuição da capacidade) quando a CPU estiver abaixo de 50% para otimizar os custos durante os períodos de baixa utilização.

**Topics**
+ [Várias políticas de escalabilidade de monitoramento de objetivo](#target-tracking-multiple-policies)
+ [Escolher métricas](#target-tracking-choose-metrics)
+ [Definir valor de objetivo](#target-tracking-define-target-value)
+ [Definir o tempo de aquecimento da instância](#as-target-tracking-scaling-warmup)
+ [Considerações](#target-tracking-considerations)
+ [Criar uma política de dimensionamento com monitoramento do objetivo](policy_creating.md)
+ [Crie uma política de rastreamento de destino usando métricas de alta resolução para uma resposta mais rápida](policy-creating-high-resolution-metrics.md)
+ [Criação de uma política de escalabilidade com monitoramento de destino com a matemática em métricas](ec2-auto-scaling-target-tracking-metric-math.md)

## Várias políticas de escalabilidade de monitoramento de objetivo
<a name="target-tracking-multiple-policies"></a>

Para ajudar a otimizar o desempenho de escalonamento, você pode usar várias políticas de escalabilidade com monitoramento de objetivo juntas desde que cada uma delas use uma métrica diferente. Por exemplo, utilização e throughput podem promover influência cruzada. Sempre que uma dessas métricas muda, geralmente isso significa que outras métricas também serão afetadas. Portanto, o uso de várias métricas fornece informações adicionais sobre a carga em seu grupo do Auto Scaling e melhora a tomada de decisões ao determinar quanta capacidade adicionar ao seu grupo. Isso pode ajudar o Amazon EC2 Auto Scaling a tomar decisões mais informadas ao determinar a capacidade a ser adicionada ao seu grupo. 

A intenção do Amazon EC2 Auto Scaling é sempre priorizar a disponibilidade. O grupo do Auto Scaling será aumentado a escala horizontalmente se qualquer uma das políticas de monitoramento do destino estiver pronta para ser aumentado a escala horizontalmente. Ele será reduzido a escala horizontalmente se todas as políticas de monitoramento do destino (com a parte de redução da escala horizontalmente ativada) estiverem prontas para serem reduzidas a escala horizontalmente.

## Escolher métricas
<a name="target-tracking-choose-metrics"></a>

É possível criar políticas de escalabilidade de rastreamento de destino com métricas predefinidas ou personalizadas. As métricas predefinidas facilitam o acesso às métricas mais usadas para escalabilidade. As métricas personalizadas permitem que você escale outras CloudWatch métricas disponíveis, incluindo [métricas de alta resolução](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Resolution_definition) que são publicadas em intervalos mais precisos na ordem de alguns segundos. É possível publicar suas próprias métricas de alta resolução ou métricas publicadas por outros serviços da AWS .

Para obter mais informações sobre a criação de políticas de rastreamento de alvos usando métricas de alta resolução, consulte [Crie uma política de rastreamento de destino usando métricas de alta resolução para uma resposta mais rápida](policy-creating-high-resolution-metrics.md).

O rastreamento de destino oferece suporte às métricas predefinidas a seguir:
+ `ASGAverageCPUUtilization`: média de utilização da CPU do grupo do Auto Scaling.
+ `ASGAverageNetworkIn`: número médio de bytes recebidos em todas as interfaces de rede pelo grupo do Auto Scaling.
+ `ASGAverageNetworkOut`: número médio de bytes enviados em todas as interfaces de rede pelo grupo do Auto Scaling.
+ `ALBRequestCountPerTarget`: número médio de solicitações do Application Load Balancer por destino para seu grupo do Auto Scaling.

**Importante**  
Outras informações valiosas sobre as métricas de utilização da CPU, E/S de rede e contagem de solicitações do Application Load Balancer por destino podem ser encontradas no tópico [Listar as métricas CloudWatch disponíveis para suas instâncias no Guia do usuário do Amazon EC2 e CloudWatch as métricas do seu](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) *tópico Application Load Balancer no Guia do usuário* [para Application Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html) Balancers, *respectivamente*.

Você pode escolher outras CloudWatch métricas disponíveis ou suas próprias métricas CloudWatch especificando uma métrica personalizada. Para obter um exemplo que especifica uma especificação métrica personalizada para uma política de escalabilidade de rastreamento de metas usando o AWS CLI, consulte. [Exemplo de políticas de escalabilidade para o AWS CLI](examples-scaling-policies.md)

Lembre-se do seguinte ao escolher uma métrica:
+ Recomendamos que você somente use as métricas que estejam disponíveis em intervalos de um minuto ou menos para ajudar a escalar mais rapidamente em resposta a alterações na utilização. Métricas publicadas em intervalos menores permitem que a política de rastreamento de metas detecte e responda mais rapidamente às mudanças na utilização do seu grupo do Auto Scaling.
+ Se você escolher métricas predefinidas que sejam publicadas pelo Amazon EC2, como utilização de CPU, recomendamos que você habilite o monitoramento detalhado. Por padrão, todas as métricas do Amazon EC2 são publicadas em intervalos de cinco minutos, mas podem ser configuradas para um intervalo menor, de um minuto, ativando o monitoramento detalhado. Para obter informações sobre como habilitar o monitoramento detalhado, consulte [Configurar monitoramento para instâncias do Auto Scaling](enable-as-instance-metrics.md).
+ Nem todas as métricas personalizadas funcionam para rastreamento de destino. A métrica deve ser de utilização válida e descrever o quão ocupada uma instância está. O valor da métrica deve aumentar e diminuir em proporção ao número das instâncias no grupo do Auto Scaling. Isso é para que os dados da métrica possam ser usados para expandir ou reduzir o número de instâncias. Por exemplo, a utilização da CPU de um grupo do Auto Scaling funcionará (ou seja, a métrica `CPUUtilization` do Amazon EC2 com a dimensão da métrica `AutoScalingGroupName`) se a carga no grupo do Auto Scaling for distribuída entre as instâncias. 
+ As métricas a seguir não funcionam para rastreamento de destino:
  + O número de solicitações recebidas pelo balanceador de carga voltadas para o grupo do Auto Scaling (ou seja, a métrica `RequestCount` do Elastic Load Balancing). O número de solicitações recebidas pelo balanceador de carga não é alterado com base na utilização do grupo do Auto Scaling.
  + A latência da solicitação do balanceador de carga (ou seja, a métrica `Latency` do Elastic Load Balancing). A latência da solicitação pode aumentar com base no aumento da utilização, mas não necessariamente muda de forma proporcional.
  + A CloudWatch métrica de fila do Amazon SQS. `ApproximateNumberOfMessagesVisible` O número de mensagens em uma fila pode não mudar proporcionalmente ao tamanho do grupo do Auto Scaling que processa mensagens da fila. Contudo, uma métrica personalizada que meça o número de mensagens na fila por instância do EC2 no grupo do Auto Scaling pode funcionar. Para obter mais informações, consulte [Ajuste de escala baseado no Amazon SQS](as-using-sqs-queue.md).
+ Para usar a métrica `ALBRequestCountPerTarget`, é necessário especificar o parâmetro `ResourceLabel` a fim de identificar o grupo de destino do balanceador de carga que está associado à métrica. Para obter um exemplo que especifica o `ResourceLabel` parâmetro para uma política de escalabilidade de rastreamento de metas usando o AWS CLI, consulte. [Exemplo de políticas de escalabilidade para o AWS CLI](examples-scaling-policies.md)
+ Quando uma métrica emite valores reais de 0 para CloudWatch (por exemplo,`ALBRequestCountPerTarget`), um grupo de Auto Scaling pode escalar até 0 quando não há tráfego para seu aplicativo por um período prolongado. A capacidade mínima do grupo deve estar definida como 0 para que seu grupo do Auto Scaling reduza a escala horizontalmente para 0 quando não houver solicitação roteada para ele.
+ Em vez de publicar novas métricas para usar em sua política de escalabilidade, é possível usar a matemática métrica para combinar métricas existentes. Para obter mais informações, consulte [Criação de uma política de escalabilidade com monitoramento de destino com a matemática em métricas](ec2-auto-scaling-target-tracking-metric-math.md).

## Definir valor de objetivo
<a name="target-tracking-define-target-value"></a>

Ao criar uma política de escalabilidade com monitoramento de objetivo, é necessário especificar um valor para o objetivo. O valor-alvo representa o uso ou o throughput médio ideal para o grupo do Auto Scaling. Para usar os recursos de maneira econômica, defina o valor do objetivo com o número mais alto possível considerando um buffer razoável para aumentos inesperados de tráfego. Quando sua aplicação aumentar a escala horizontalmente para um fluxo de tráfego normal, o valor efetivo da métrica deve estar no valor desejado ou logo abaixo dele. 

Quando uma política de dimensionamento é baseada no throughput, como o número de solicitações por destino para um Application Load Balancer, E/S de rede ou outras métricas de contagem, o valor-alvo representa o throughput médio ideal de uma única instância em um período de um minuto.

## Definir o tempo de aquecimento da instância
<a name="as-target-tracking-scaling-warmup"></a>

Como opção, você pode especificar o número de segundos necessários para o aquecimento de uma instância recém-ativada. Até que o tempo de aquecimento especificado expire, uma instância não é contada para as métricas de instância do EC2 agregadas do grupo do Auto Scaling.

Enquanto as instâncias estiverem no período de aquecimento, suas políticas de escalabilidade somente aumentarão a escala na horizontal se o valor da métrica das instâncias que não estão se aquecendo for maior do que a utilização de destino da política.

Se o grupo voltar a aumentar a escala na horizontal, as instâncias que ainda estão se aquecendo serão contadas como parte da capacidade desejada para a próxima ação de aumento da escala na horizontal. A intenção é expandir de forma contínua (mas não excessivamente).

Enquanto a atividade de aumentar a escala na horizontal estiver em andamento, todas as atividades de reduzir a escala na horizontal iniciadas por políticas de escalabilidade serão bloqueadas até que as instâncias terminem de aquecer. Quando as instâncias terminarem de se aquecer, se ocorrer um evento de reduzir a escala horizontalmente, todas as instâncias atualmente em processo de encerramento serão contabilizadas na capacidade atual do grupo ao calcular a nova capacidade desejada. Portanto, não removemos mais instâncias do que o necessário do grupo do Auto Scaling.

**Valor padrão**  
Se nenhum valor for definido, a política de escalabilidade usará o valor padrão, que é o valor para o [aquecimento da instância padrão](ec2-auto-scaling-default-instance-warmup.md) definido para o grupo. Se o aquecimento da instância padrão for nulo, ele retornará ao valor de [desaquecimento padrão](ec2-auto-scaling-scaling-cooldowns.md#set-default-cooldown). Recomendamos usar o aquecimento padrão da instância para facilitar a atualização de todas as políticas de escalabilidade quando o horário de aquecimento mudar.

## Considerações
<a name="target-tracking-considerations"></a>

As considerações a seguir são aplicáveis ao trabalhar com políticas de escalabilidade com monitoramento de objetivo:
+ Não crie, edite ou exclua os CloudWatch alarmes usados com uma política de escalabilidade de rastreamento de metas. O Amazon EC2 Auto Scaling cria e CloudWatch gerencia os alarmes associados às suas políticas de escalabilidade de rastreamento de destino e pode editá-los, substituí-los ou excluí-los quando necessário para personalizar a experiência de escalabilidade de seus aplicativos e seus padrões de utilização variáveis. 
+ Uma política de escalonamento com monitoramento de objetivo prioriza a disponibilidade durante períodos de níveis flutuantes de tráfego, reduzindo a escala na horizontal de maneira mais gradual quando o tráfego está diminuindo. Se você quiser maior controle, uma política de escalabilidade por etapas pode ser a melhor opção. É possível desabilitar temporariamente a parte de redução de uma política com rastreamento de destino. Isso ajuda a manter um número mínimo de instâncias para implantações com êxito. 
+ Se faltarem pontos de dados na métrica, isso fará com que o estado do CloudWatch alarme mude para`INSUFFICIENT_DATA`. Quando isso acontece, o Amazon EC2 Auto Scaling não poderá escalar seu grupo até que novos pontos de dados sejam encontrados.
+ A matemática métrica pode ser útil se a métrica for intencionalmente relatada de maneira esparsa. Por exemplo, para usar os valores mais recentes, use a função `FILL(m1,REPEAT)`, na qual `m1` é a métrica.
+ É possível ver lacunas entre o valor de destino e os pontos de dados de métrica reais. Isso ocorre porque agimos de maneira conservadora arredondando para cima ou para baixo, ao determinarmos quantas instâncias adicionar ou remover. Isso evita a adição de um número insuficiente de instâncias ou remova muitas instâncias. No entanto, para grupos do Auto Scaling menores, com um número menor de instâncias, a utilização do grupo pode parecer distante do valor do objetivo.

  Por exemplo, suponhamos que você defina um valor de objetivo de 50% para a utilização da CPU, e o seu grupo do Auto Scaling exceda o objetivo. Podemos determinar que a adição de 1,5 instância diminuirá a utilização da CPU em cerca de 50%. Como não é possível adicionar 1,5 instância, arredondamos para cima e adicionamos duas instâncias. Isso pode diminuir a utilização da CPU para um valor abaixo de 50%, mas garante que sua aplicação tenha recursos suficientes para oferecer suporte a ele. Da mesma forma, se determinarmos que a remoção de 0,5 instâncias aumenta a utilização da CPU para mais de 50%, optaremos por não aumentar a escala até que a métrica diminua o suficiente para que pensemos que a escalabilidade não causará oscilação. 

  Para grupos do Auto Scaling maiores, com mais instâncias, a utilização é distribuída entre um maior número de instâncias, caso em que adicionar ou remover instâncias causa menos de uma lacuna entre o valor do objetivo e os pontos de dados de métrica reais.
+ Uma política de escalabilidade com monitoramento do objetivo pressupõe que ela deve aumentar a escalabilidade de seu grupo do Auto Scaling quando a métrica especificada estiver acima do valor do objetivo. Você não pode usar uma política de escalabilidade com monitoramento do objetivo para aumentar horizontalmente a escala do seu grupo do Auto Scaling quando a métrica especificada estiver abaixo do valor do objetivo.

# Criar uma política de dimensionamento com monitoramento do objetivo
<a name="policy_creating"></a>

Para criar uma política de escala de monitoramento do destino para o grupo do Auto Scaling, use um dos métodos a seguir. 

Antes de começar, confirme se sua métrica preferida está disponível em intervalos de 1 minuto (em comparação com o intervalo padrão de 5 minutos das métricas do Amazon EC2).

------
#### [ Console ]

**Para criar uma política de escalabilidade com monitoramento do objetivo para um grupo do Auto Scaling novo**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Selecione **Criar grupo do Auto Scaling**.

1. Nas etapas 1, 2 e 3, escolha as opções conforme desejado e prossiga para a **Etapa 4: Configurar políticas de escalabilidade e tamanho do grupo**.

1. Em **Escalabilidade**, especifique o intervalo no qual você deseja escalar atualizando a **capacidade mínima desejada** e a **capacidade máxima desejada**. Essas duas configurações permitem que seu grupo do Auto Scaling seja escalado dinamicamente. Para obter mais informações, consulte [Definir limites de escalabilidade para seu grupo do Auto Scaling](asg-capacity-limits.md).

1. Em **Escalabilidade automática**, escolha **Política de escalabilidade com rastreamento do destino**.

1. Para definir a política, faça o seguinte:

   1. Especifique um nome para a política.

   1. Escolha uma métrica para o **Tipo de métrica**. 

      Se tiver escolhido **Application Load Balancer request count per target** (Contagem de solicitações do Application Load Balancer por destino), escolha um grupo de destino em **Target group** (Grupo de destino).

   1. Especifique um **Target value (Valor de destino)** para a métrica.

   1. (Opcional) Em **Aquecimento das instâncias**, atualize o valor de aquecimento de instância conforme necessário.

   1. (Opcional) Selecione **Disable scale in to create only a scale-out policy (Desabilitar redução para criar somente uma política de expansão)**. Isso permite que você crie uma política de redução separada de um tipo diferente, se desejado.

1. Prossiga para criar o grupo do Auto Scaling. Sua política de escalabilidade será criada depois que o grupo do Auto Scaling for criado. 

**Para criar uma política de escalabilidade com monitoramento do objetivo para um grupo do Auto Scaling existente**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Marque a caixa de seleção ao lado do seu grupo do Auto Scaling.

   Um painel dividido é aberto na parte inferior da página. 

1. Verificar se os limites de escalabilidade estão definidos adequadamente. Por exemplo, se sua capacidade desejada já estiver no máximo, especifique um novo máximo para aumentar a escala horizontalmente. Para obter mais informações, consulte [Definir limites de escalabilidade para seu grupo do Auto Scaling](asg-capacity-limits.md).

1. Na guia **Automatic scaling** (Escalabilidade automática), em **Dynamic scaling policies** (Políticas dinâmicas de escalabilidade), selecione **Create dynamic scaling policy** (Criar política dinâmica de escalabilidade).

1. Para definir a política, faça o seguinte:

   1. Em **Tipo de política**, mantenha o padrão de **Escalabilidade de rastreamento de destino**. 

   1. Especifique um nome para a política.

   1. Escolha uma métrica para o **Tipo de métrica**. É possível escolher apenas um tipo de métrica. Para usar mais de uma métrica, crie várias políticas.

      Se você escolheu **Application Load Balancer request count per target** (Contagem de solicitações do balanceador de carga da aplicação por destino), escolha um grupo de destino em **Target group** (Grupo de destino).

   1. Especifique um **Target value (Valor de destino)** para a métrica.

   1. (Opcional) Em **Aquecimento das instâncias**, atualize o valor de aquecimento de instância conforme necessário.

   1. (Opcional) Selecione **Disable scale in to create only a scale-out policy (Desabilitar redução para criar somente uma política de expansão)**. Isso permite que você crie uma política de redução separada de um tipo diferente, se desejado.

1. Escolha **Criar**.

------
#### [ AWS CLI ]

Para criar uma política de escalabilidade de rastreamento de destino, é possível usar o exemplo a seguir para ajudar a começar. Substitua cada *user input placeholder* por suas próprias informações.

**nota**  
Para obter mais exemplos, consulte [Exemplo de políticas de escalabilidade para o AWS CLI](examples-scaling-policies.md).

**Para criar uma política de escalabilidade com rastreamento do destino (AWS CLI)**

1. Use o comando `cat` a seguir para especificar um valor de destino para sua política de escalabilidade e uma especificação de métrica personalizada em um arquivo JSON chamado `config.json` em seu diretório inicial. Veja a seguir um exemplo de configuração de rastreamento de destino que mantém a utilização média da CPU em 50%.

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

   Para obter mais informações, consulte a [PredefinedMetricSpecification](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PredefinedMetricSpecification.html)Referência da API *Amazon EC2 Auto Scaling*.

1. Use o comando [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html), juntamente com o arquivo `config.json` criado na etapa anterior, para criar sua política de escalabilidade.

   ```
   aws autoscaling put-scaling-policy --policy-name cpu50-target-tracking-scaling-policy \
     --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \
     --target-tracking-configuration file://config.json
   ```

   Se for bem-sucedido, esse comando retornará os nomes ARNs e os dois CloudWatch alarmes criados em seu nome.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/cpu50-target-tracking-scaling-policy",
       "Alarms": [
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e",
               "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e"
           },
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2",
               "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2"
           }
       ]
   }
   ```

------

# Crie uma política de rastreamento de destino usando métricas de alta resolução para uma resposta mais rápida
<a name="policy-creating-high-resolution-metrics"></a>

O rastreamento de metas oferece suporte a CloudWatch métricas de alta resolução com pontos de dados de segundo nível que são publicados em intervalos menores que um minuto. Configure políticas de rastreamento de metas para monitorar a utilização por meio de CloudWatch métricas de alta resolução para aplicativos que têm padrões de demanda voláteis, como APIs de atendimento ao cliente, serviços de streaming ao vivo, sites de comércio eletrônico e processamento de dados sob demanda. Para obter maior precisão na correspondência entre capacidade e demanda, o rastreamento de destino usa esse monitoramento refinado para detectar e responder às mudanças na demanda e na utilização de suas instâncias do EC2 com mais rapidez.

Para obter mais informações sobre como publicar suas métricas em alta resolução, consulte [Publicar métricas personalizadas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) no *Guia do CloudWatch usuário da Amazon*. [Para acessar e publicar métricas do EC2, como a utilização da CPU em alta resolução, talvez você queira usar CloudWatch o agente.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)

## Regiões da AWS
<a name="policy-creating-high-resolution-metrics-regions"></a>

O rastreamento de alvos usando métricas de alta resolução está disponível em todos Regiões da AWS , exceto no AWS GovCloud (US) Regions.

## Como funciona a política de rastreamento de destino com métricas de alta resolução
<a name="policy-high-resolution-metrics-how-works"></a>

Você cria políticas de rastreamento de destino definindo a métrica que deseja rastrear e o valor de destino que deseja manter para a métrica. Para escalar uma métrica de alta resolução, especifique o nome da métrica e defina o período métrico no qual o rastreamento de destino observa essa métrica a um valor inferior a 60 segundos. Atualmente, o intervalo mais baixo com suporte é de 10 segundos. É possível publicar sua métrica em intervalos menores do que isso.

**nota**  
Não há suporte a um período métrico maior que 60.

Você pode configurar o rastreamento de metas em uma única CloudWatch métrica ou consultar várias CloudWatch métricas e usar expressões matemáticas para criar novas séries temporais únicas com base nessas métricas. Ambas as opções permitem que você defina o período métrico.

## Exemplos
<a name="high-resolution-metrics-examples"></a>

**Exemplo 1**  
O exemplo a seguir cria uma política de rastreamento de metas com base em uma CloudWatch métrica de alta resolução. A métrica é publicada com resolução de 10 segundos. Ao definir o período, é possível habilitar o rastreamento de metas para monitorar essa métrica com uma granularidade de 10 segundos. Substitua cada *user input placeholder* por suas próprias informações.

```
$ cat ~/config.json
{
  "TargetValue": 100.0,
  "CustomizedMetricSpecification": {
      "MetricName": "MyHighResolutionMetric",
      "Namespace": "MyNamespace",
      "Dimensions": [
        {
          "Name": "MyOptionalDimensionName",
          "Value": "MyOptionalMetricDimensionValue"
        }
      ],
      "Statistic": "Average",
      "Unit": "None"
      "Period": "10                  
  }
}
```

**Exemplo 2**  
É possível usar expressões matemáticas métricas para combinar várias métricas em uma única série temporal para escalabilidade. A matemática métrica é particularmente útil para converter métricas existentes em média por instância. A conversão de métricas é essencial porque o rastreamento de destino pressupõe que a métrica seja inversamente proporcional à capacidade do grupo do Auto Scaling. Portanto, quando a capacidade aumenta, a métrica deve diminuir quase na mesma proporção.

Por exemplo, suponha que você tenha uma métrica que represente os trabalhos pendentes a serem processados pela aplicação. É possível usar matemática métrica para dividir os trabalhos pendentes pela capacidade de execução do grupo do Auto Scaling. O Auto Scaling publica a métrica de capacidade com granularidade de 1 minuto. Portanto, não haverá nenhum valor para essa métrica em intervalos de menos de um minuto. Se você quiser usar uma resolução mais alta para escalar, isso pode levar a uma incompatibilidade de período entre a capacidade e a métrica de trabalho pendente. Para evitar essa incompatibilidade, recomendamos que você use a expressão FILL para preencher os valores ausentes com o número da capacidade registrado no carimbo de data/hora do minuto anterior. 

O exemplo a seguir usa matemática métrica para dividir a métrica de trabalhos pendentes pela capacidade. Por um período, estamos definindo as duas métricas em 10 segundos. Como a métrica é publicada em intervalos de 1 minuto, estamos usando a operação FILL na métrica de capacidade.

Para usar matemática métrica para modificar várias métricas

```
{
    "CustomizedMetricSpecification": {
        "Metrics": [
            {
                "Label": "Pending jobs to be processed",
                "Id": "m1",
                "MetricStat": {
                    "Metric": {
                        "MetricName": "MyPendingJobsMetric",
                        "Namespace": "Custom",
                    },
                    "Stat": "Sum"
                    "Period": 10
                },
                "ReturnData": false
            },
            {
                "Label": "Get the running instance capacity (matching the period to that of the m1)",
                "Id": "m2",
                "MetricStat": {
                    "Metric": {
                        "MetricName": "GroupInServiceInstances",
                        "Namespace": "AWS/AutoScaling",
                        "Dimensions": [
                            {
                                "Name": "AutoScalingGroupName",
                                "Value": "my-asg"
                            }
                        ]
                    },
                    "Stat": "Average"
                    "Period": 10
                },
                "ReturnData": false
            },
            {
                "Label": "Calculate the pending job per capacity (note the use of the FILL expression)",
                "Id": "e1",
                "Expression": "m1 / FILL(m2,REPEAT)",
                "ReturnData": true
            }
        ]
    },
    "TargetValue": 100
}
```

## Considerações
<a name="high-resolution-considerations"></a>

Considere os fatores a seguir ao usar rastreamento de destino e métricas de alta resolução.
+ Para garantir que você não tenha pontos de dados ausentes que possam levar a resultados de escalonamento automático indesejados, sua CloudWatch métrica deve ser publicada com a mesma resolução ou maior do que o período especificado.
+ Defina o valor alvo como o valor per-instance-per-minute métrico que você deseja manter para seu grupo de Auto Scaling. Definir um valor de destino apropriado é crucial se você usar uma métrica cujo valor pode se multiplicar com base no período da métrica. Por exemplo, qualquer métrica baseada em contagem, como contagens de solicitações ou trabalhos pendentes que usem a estatística SUM, terá um valor métrico diferente dependendo do período escolhido. Você ainda deve presumir que está estabelecendo uma meta em relação à média por minuto.
+ Embora não haja taxas adicionais para usar o Amazon EC2 Auto Scaling, você deve pagar pelos recursos, como CloudWatch instâncias, métricas e alarmes do Amazon EC2. CloudWatch Os alarmes de alta resolução criados no exemplo anterior têm preços diferentes dos alarmes padrão. CloudWatch Para obter mais informações sobre CloudWatch preços, consulte [Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/).
+ O rastreamento de destino exige que as métricas representem a utilização média por instância de suas instâncias do EC2. Para conseguir isso, é possível usar [operações matemáticas métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) como parte da configuração da política de rastreamento de destino. Divida sua métrica pela capacidade de execução do seu grupo do Auto Scaling. Certifique-se de que o mesmo período métrico seja definido para cada uma das métricas que você usar para criar uma única série temporal. Se essas métricas forem publicadas em intervalos diferentes, use a operação FILL na métrica com o intervalo mais alto para preencher os pontos de dados ausentes.

# Criação de uma política de escalabilidade com monitoramento de destino com a matemática em métricas
<a name="ec2-auto-scaling-target-tracking-metric-math"></a>

Usando a matemática métrica, você pode consultar várias CloudWatch métricas e usar expressões matemáticas para criar novas séries temporais com base nessas métricas. Você pode visualizar as séries temporais resultantes no CloudWatch console e adicioná-las aos painéis. Para obter mais informações sobre matemática métrica, consulte [Usando matemática métrica](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) no *Guia CloudWatch do usuário da Amazon*. 

As considerações a seguir se aplicam a expressões matemática em métricas:
+ Você pode consultar qualquer CloudWatch métrica disponível. Cada métrica corresponde a uma combinação exclusiva de nome de métrica, espaço nominal e zero ou mais dimensões. 
+ Você pode usar qualquer operador aritmético (\$1 - \$1/^), função estatística (como AVG ou SUM) ou outra função compatível. CloudWatch 
+ Você pode usar as métricas e os resultados de outras expressões matemáticas nas fórmulas da expressão matemática. 
+ Qualquer expressão usada em uma especificação de métrica deve eventualmente retornar uma única série temporal.
+ Você pode verificar se uma expressão matemática métrica é válida usando o CloudWatch console ou a CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)API.

## Exemplo: lista de pendências da fila do Amazon SQS por instância
<a name="metric-math-sqs-queue-backlog"></a>

Para calcular a lista de pendências da fila do Amazon SQS por instância, use o número aproximado de mensagens disponíveis para recuperação da fila e divida esse número pela capacidade de execução do grupo do, que corresponde ao número de instâncias no estado`InService`. Para obter mais informações, consulte [Ajuste de escala baseado no Amazon SQS](as-using-sqs-queue.md).

A lógica da expressão é a seguinte:

 `sum of (number of messages in the queue)/(number of InService instances)`

Então, suas informações CloudWatch métricas são as seguintes.


| ID | CloudWatch métrica | Estatística | Período | 
| --- | --- | --- | --- | 
| m1 | ApproximateNumberOfMessagesVisible | Soma | 1 minuto | 
| m2 | GroupInServiceInstances | Média | 1 minuto | 

O ID e a expressão matemáticos da métrica são os seguintes:


| ID | Expressão | 
| --- | --- | 
| e1 | (m1)/(m2) | 

O diagrama a seguir ilustra a arquitetura desse padrão.

![\[Diagrama de arquitetura do Amazon EC2 Auto Scaling usando filas\]](http://docs.aws.amazon.com/pt_br/autoscaling/ec2/userguide/images/sqs-as-custom-metric-diagram.png)


**Para usar essa matemática em métricas na criação de uma política de escalabilidade com monitoramento de destino (AWS CLI)**

1. Armazene a expressão matemática em métricas como parte de uma especificação de métrica personalizada em um arquivo JSON denominado `config.json`. 

   Use o exemplo a seguir como auxílio para começar. Substitua cada *user input placeholder* por suas próprias informações.

   ```
   {
       "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 group size (the number of InService instances)",
                   "Id": "m2",
                   "MetricStat": {
                       "Metric": {
                           "MetricName": "GroupInServiceInstances",
                           "Namespace": "AWS/AutoScaling",
                           "Dimensions": [
                               {
                                   "Name": "AutoScalingGroupName",
                                   "Value": "my-asg"
                               }
                           ]
                       },
                       "Stat": "Average"
                   },
                   "ReturnData": false
               },
               {
                   "Label": "Calculate the backlog per instance",
                   "Id": "e1",
                   "Expression": "m1 / m2",
                   "ReturnData": true
               }
           ]
       },
       "TargetValue": 100
   }
   ```

   Para obter mais informações, consulte a [TargetTrackingConfiguration](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TargetTrackingConfiguration.html)Referência da API *Amazon EC2 Auto Scaling*.
**nota**  
Veja a seguir alguns recursos adicionais que podem ajudá-lo a encontrar nomes de métricas, namespaces, dimensões e estatísticas para CloudWatch métricas:   
Para obter informações sobre as métricas disponíveis para AWS serviços, consulte [AWS serviços que publicam CloudWatch métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) no *Guia CloudWatch do usuário da Amazon*.
[Para obter o nome exato da métrica, o namespace e as dimensões (se aplicável) de uma CloudWatch métrica com o AWS CLI, consulte list-metrics.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/list-metrics.html) 

1. Para criar essa política, execute o [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html)comando usando o arquivo JSON como entrada, conforme demonstrado no exemplo a seguir.

   ```
   aws autoscaling put-scaling-policy --policy-name sqs-backlog-target-tracking-scaling-policy \
     --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \
     --target-tracking-configuration file://config.json
   ```

   Se for bem-sucedido, esse comando retornará o Amazon Resource Name (ARN) da política e o ARNs dos dois CloudWatch alarmes criados em seu nome.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/sqs-backlog-target-tracking-scaling-policy",
       "Alarms": [
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e",
               "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e"
           },
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2",
               "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2"
           }
       ]
   }
   ```
**nota**  
Se esse comando gerar um erro, verifique se você atualizou o AWS CLI localmente para a versão mais recente.