

# Usar padrões históricos para escalar os serviços do Amazon ECS com escalabilidade preditiva
<a name="predictive-auto-scaling"></a>

A escalabilidade preditiva utiliza dados de carga anteriores dos fluxos de tráfego para analisar padrões diários ou semanais. Em seguida, ela usa essa análise para prever necessidades futuras e aumentar proativamente as tarefas em seu serviço, conforme necessário.

O ajuste de escala automático preditivo é mais útil nas situações a seguir.
+ Tráfego cíclico: maior utilização de recursos durante o horário comercial e utilização reduzida de recursos durante a noite e nos fins de semana.
+ Padrões recorrentes de workloads intermitentes: exemplos incluem processamento em lote, testes ou análise periódica de dados.
+ Aplicações com tempo de inicialização longo: isso pode afetar a performance da aplicação durante eventos de aumentar a escala horizontalmente, causando latência perceptível.

Se suas aplicações demoram muito para inicializar e o tráfego aumenta em um padrão regular, considere o uso de escalabilidade preditiva. Ela ajuda você a escalar mais rapidamente aumentando proativamente o número de tarefas para cargas previstas, em vez de usar políticas de escalabilidade dinâmica, como Rastreamento de destino ou Escalabilidade em etapas, sozinhas. Ao ajudar você a evitar a possibilidade de provisionar excessivamente o número de tarefas, a escalabilidade preditiva também pode economizar dinheiro.

Por exemplo, considere uma aplicação com elevado índice de utilização durante o horário comercial e baixo uso durante a noite. No início de cada dia útil, a escalabilidade preditiva pode aumentar a escala para execução de tarefas antes do primeiro fluxo de tráfego. Isso ajuda sua aplicação a manter alta disponibilidade e performance ao passar de um período de menor utilização para um período de maior utilização. Você não precisa esperar que a escalabilidade dinâmica reaja à mudança de tráfego. Você também não precisa gastar tempo revisando os padrões de carga da aplicação e tentando alocar a quantidade certa de tarefas usando a escalabilidade programada.

O ajuste de escala preditivo é um recurso de nível de serviço que dimensiona a tarefa do seu serviço independentemente do dimensionamento da capacidade computacional subjacente (por exemplo, EC2 ou Fargate). Para o Fargate, a AWS gerencia e ajusta automaticamente a escala da capacidade subjacente com base nos requisitos da tarefa. Para a capacidade do EC2, é possível usar provedores de capacidade do grupo do Auto Scaling para escalar automaticamente as instâncias do EC2 subjacentes com base nos requisitos de ajuste de escala das suas tarefas.

**Topics**
+ [Visão geral da escalabilidade preditiva](#predictive-auto-scaling-overview)
+ [Criar uma política de escalabilidade preditiva](predictive-scaling-create-policy.md)
+ [Avaliar as políticas de escalabilidade preditiva](predictive-scaling-graphs.md)
+ [Substituir a previsão](predictive-scaling-overriding-forecast-capacity.md)
+ [Usar métricas personalizadas](predictive-scaling-custom-metrics.md)

## Saiba como o ajuste de escala preditivo funciona com o Amazon ECS
<a name="predictive-auto-scaling-overview"></a>

Aqui você pode conhecer as considerações relacionadas o uso da escalabilidade preditiva, como ela funciona e quais são os limites.

### Considerações sobre o uso da escalabilidade preditiva
<a name="predictive-auto-scaling-considerations"></a>
+ Você deseja garantir que a escalabilidade preditiva seja adequada à sua workload. Você pode verificar isso configurando políticas de escalabilidade no modo **somente previsão** e ver a recomendação feita pelo console. Você deve avaliar a previsão e as recomendações antes de começar a usar a escalabilidade preditiva.
+ Antes que a escalabilidade preditiva possa iniciar a previsão, pelo menos 24 horas de dados históricos são necessários. Quanto mais dados históricos estiverem disponíveis, mais eficaz será a previsão, sendo duas semanas o ideal. Também será necessário aguardar 24 horas antes que a escalabilidade preditiva possa gerar novas previsões quando um serviço do Amazon ECS é excluído e um novo serviço é criado. Uma maneira de acelerar isso é usar métricas personalizadas para agregar métricas no novo serviço e no serviço antigo do Amazon ECS.
+ Escolha uma métrica de carga que represente com precisão a carga total da sua aplicação e que seja o aspecto mais importante a ser escalado.
+ A escalabilidade dinâmica com escalabilidade preditiva ajuda você a acompanhar de perto a demanda da sua aplicação para que você possa reduzir a escala durante períodos de calmaria e aumentá-la durante aumentos inesperados no tráfego. Quando várias políticas de escalabilidade estão ativas, cada política determina o número de tarefas desejadas de forma independente, e esse número é definido como o maior entre eles.
+ É possível usar a escalabilidade preditiva junto com suas políticas de escalabilidade dinâmica, como rastreamento de destino ou escalabilidade em etapas, para que suas aplicações sejam dimensionadas com base em padrões históricos e em tempo real. Por si só, a escalabilidade preditiva não reduz a escala para suas tarefas. 
+ Se você usar um perfil personalizado ao chamar a API `register-scalable-target`, poderá receber um erro dizendo que a política de escalabilidade preditiva só pode funcionar com o SLR habilitado. Nesse caso, você deve chamar `register-scalable-target` novamente, mas sem role-arn. Use SLR ao registrar o destino escalável e chame a API `put-scaling-policy`.

### Como a escalabilidade preditiva funciona
<a name="predictive-auto-scaling-details"></a>

Use a escalabilidade preditiva criando uma política de escala preditiva que especifique a métrica do CloudWatch a ser monitorada e analisada. A escalabilidade preditiva deve ter pelo menos 24 horas de dados para começar a prever valores futuros.

Depois que você cria a política, a escala preditiva começa a analisar os dados de métricas dos últimos 14 dias para identificar padrões. Essa análise é usada para gerar as próximas 48 horas de previsões horárias de requisitos. Os dados mais recentes do CloudWatch são usados ​​para atualizar a previsão a cada seis horas. À medida que novos dados são recebidos, a escalabilidade preditiva é capaz de melhorar continuamente a precisão das previsões futuras.

Quando você ativa a escala preditiva pela primeira vez, ela é executada no modo *somente de previsão*. Eae gera previsões nesse modo, mas não escala seu serviço do Amazon ECS com base nessas previsões. Isso significa que você pode avaliar a exatidão e a adequação da previsão. Você pode visualizar os dados de previsão usando a operação da API `GetPredictiveScalingForecast` ou o Console de gerenciamento da AWS.

Quando você decidir começar a usar a escala preditiva, alterne a política de escalabilidade para o modo *prever e escalar*. O cenário a seguir ocorre nesse modo.

Seu serviço do Amazon ECS é escalado no início de cada hora com base na previsão para essa hora, por padrão. Você pode optar por começar mais cedo usando a propriedade `SchedulingBufferTime` na operação da API `PutScalingPolicy`. Isso faz com que novas tarefas sejam iniciadas antes da demanda prevista e concede a elas tempo para inicializar e se preparar para lidar com o tráfego.

### Limite máximo de tarefas
<a name="predictive-scaling-maximum-tasks-limit"></a>

Ao registrar serviços do Amazon ECS para escalabilidade, você define um número máximo de tarefas que podem ser iniciadas por serviço. Por padrão, quando políticas de escalabilidade estão definidas, não é possível aumentar o número de tarefas além do limite máximo.

Como alternativa, é possível permitir que o número máximo de tarefas do serviço seja aumentado automaticamente se a previsão se aproximar ou exceder o número máximo de tarefas do serviço do Amazon ECS.

**Atenção**  
Tenha cuidado ao permitir que o número máximo de tarefas seja aumentado automaticamente. Isso pode fazer com que mais instâncias do que o pretendido sejam executadas se a capacidade máxima aumentada não for monitorada e gerenciada. O número máximo de tarefas aumentado passará a ser o novo número máximo normal de tarefas para o serviço do Amazon ECS até que você o atualize manualmente. O número máximo de tarefas não diminui automaticamente de volta para o máximo original.

### Regiões compatíveis
<a name="predictive-auto-scaling-supported-regions"></a>
+ Leste dos EUA (Norte da Virgínia)
+ Leste dos EUA (Ohio)
+ Oeste dos EUA (N. da Califórnia)
+ Oeste dos EUA (Oregon)
+ África (Cidade do Cabo)
+ Ásia-Pacífico (Hong Kong)
+ Ásia-Pacífico (Jacarta)
+ Ásia-Pacífico (Mumbai)
+ Ásia-Pacífico (Osaka)
+ Ásia-Pacífico (Seul)
+ Ásia-Pacífico (Singapura)
+ Ásia-Pacífico (Sydney)
+ Ásia-Pacífico (Tóquio)
+ Canadá (Central)
+ China (Pequim)
+ China (Ningxia)
+ Europa (Frankfurt)
+ Europa (Irlanda)
+ Europa (Londres)
+ Europa (Milão)
+ Europa (Paris)
+ Europa (Estocolmo)
+ Oriente Médio (Bahrein)
+ South America (São Paulo)
+ AWS GovCloud (Leste dos EUA)
+ AWS GovCloud (Oeste dos EUA)