Escalabilidade dinâmica para o Amazon EC2 Auto Scaling
A escalabilidade dinâmica dimensiona a capacidade do seu grupo do Auto Scaling de acordo com a ocorrência de alterações no tráfego.
O Amazon EC2 Auto Scaling oferece suporte aos seguintes tipos de políticas de escalabilidade dinâmica:
-
Escalabilidade com monitoramento de objetivo: aumenta e diminui a capacidade atual do grupo com base em uma métrica do Amazon CloudWatch um valor de objetivo. Esse tipo de política funciona de modo semelhante ao seu termostato em casa. Você escolhe uma temperatura e o termostato faz o resto.
-
Escalabilidade em etapas: aumenta e diminui a capacidade atual do grupo com base em um conjunto de ajustes de escalabilidade, conhecidos como ajustes em etapas, que variam de acordo com o porte da violação do alarme.
-
Escalabilidade simples: aumenta e diminui a capacidade atual do grupo com base em um único ajuste de escalabilidade, com um período de esfriamento entre cada atividade de escalonamento.
Recomendamos enfaticamente que você use políticas de escala de monitoramento do destino e escolha uma métrica que mude de forma inversamente proporcional a uma mudança na capacidade do seu grupo do Auto Scaling. Portanto, se você dobrar o tamanho do seu grupo do Auto Scaling, a métrica diminuirá em 50%. Isso permite que os dados de métricas acionem com precisão eventos de escalabilidade proporcionais. Estão incluídas métricas como a utilização média da CPU ou a contagem média de solicitações por destino.
Com o monitoramento de objetivos, um grupo do Auto Scaling reduz a escala horizontalmente em proporção direta à carga real em sua aplicação. Isso significa que, além de atender à necessidade imediata de capacidade em resposta a mudanças de carga, uma política de monitoramento de objetivo também pode se adaptar às mudanças de carga que ocorram ao longo do tempo, p. ex., em decorrência de variações sazonais.
As políticas de rastreamento de destinos eliminam a necessidade de definir manualmente os alarmes e os ajustes de escalabilidade do CloudWatch. O Amazon EC2 Auto Scaling lida com isso automaticamente com base no destino definido.
Conteúdo
Políticas de escalabilidade com monitoramento do objetivo para o Amazon EC2 Auto Scaling
Políticas de escalabilidade simples e em etapas do Amazon EC2 Auto Scaling
Desaquecimento de escalabilidade para o Amazon EC2 Auto Scaling
Verificar uma ação de escalabilidade para um grupo do Auto Scaling
Desabilitar uma política de escalabilidade para um grupo do Auto Scaling
Desabilitar uma política de escalabilidade para um grupo do Auto Scaling
Como funcionam as políticas de escalabilidade dinâmica
Uma política de escalabilidade instrui o Amazon EC2 Auto Scaling a rastrear uma métrica do CloudWatch específica e define qual ação será executada quando o alarme do CloudWatch associado estiver em ALARM (ALARME). As métricas usadas para invocar um estado de alarme são uma agregação de métricas provenientes de todas as instâncias do grupo do Auto Scaling. (Por exemplo, vamos supor que você tenha um grupo do Auto Scaling com duas instâncias em que uma instância está com 60% de CPU e, a outra, com 40% de CPU. Na média, elas estão com 50% de CPU.) Quando a política está em vigor, o Amazon EC2 Auto Scaling ajusta a capacidade desejada do grupo para mais ou para menos quando o limite de um alarme é violado.
Quando uma política de escalabilidade dinâmica é invocada, se o cálculo de capacidade produzir um número fora do intervalo de tamanho mínimo e máximo do grupo, o Amazon EC2 Auto Scaling garantirá que a nova capacidade nunca saia dos limites de tamanho mínimo e máximo. A capacidade é medida de duas formas: usando as mesmas unidades que você escolheu ao definir a capacidade desejada em termos de instâncias ou usando as unidades de capacidade (se o peso de instâncias for aplicado).
-
Exemplo 1: um grupo do Auto Scaling tem uma capacidade máxima de 3, uma capacidade atual de 2 e uma política de escalabilidade dinâmica que adiciona 3 instâncias. Ao invocar essa política, o Amazon EC2 Auto Scaling adiciona apenas 1 instância ao grupo para impedir que ele exceda seu tamanho máximo.
-
Exemplo 2: um grupo do Auto Scaling tem uma capacidade mínima de 2, uma capacidade atual de 3 e uma política de escalabilidade dinâmica que remove 2 instâncias. Ao invocar essa política, o Amazon EC2 Auto Scaling remove somente 1 instância do grupo para impedir que ele fique menor do que seu tamanho mínimo.
Quando a capacidade desejada atingir o limite de tamanho máximo, a expansão é interrompida. Se a demanda cair e a capacidade diminuir, o Amazon EC2 Auto Scaling poderá aumentar a escala na horizontal novamente.
A exceção é quando você usa a ponderação de instâncias. Nesse caso, o Amazon EC2 Auto Scaling pode aumentar a escala na horizontal acima do limite de tamanho máximo, mas somente até o peso máximo da instância. Sua intenção é chegar o mais próximo possível da nova capacidade desejada, mas ainda seguir as estratégias de alocação especificadas para o grupo. As estratégias de alocação determinam quais tipos de instância serão executados. Os pesos determinam quantas com unidades de capacidade cada instância contribui para a capacidade desejada do grupo com base no seu tipo de instância.
-
Exemplo 3: um grupo do Auto Scaling tem uma capacidade máxima de 12, uma capacidade atual de 10 e uma política de escalabilidade dinâmica que adiciona 5 unidades de capacidade. Os tipos de instância têm um dos três pesos atribuídos: 1, 4 ou 6. Ao invocar a política, o Amazon EC2 Auto Scaling opta por iniciar um tipo de instância com um peso de 6 com base na estratégia de alocação. O resultado desse evento de expansão é um grupo com uma capacidade desejada de 12 e uma capacidade atual de 16.
Várias políticas de escalabilidade dinâmica
Na maioria dos casos, uma política de escalabilidade com monitoramento do objetivo é suficiente para configurar o grupo do Auto Scaling para aumentar e reduzir a escala na horizontal automaticamente. Uma política de escalabilidade com monitoramento do objetivo permite que você selecione um resultado desejado e faça com que o grupo do Auto Scaling adicione e remova instâncias conforme necessário para atingir o resultado.
Para uma configuração de escalabilidade avançada, seu grupo do Auto Scaling pode ter mais de uma política de escalabilidade. Por exemplo, você pode definir uma ou mais políticas de escalabilidade de rastreamento de destino, uma ou mais políticas de escalabilidade em etapas, ou ambas. Isso fornece maior flexibilidade para abranger vários cenários.
Para ilustrar como várias políticas de escalabilidade dinâmica trabalham em conjunto, considere uma aplicação que use um grupo do Auto Scaling e uma fila do Amazon SQS para enviar solicitações a uma única instância do EC2. Para ajudar a garantir que a aplicação seja executada em níveis ideais, há duas políticas que controlam quando o grupo do Auto Scaling deve ter a escala aumentada na horizontal. Uma é uma política de rastreamento de destino que usa uma métrica personalizada para adicionar e remover capacidade com base no número de mensagens do SQS na fila. A outra é uma política de escalabilidade de etapas que usa a métrica CPUUtilization do Amazon CloudWatch para adicionar capacidade quando a instância excede a 90% de utilização por um período especificado.
Quando há várias políticas em vigor ao mesmo tempo, há uma chance de que cada política instrua o grupo do Auto Scaling a ter a escala na horizontal aumentada (ou reduzida) ao mesmo tempo. Por exemplo, é possível que a métrica CPUUtilization atinja o pico e viole o limite de alarme do CloudWatch ao mesmo tempo que a métrica personalizada do SQS atingir o pico e violar o limite de alarme da métrica personalizada.
Quando ocorrem essas situações, o Amazon EC2 Auto Scaling escolhe a política que fornece a maior capacidade para aumentar e para reduzir a escala na horizontal. Por exemplo, suponha que a política CPUUtilization execute uma instância, enquanto a política da fila do SQS executa duas instâncias. Se os critérios de aumento de escala na horizontal das duas políticas forem atendidos ao mesmo tempo, o Amazon EC2 Auto Scaling dará precedência à política da fila do SQS. Isso resulta na execução de duas instâncias no grupo do Auto Scaling.
A abordagem de dar precedência à política que fornece a maior capacidade se aplica mesmo quando as políticas usam critérios diferentes para aumentar. Por exemplo, se uma política terminar três instâncias, outra política diminuir o número de instâncias em 25%, e o grupo tiver oito instâncias no momento da redução da escala na horizontal, o Amazon EC2 Auto Scaling dará precedência à política que fornece o maior número de instâncias para o grupo. Isso faz com que o grupo do Auto Scaling termine duas instâncias (25% de 8 = 2). A intenção é evitar que o Amazon EC2 Auto Scaling remova instâncias demais.
No entanto, recomendamos cautela ao usar políticas de escalabilidade de rastreamento de destino com políticas de escalabilidade de etapas, pois conflitos entre essas políticas podem causar um comportamento indesejável. Por exemplo, se a política de escalabilidade de etapas iniciar uma atividade de redução antes que a política de rastreamento de destino esteja pronta para ser reduzida, a atividade de redução não será bloqueada. Após a conclusão da atividade de redução, a política de rastreamento de destino poderá instruir o grupo a expandir novamente.