REL 7: Como você projeta sua carga de trabalho para se adaptar às mudanças na demanda?
Uma carga de trabalho escalável oferece elasticidade para adicionar ou remover recursos automaticamente para que atendam melhor à demanda atual a qualquer momento.
Recursos
AWS Auto Scaling: How Scaling Plans Work
What Is Amazon EC2 Auto Scaling?
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
What is Amazon CloudFront?
Distributed Load Testing on AWS: simulate thousands of connected users
Telling Stories About Little's Law
AWS Marketplace: products that can be used with auto scaling
APN Partner: partners that can help you create automated compute solutions
Melhores práticas:
-
Use a automação ao obter ou escalar recursos: Ao substituir recursos danificados ou escalar sua carga de trabalho, automatize o processo por meio dos serviços gerenciados pela AWS, como o Amazon S3 e o AWS Auto Scaling. Você também pode usar ferramentas de terceiros e os SDKs da AWS para automatizar a escalabilidade.
-
Obtenha recursos após a detecção de danos em uma carga de trabalho: Escale recursos de modo reativo quando necessário, se a disponibilidade for afetada, para restaurar a disponibilidade da carga de trabalho.
-
Obtenha recursos após a detecção de que mais recursos são necessários para uma carga de trabalho: Escale os recursos proativamente para atender à demanda e evitar impacto na disponibilidade.
-
Fazer o teste de carga da sua carga de trabalho: Adote uma metodologia de teste de carga para avaliar se a ação de escalabilidade atende aos requisitos da carga de trabalho.
Plano de melhoria
Use a automação ao obter ou escalar recursos
What is AWS Auto Scaling?
- Configure o Auto Scaling nas instâncias e frotas Spot do Amazon EC2, nas tarefas do
Amazon ECS, nas tabelas e nos índices do Amazon DynamoDB, nas réplicas do Amazon Aurora
e nos appliances do AWS Marketplace, conforme aplicável.
Managing throughput capacity automatically with DynamoDB Auto Scaling- Use as operações de API de serviço para especificar alarmes, políticas de escalabilidade e tempos de aquecimento e de resfriamento.
What is Elastic Load Balancing?
- Os Application Load Balancers podem distribuir a carga por caminho.
What is an Application Load Balancer?- Configure um Application Load Balancer para distribuir o tráfego para cargas de trabalho diferentes com base no caminho sob o nome de domínio.
- É possível usar os Application Load Balancers para distribuir as cargas de maneira
integrada ao AWS Auto Scaling para gerenciar a demanda.
Using a load balancer with an Auto Scaling group
- Os Network Load Balancers podem distribuir a carga por conexão.
What is a Network Load Balancer?- Configure um Network Load Balancer para distribuir o tráfego para cargas de trabalho diferentes por meio do TCP ou para ter um conjunto constante de endereços IP para a carga de trabalho.
- É possível usar os Network Load Balancers para distribuir as cargas de maneira integrada ao AWS Auto Scaling para gerenciar a demanda.
- Use o Amazon Route 53 ou um provedor DNS confiável
What is Amazon Route 53? - Use o Route 53 para gerenciar as distribuições e os load balancers do CloudFront.
- Determine os domínios e subdomínios que serão gerenciados.
- Crie conjuntos de registros adequados com os registros ALIAS ou CNAME.
Working with records
- O AWS Global Accelerator é um serviço que melhora a disponibilidade e a performance
dos seus aplicativos com usuários locais ou globais. Ele fornece endereços IP estáticos
que atuam como um ponto de entrada fixo para os endpoints do seu aplicativo em uma
ou várias regiões da AWS, como Application Load Balancers, Network Load Balancers
ou instâncias do Amazon EC2.
What Is AWS Global Accelerator?
What is Amazon CloudFront?
- Configure as distribuições do Amazon CloudFront para suas cargas de trabalho ou use
uma CDN de terceiros.
- Você pode limitar o acesso às suas cargas de trabalho somente pelo CloudFront com o uso de intervalos de IPs para o CloudFront em seus grupos de segurança ou suas políticas de acesso de endpoint.
Obtenha recursos após a detecção de danos em uma carga de trabalho
- Use os planos de escalabilidade, que são o componente principal do AWS Auto Scaling.
Neles você configura um conjunto de instruções para escalar seus recursos. Se você
trabalha com o AWS CloudFormation ou adiciona tags a recursos da AWS, pode configurar
planos de escalabilidade para diferentes conjuntos de recursos, por aplicativo. O
AWS Auto Scaling faz recomendações de estratégias de escalabilidade personalizadas
para cada recurso. Depois que você criar seu plano de escalabilidade, o AWS Auto Scaling
combinará a escalabilidade dinâmica com os métodos de escalabilidade preditiva para
oferecer suporte à sua estratégia de escalabilidade.
AWS Auto Scaling: How Scaling Plans Work - O Amazon EC2 Auto Scaling ajuda a garantir que você tenha o número correto de instâncias
do Amazon EC2 disponíveis para processar a carga do seu aplicativo. Você cria coleções
de instâncias do EC2, chamadas de grupos de Auto Scaling. Você pode especificar o
número mínimo de instâncias em cada grupo de Auto Scaling, e o Amazon EC2 Auto Scaling
garante que o grupo nunca fique abaixo desse tamanho. Você pode especificar o número
máximo de instâncias em cada grupo de Auto Scaling, e o Amazon EC2 Auto Scaling garante
que o grupo nunca fique acima desse tamanho.
What Is Amazon EC2 Auto Scaling? - A escalabilidade automática do Amazon DynamoDB usa o serviço AWS Application Auto
Scaling para ajustar dinamicamente a capacidade de throughput provisionado em seu
nome, em resposta aos padrões de tráfego reais. Isso permite que uma tabela ou um
índice secundário global aumente sua capacidade provisionada de leitura e gravação
para sustentar aumentos repentinos no tráfego, sem controle de utilização.
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
Obtenha recursos após a detecção de que mais recursos são necessários para uma carga
de trabalho
- Calcule quantos recursos computacionais serão necessários (simultaneidade de computação)
para atender a uma determinada taxa de solicitações
Telling Stories About Little's Law - Quando você tiver um padrão histórico de uso, configure a escalabilidade programada
para a escalabilidade automática do Amazon EC2
Scheduled Scaling for Amazon EC2 Auto Scaling - Use a escalabilidade preditiva da AWS
Predictive Scaling for EC2, Powered by Machine Learning
Fazer o teste de carga da sua carga de trabalho
Distributed Load Testing on AWS: simulate thousands of connected users
- Identifique a combinação de solicitações: Você pode ter diversas combinações de solicitações, portanto, deve examinar vários períodos ao identificar a combinação de tráfego.
- Implementar um direcionador de carga: Você pode usar um código personalizado, um código aberto ou um software comercial para implementar um direcionador de carga.
- Fazer o teste de carga inicialmente com uma pequena capacidade: Você vê alguns efeitos imediatos ao direcionar a carga para uma capacidade menor, possivelmente tão pequena quanto uma instância ou um contêiner.
- Fazer o teste de carga com uma capacidade maior: Os efeitos serão diferentes em uma carga distribuída, portanto, você deve testar o mais próximo possível de um ambiente de produto.