

# SUS02-BP01 Escalar a infraestrutura com a carga dos usuários
<a name="sus_sus_user_a2"></a>

 Identifique períodos de baixa utilização ou sem utilização e reduza a escala dos recursos verticalmente para eliminar a capacidade em excesso e melhorar a eficiência. 

**Antipadrões comuns:**
+ Você não dimensiona sua infraestrutura de acordo com a carga de usuários.
+ Você dimensiona sua infraestrutura manualmente o tempo todo.
+ Você deixa a capacidade aumentada após um evento de escalabilidade, em vez de reduzir novamente.

 **Benefícios do estabelecimento desta prática recomendada:** A configuração e os testes da elasticidade da workload ajudam a reduzir o impacto ambiental da workload, economizar dinheiro e manter as referências da performance. Você pode aproveitar a elasticidade na nuvem para dimensionar automaticamente a capacidade durante e depois de picos de carga dos usuários para garantir que esteja usando apenas o número exato de recursos necessários para atender às necessidades dos clientes.

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação de implementação
<a name="implementation-guidance"></a>
+  A elasticidade corresponde à oferta de recursos que você tem face à demanda por estes recursos. Instâncias, contêineres e funções oferecem mecanismos para elasticidade, seja em combinação com a escalabilidade automática ou como um recurso do serviço. Use elasticidade em sua arquitetura para garantir que a workload possa reduzir a escala verticalmente com rapidez e facilidade durante o período de baixa carga de usuários: 
  +  Uso [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) para verificar se você tem o número correto de instâncias do Amazon EC2 disponíveis para processar a carga da aplicação. 
  +  Uso [Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/what-is-application-auto-scaling.html) para dimensionar automaticamente os recursos para serviços individuais da AWS além do Amazon EC2, como funções do Lambda ou serviços do Amazon Elastic Container Service (Amazon ECS). 
  +  Uso [o dimensionador automático de cluster do Kubernetes](https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/) para dimensionar automaticamente os clusters do Kubernetes na AWS. 
+  Verifique se as métricas para aumentar ou reduzir a escala verticalmente são validadas em relação ao tipo de workload que está sendo implantada. Se você estiver implantando uma aplicação de transcodificação de vídeo, espera-se que a utilização da CPU seja de 100%, e essa não deve ser sua métrica principal. Você pode usar uma [métrica personalizada](https://aws.amazon.com/blogs/mt/create-amazon-ec2-auto-scaling-policy-memory-utilization-metric-linux/) (como utilização de memória) para a política de escalabilidade, se necessário. Para escolher as métricas certas, considere a seguinte orientação para o Amazon EC2: 
  +  A métrica deve ser uma métrica de utilização válida e descrever o quanto uma instância está ocupada. 
  +  O valor da métrica deve aumentar ou diminuir proporcionalmente com o número de instâncias no grupo do Auto Scaling. 
+  Uso [a escalabilidade dinâmica](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) em vez de [escalabilidade manual](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-manual-scaling.html) para seu grupo do Auto Scaling. Também recomendamos que você use [políticas de escalabilidade de monitoramento do objetivo](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) em sua escalabilidade dinâmica. 
+  Verifique se as implantações de workload podem lidar com eventos de aumento e redução vertical da escala. Crie cenários de teste para eventos de redução da escala a fim de garantir que a carga de trabalho se comporte conforme o esperado. Você pode usar o **histórico de atividades** para testar e verificar uma atividade de escalabilidade para um grupo do Auto Scaling. 
+  Avalie sua workload com relação a padrões previsíveis e, ao antecipar alterações previstas e planejadas na demanda, escale proativamente. Uso [escalabilidade preditiva com o Amazon EC2 Auto Scaling](https://aws.amazon.com/blogs/compute/introducing-native-support-for-predictive-scaling-with-amazon-ec2-auto-scaling/) para eliminar a necessidade de superprovisionar capacidade. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Conceitos básicos do Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html) 
+  [Escalabilidade preditiva para o EC2 com Machine Learning](https://aws.amazon.com/blogs/aws/new-predictive-scaling-for-ec2-powered-by-machine-learning/) 
+  [Analisar o comportamento dos usuários usando o Amazon OpenSearch Service, o Amazon Data Firehose e o Kibana](https://aws.amazon.com/blogs/database/analyze-user-behavior-using-amazon-elasticsearch-service-amazon-kinesis-data-firehose-and-kibana/) 
+  [O que é o Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [O que é o AWS X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Logs de fluxo da VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [Monitorar a carga do banco de dados com o Performance Insights no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 
+  [Introdução de suporte nativo para escalabilidade preditiva com o Amazon EC2 Auto Scaling](https://aws.amazon.com/blogs/compute/introducing-native-support-for-predictive-scaling-with-amazon-ec2-auto-scaling/) 
+  [Como criar uma política do Amazon EC2 Auto Scaling baseada em uma métrica de utilização de memória (Linux)](https://aws.amazon.com/blogs/mt/create-amazon-ec2-auto-scaling-policy-memory-utilization-metric-linux/) 
+  [Apresentando o Karpenter: um dimensionador automático de clusters do Kubernetes de código aberto e alta performance](https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/) 

 **Vídeos relacionados:** 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1) (Computação melhor, mais rápida e mais barata: otimização de custos com o Amazon EC2)](https://www.youtube.com/watch?v=_dvh4P2FVbw) 

 **Exemplos relacionados:** 
+  Laboratório: Exemplos de grupos do Amazon EC2 Auto Scaling 
+  [Laboratório: Implementação de escalabilidade automática com o Karpenter](https://www.eksworkshop.com/beginner/085_scaling_karpenter/) 