SUS02-BP01 Escalar a infraestrutura da workload dinamicamente - AWS Well-Architected Framework

SUS02-BP01 Escalar a infraestrutura da workload dinamicamente

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 exposição a riscos se esta prática recomendada não for estabelecida: médio

Orientações para a implementação

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 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:

    Auto scaling mechanism Where to use

    Amazon EC2 Auto Scaling

    Use para verificar se você tem o número correto de instâncias do Amazon EC2 disponíveis para processar a carga de usuário para o seu aplicativo.

    Application Auto Scaling

    Use para escalar 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).

    o dimensionador automático de cluster do Kubernetes

    Use para escalar automaticamente os clusters do Kubernetes na AWS.

  • 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, e grave unidades de capacidade ou fragmentos do Amazon 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 (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 em vez da escalabilidade manual para o seu grupo do Auto Scaling. Também recomendamos que você use as políticas de escalabilidade de monitoramento de meta 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 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.

Recursos

Documentos relacionados:

Vídeos relacionados:

Exemplos relacionados: