PERF02-BP05 Usar a elasticidade disponível dos recursos
A nuvem fornece a flexibilidade de expandir e reduzir os recursos dinamicamente por meio de diversos mecanismos para atender a mudanças na demanda. Ao combinar essa elasticidade com as métricas relacionadas à computação, uma workload pode responder automaticamente às mudanças para usar apenas os recursos necessários.
Antipadrões comuns:
-
Você provisiona em excesso para cobrir possíveis picos.
-
Você reage a alarmes aumentando a capacidade manualmente.
-
Você aumenta a capacidade sem considerar o tempo de provisionamento.
-
Você deixa a capacidade aumentada após um evento de escalabilidade, em vez de reduzir novamente.
-
Você monitora métricas que não refletem diretamente os verdadeiros requisitos das workloads.
Benefícios do estabelecimento dessa prática recomendada: a demanda pode ser fixa, variável, seguir um padrão ou apresentar picos. Combinar a oferta com a demanda oferece o menor custo para uma workload. Monitorar, testar e configurar a elasticidade da workload vai otimizar o desempenho, economizar dinheiro e melhorar a confiabilidade à medida que as demandas de uso mudarem. Embora uma abordagem manual seja possível em relação a isso, seria impraticável em escalas maiores. Uma abordagem automática e baseada em métricas garante que os recursos atendam às demandas em qualquer momento.
Nível de risco exposto se esta prática recomendada não é estabelecida: médio
Orientações para a implementação
A automatização baseada em métricas deve ser usada para aproveitar a vantagem da elasticidade com o objetivo de que o suprimento dos recursos que você tem corresponda à demanda dos recursos que a workload exige. Por exemplo, é possível usar métricas do Amazon CloudWatch para monitorar os recursos
Combinada com as métricas relacionadas à computação, uma workload pode responder automaticamente a mudanças e utilizar um conjunto ideal de recursos para atingir sua meta. Você também deve planejar o tempo de provisionamento e possíveis falhas nos recursos.
Instâncias, contêineres e funções oferecem mecanismos para elasticidade, seja como um recurso do serviço, na forma de Application Auto Scaling
Valide as métricas para aumentar ou reduzir recursos elásticos em relação ao tipo de workload que está sendo implantada. Como exemplo, 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. Como alternativa, você pode medir em relação ao comprimento da fila de trabalhos de transcodificação aguardando para escalar seus tipos de instância.
As implantações da workload precisam lidar com eventos de aumento e redução vertical da escala. Reduzir os componentes da carga de trabalho com segurança é tão essencial quanto aumentar a escala de recursos quando a demanda exige.
Crie cenários de teste para eventos de escalabilidade a fim de garantir que a workload se comporte conforme o esperado.
Etapas da implementação
-
Utilize dados históricos para analisar as demandas de recursos da workload ao longo do tempo. Faça perguntas específicas, como:
-
A workload está estável e aumentando ao longo do tempo em uma taxa conhecida?
-
A workload aumenta e diminui em padrões sazonais e repetíveis?
-
A workload apresenta picos? Os picos podem ser antecipados ou previstos?
-
-
Utilize serviços de monitoramento e dados históricos o máximo possível.
-
A marcação de recursos pode ajudar com o monitoramento. Ao usar tags, consulte as práticas recomendadas de marcação. Além disso, as tags podem ajudar a gerenciar, identificar e organizar recursos.
-
Com a AWS, é possível usar várias abordagens diferentes para corresponder o suprimento com a demanda. As práticas recomendadas do pilar de otimização de custos (de COST09-BP01 até COST09-03) descrevem como usar as seguintes abordagens de custos:
-
Crie cenários de teste para eventos de redução da escala verticalmente a fim de garantir que a workload se comporte conforme o esperado.
-
A maior parte das instâncias que não são de produção deve ser interrompida quando não estiver em uso.
-
Para as necessidades de armazenamento ao usar o Amazon Elastic Block Store (Amazon EBS), aproveite a elasticidade baseada em volume.
-
Para o Amazon Elastic Compute Cloud (Amazon EC2)
, considere usar grupos do Auto Scaling, o que permite otimizar a performance e o custo, aumentando automaticamente o número de instâncias de computação durante picos de demanda e diminuindo a capacidade quando a demanda é reduzida.
Recursos
Práticas recomendadas relacionadas:
Documentos relacionados:
Vídeos relacionados:
-
Amazon EC2 foundations (CMP211-R2)
(Fundamentos do Amazon EC2 (CMP211-R2)) -
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) -
Deliver high performance ML inference with AWS Inferentia (CMP324-R1)
(Entregar inferência de ML de alto desempenho com o AWS Inferentia (CMP324-R1)) -
Optimize performance and cost for your AWS compute (CMP323-R1)
(Otimizar o desempenho e os custos da computação da AWS (CMP323-R1)) -
Powering next-gen Amazon EC2: Deep dive into the Nitro system
(Potencialização do Amazon EC2 de última geração: aprofundamento no sistema Nitro)
Exemplos relacionados: