Esse conteúdo está desatualizado. Esta versão da Well-Architected Framework agora pode ser encontrada em: https://docs.aws.amazon.com/pt_br/wellarchitected/2022-03-31/framework/performance-efficiency.html

PERF 2: Como você seleciona sua solução de computação?

A solução de computação ideal para uma carga de trabalho varia conforme o design do aplicativo, os padrões de uso e as definições de configuração. As arquiteturas podem usar diferentes soluções de computação para vários componentes e podem habilitar diferentes recursos para melhorar a performance. Selecionar a solução de computação incorreta para uma arquitetura pode levar a uma menor eficiência de performance.

Recursos

Amazon EC2 foundations (CMP211-R2)
Powering next-gen Amazon EC2: Deep dive into the Nitro system
Deliver high performance ML inference with AWS Inferentia (CMP324-R1)
Optimize performance and cost for your AWS compute (CMP323-R1)
Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1)
Cloud Compute with AWS
EC2 Instance Types
Processor State Control for Your EC2 Instance
EKS Containers: EKS Worker Nodes
ECS Containers: Amazon ECS Container Instances
Functions: Lambda Function Configuration

Melhores práticas:

Plano de melhoria

Avalie as opções de computação disponíveis

  • Considere as opções de computação: Decida que opção de computação atende às suas necessidades. De uma perspectiva de performance, as instâncias podem ser usadas para aplicativos de execução longa, em especial aqueles com estado e ciclos de computação de execução longa; as funções podem ser usadas para aplicativos sem estado e iniciados por evento que precisam de tempos de resposta rápidos; e os contêineres permitem que você use de modo eficiente os recursos de uma instância.
    Cloud Compute with AWS
  • Defina os requisitos de performance da computação: Identifique as métricas de performance da computação relevantes para sua carga de trabalho e implemente seus requisitos usando uma abordagem impulsionada por dados que envolve testes comparativos ou testes de carga de trabalho. Use esses dados para identificar em que ponto sua solução de computação é restrita e examinar as opções de configuração que possam melhorar a solução.
  • Compreenda as opções de configuração de computação disponíveis

  • Conheça as opções de configuração disponíveis: Para a opção de computação selecionada, use as opções de configuração disponíveis para otimizar conforme seus requisitos de performance.Utilize o AWS Nitro System para viabilizar o consumo total dos recursos de computação e memória do hardware do host. Nitro Cards dedicados proporcionam redes e EBS de alta velocidade, e aceleração de E/S.
    AWS Nitro System
  • Colete métricas relacionadas à computação

  • Colete métricas relacionadas à computação: O Amazon CloudWatch pode coletar métricas entre recursos computacionais em seu ambiente. Use uma combinação do CloudWatch e outras ferramentas de gravação de métrica para acompanhar as métricas no nível do sistema em sua carga de trabalho. Registre dados como níveis de uso da CPU, memória, E/S de disco e rede para obter uma percepção sobre os níveis de utilização ou os gargalos. Esses dados são cruciais para entender a performance da carga de trabalho e a eficiência com que ela está usando os recurso. Use essas métricas como parte de uma abordagem impulsionada por dados para ajustar e otimizar ativamente os recursos de sua carga de trabalho.
    Amazon CloudWatch
  • Determine a configuração necessária realizando o dimensionamento correto

  • Modifique a configuração da carga de trabalho dimensionando corretamente: Para otimizar a performance e a eficiência geral, determine de quais recursos sua carga de trabalho precisa. Escolha instâncias com otimização de memória para sistemas que exigem mais memória que a CPU ou instâncias com otimização de computação para componentes que realizam processamento de dados que não consome muita memória. O dimensionamento correto habilita sua carga de trabalho a operar da melhor maneira possível enquanto consome apenas os recursos necessários
  • Use a elasticidade de recursos disponível

  • Aproveite a elasticidade: 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 a elasticidade em sua arquitetura para garantir que haja capacidade suficiente para atender aos requisitos de performance em todas as escalas de uso. Certifique-se de que as métricas para aumentar ou reduzir recursos elásticos sejam validadas em relação ao tipo de carga de trabalho que está sendo implantada. Se você estiver implantando um aplicativo de transcodificação de vídeo, é esperado o uso de 100% de CPU, não devendo 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. É necessário garantir que as implantações de carga de trabalho possam lidar com eventos de expansão e redução 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 redução da escala a fim de garantir que a carga de trabalho se comporte conforme o esperado.
  • Reavalie as necessidades de computação conforme as métricas

  • Use uma abordagem impulsionada por dados para otimizar os recursos: Para obter a máxima performance e eficiência, use os dados coletados ao longo do tempo a partir de sua carga de trabalho para ajustar e otimizar seus recursos. Analise as tendências no uso dos recursos atuais da sua carga de trabalho e determine em que você pode fazer alterações para atender melhor às necessidades da sua carga de trabalho. A performance do sistema cai quando os recursos estão sendo comprometidos excessivamente, já a subutilização de recursos leva a um uso menos eficiente e maiores custos dos mesmos.