

# SUS02-BP01 Escalar a infraestrutura da workload dinamicamente
<a name="sus_sus_user_a2"></a>

Use a elasticidade da nuvem e escale sua infraestrutura de forma dinâmica para corresponder a oferta de recursos de nuvem à demanda e evitar capacidade superprovisionada em sua workload.

**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 dessa prática recomendada: **configurar e testar a elasticidade da workload ajuda a corresponder de maneira eficiente a oferta de recursos de nuvem à demanda e evitar a capacidade superprovisionada. Você pode aproveitar a elasticidade na nuvem para escalar automaticamente a capacidade durante e depois de picos de demanda para garantir que esteja usando apenas o número exato de recursos necessários para atender aos requisitos do seu negócio.

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

## Orientações para a implementação
<a name="implementation-guidance"></a>

 A nuvem fornece a flexibilidade de expandir ou reduzir seus recursos dinamicamente por meio de diversos mecanismos para atender a mudanças na demanda. O equilíbrio ideal entre a oferta e a demanda oferece o menor impacto ambiental para uma workload. 

 A demanda pode ser fixa ou variável, exigindo métricas e automação para garantir que o gerenciamento não se torne um gasto excessivo. Os aplicativos podem aumentar ou diminuir a escala verticalmente ao modificar o tamanho da instância e horizontalmente ao modificar o número de instâncias, ou uma combinação de ambos. 

 Você pode usar diversas abordagens diferentes para corresponder a oferta de recursos com a demanda. 
+  **Abordagem de monitoramento de meta:** monitore sua métrica de escalabilidade e aumente ou diminua automaticamente a capacidade conforme necessário. 
+  **Escalabilidade preditiva:** escale antecipadamente em relação às tendências diárias e semanais. 
+  **Abordagem com base na programação:** defina sua própria programação de escalabilidade de acordo com as alterações de carga previsíveis. 
+  **Escalabilidade de serviços:** escolha serviços (como tecnologia sem servidor) que são escalados nativamente por design ou fornecem escalabilidade automática como um recurso. 

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

## Etapas da implementação
<a name="implementation-steps"></a>
+ A elasticidade corresponde à oferta de recursos que você tem face à demanda por estes recursos. Instâncias, contêineres e funções fornecem mecanismos para elasticidade, seja em combinação com a escalabilidade automática ou como um recurso do serviço. A AWS fornece uma variedade de mecanismos de escalabilidade automática para garantir que as workloads possam reduzir a escala verticalmente de forma rápida e fácil durante períodos de baixa carga de usuário. Veja alguns exemplos de mecanismos de escalabilidade automática:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2023-04-10/framework/sus_sus_user_a2.html)
+  A escalabilidade geralmente é discutida em relação a serviços de computação, como instâncias do Amazon EC2 ou funções do AWS Lambda. Considere a configuração de serviços não relacionados a computação, como o [Amazon DynamoDB](https://aws.amazon.com/dynamodb/), e grave unidades de capacidade ou fragmentos do [Amazon Kinesis Data Streams](https://aws.amazon.com/kinesis/data-streams/) para corresponder à demanda. 
+  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. 
+  Use a [escalabilidade dinâmica](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) em vez da [escalabilidade manual](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-manual-scaling.html) para o seu grupo do Auto Scaling. Também recomendamos que você use as [políticas de escalabilidade de monitoramento de meta](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) na sua escalabilidade dinâmica. 
+  Verifique se as implantações da workload podem lidar com eventos de aumento e redução horizontal da escala. Crie cenários de teste para eventos de redução horizontal da escala para verificar se a workload se comporta conforme o esperado e não afeta a experiência do usuário (como perda da sessão persistente). Você também pode usar o [histórico de atividades](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html) para verificar a 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. Com a escalabilidade preditiva, é possível eliminar a necessidade de superprovisionar a capacidade. Para obter mais detalhes, consulte [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/). 

## 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/Amazon/latest/monitoring/WhatIs.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 ao 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/) 
+  [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/) 
+  [Aprofundamento do Amazon ECS Cluster Auto Scaling](https://aws.amazon.com/blogs/containers/deep-dive-on-amazon-ecs-cluster-auto-scaling/) 

 **Vídeos relacionados:** 
+  [Build a cost-, energy-, and resource-efficient compute environment](https://www.youtube.com/watch?v=8zsC5e1eLCg) (Criar um ambiente de computação eficiente em termos de custo, energia e recursos) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) (Computação melhor, mais rápida e mais barata: otimização de custos com o Amazon EC2) 

 **Exemplos relacionados:** 
+  [Laboratório: Exemplos de grupos do Amazon EC2 Auto Scaling](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) 
+  [Laboratório: Implementação de escalabilidade automática com o Karpenter](https://www.eksworkshop.com/beginner/085_scaling_karpenter/) 