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

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.

Práticas comuns que devem ser evitadas:

  • Você não escala sua infraestrutura de acordo com a carga de usuários.

  • Você escala sua infraestrutura manualmente o tempo todo.

  • Manter a capacidade aumentada após um evento de ajuste de escala, em vez de reduzi-la novamente.

Benefícios de implementar esta prática recomendada: configurar e testar a elasticidade da workload ajuda a adequar eficientemente a oferta de recursos de nuvem à demanda e evitar o excesso de capacidade provisionada. É possível 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 for estabelecida: Médio

Orientação para implementação

A nuvem fornece a flexibilidade necessária para 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. As aplicações 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 ainda uma combinação de ambos.

Você pode usar diversas abordagens diferentes para corresponder a oferta de recursos com a demanda.

  • Abordagem de rastreamento de métricas: monitore a métrica de ajuste de escala e aumente ou diminua automaticamente a capacidade conforme necessário.

  • Ajuste de escala preditivo: aumente ou reduza a escala em antecipação às tendências diárias e semanais.

  • Abordagem baseada em cronograma: defina seu próprio cronograma de ajuste de escala de acordo com as mudanças de carga previsíveis.

  • Dimensionamento de serviços: escolha serviços (como sem servidor) cuja escala seja modificada de forma nativa por design ou forneçam o ajuste de escala automático 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 de 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 o ajuste de escala automático ou como um recurso do serviço. A AWS fornece uma variedade de mecanismos de ajuste de escala automático 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ários. Veja alguns exemplos de mecanismos de ajuste de escala automático:

    Mecanismo de ajuste de escala automático Onde usar

    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 a sua aplicação.

    Application Auto Scaling

    Use para escalar automaticamente os recursos para serviços da AWS individuais além do Amazon EC2, como funções do Lambda ou serviços do Amazon Elastic Container Service (Amazon ECS).

    Kubernetes Cluster Autoscaler

    Use para escalar automaticamente os clusters do Kubernetes na AWS.

  • O ajuste de escala geralmente é discutido 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 computacionais, como unidades de capacidade de leitura e gravação do Amazon DynamoDB ou fragmentos do Amazon Kinesis Data Streams para atender à demanda.

  • Verifique se as métricas para aumentar ou reduzir a escala verticalmente são validadas em relação ao tipo da 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. É possível usar uma métrica personalizada (como utilização de memória) para sua política de ajuste de escala, 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 e diminuir em proporção ao número das instâncias no grupo do Auto Scaling.

  • Use o ajuste de escala dinâmico em vez do ajuste de escala manual para seu grupo do Auto Scaling. Também recomendamos usar políticas de ajuste de escala de rastreamento de metas em seu ajuste de escala dinâmico.

  • 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). É possível usar o Histórico de atividades para verificar uma atividade de ajuste de escala para um grupo do Auto Scaling.

  • Avalie sua workload em relação a padrões previsíveis e, ao antecipar alterações previstas e planejadas na demanda, ajuste a escala proativamente. Com o ajuste de escala preditivo, é possível eliminar a necessidade de superprovisionar a capacidade. Para obter mais informações, consulte Ajuste de escala preditivo com o Amazon EC2 Auto Scaling.

Recursos

Documentos relacionados:

Vídeos relacionados:

Exemplos relacionados: