Políticas de escalabilidade simples e em etapas do Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Políticas de escalabilidade simples e em etapas do Amazon EC2 Auto Scaling

O escalonamento por etapas e as políticas de escalabilidade simples escalam a capacidade do seu grupo de Auto Scaling em incrementos predefinidos com base em alarmes. CloudWatch É possível definir políticas de escalabilidade separadas para lidar com o aumento horizontal da escala (aumento da capacidade) e com a redução horizontal da escala (diminuição da capacidade) quando um limite de alarme é violado.

Com o escalonamento por etapas e o escalonamento simples, você cria e gerencia os CloudWatch alarmes que invocam o processo de escalabilidade. Quando um alarme é violado, o Amazon EC2 Auto Scaling inicia a política de escalabilidade associada a esse alarme.

É altamente recomendável usar uma política de ajuste de escala de rastreamento de destino para escalar métricas, como utilização média de CPU ou contagem média de solicitações por destino. Métricas que diminuem quando a capacidade aumenta e aumentam quando a capacidade diminui podem ser usadas para expandir ou reduzir proporcionalmente o número de instâncias usando o rastreamento de destino. Isso ajuda a garantir que o Amazon EC2 Auto Scaling siga estritamente a curva de demanda para suas aplicações. Para ter mais informações, consulte Políticas de escalabilidade de rastreamento de destino.

Funcionamento das políticas de escalabilidade em etapas

Para usar o escalonamento por etapas, primeiro você cria um CloudWatch alarme que monitora uma métrica para seu grupo de Auto Scaling. Defina a métrica, o valor limite e o número de períodos de avaliação que determinam uma violação de alarme. Em seguida, crie uma política de escalonamento de etapas que defina como escalar seu grupo quando o limite de alarme for violado.

Adicione os ajustes de etapas na política. É possível definir diferentes ajustes de etapas com base na dimensão da violação do alarme. Por exemplo: .

  • Expanda em 10 instâncias se a métrica de alarme atingir 60%

  • Expanda em 30 instâncias se a métrica de alarme atingir 75 por cento

  • Expanda em 40 instâncias se a métrica de alarme atingir 85%

Quando o limite de alarme for violado para o número especificado de períodos de avaliação, o Amazon EC2 Auto Scaling aplicará os ajustes de etapas definidos na política. Os ajustes podem continuar para violações de alarmes adicionais até que o estado do alarme retorne a OK.

Cada instância tem um período de aquecimento para evitar que as atividades de escalabilidade sejam muito reativas às mudanças que ocorrem em curtos períodos de tempo. Opcionalmente, você pode configurar o período de aquecimento para sua política de escalabilidade. No entanto, recomendamos usar o aquecimento padrão da instância para facilitar a atualização de todas as políticas de escalabilidade quando o horário de aquecimento mudar. Para ter mais informações, consulte Definir o aquecimento padrão da instância para um grupo do Auto Scaling.

As políticas de escalabilidade simples são semelhantes às políticas de escalabilidade por etapas, exceto que se baseiam em um único ajuste de escalabilidade, com um período de espera entre cada atividade de escalabilidade. Para ter mais informações, consulte Políticas de escalabilidade simples.

Ajustes em etapas para escalabilidade em etapas

Ao criar uma política de escalabilidade em etapas, especifique um ou mais ajustes em etapas que dimensionem automaticamente o número de instâncias de forma dinâmica com base no tamanho da violação do alarme. Cada ajuste em etapas especifica o seguinte:

  • Um limite inferior para o valor da métrica

  • Um limite superior para o valor da métrica

  • O valor de acordo com o qual dimensionar com base no tipo de ajuste de dimensionamento

CloudWatch agrega pontos de dados métricos com base na estatística da métrica associada ao seu CloudWatch alarme. Quando o alarme é violado, a política de dimensionamento apropriada é invocada. O Amazon EC2 Auto Scaling aplica o tipo de agregação aos pontos CloudWatch de dados métricos mais recentes (em oposição aos dados métricos brutos). Ele compara esse valor de métrica agregada com os limites superior e inferior definidos pelo ajustes em etapa para determinar qual deles deve ser executado.

Você especifica os limites superior e inferior em relação ao limite de ruptura. Por exemplo, digamos que você tenha criado um CloudWatch alarme e uma política de expansão para quando a métrica estiver acima de 50%. Em seguida, você criou um segundo alarme e uma política para reduzir a escala horizontalmente em momentos em que a métrica está abaixo de 50%. Você fez um conjunto de ajustes de etapas com um tipo de ajuste PercentChangeInCapacity (ou porcentagem do grupo no console) para cada política:

Exemplo: ajustes em etapas para política de expansão
Limite inferior Limite superior Ajuste

0

10

0

10

20

10

20

nulo

30

Exemplo: ajustes em etapas para política de redução
Limite inferior Limite superior Ajuste

-10

0

0

-20

-10

-10

nulo

-20

-30

Isso cria a seguinte configuração de escalabilidade.

Metric value -infinity 30% 40% 60% 70% infinity ----------------------------------------------------------------------- -30% | -10% | Unchanged | +10% | +30% -----------------------------------------------------------------------

Agora, digamos que você use essa configuração de escalabilidade em um grupo de Auto Scaling que tenha uma capacidade atual e uma capacidade desejada de 10. Os pontos a seguir resumem o comportamento da configuração de escalabilidade em relação às capacidades desejada e atual do grupo:

  • A capacidade atual e desejada será mantida enquanto o valor agregado da métrica for maior que 40 e menor que 60.

  • Se o valor da métrica chegar a 60, a capacidade desejada do grupo aumenta em 1 instância, para 11 instâncias, com base no segundo ajuste em etapas da política de expansão (adicionar 10% de 10 instâncias). Depois que a nova instância estiver em execução e o tempo de aquecimento especificado expirar, a capacidade atual do grupo aumentará para 11 instâncias. Se o valor da métrica subir para 70 mesmo após esse aumento na capacidade, a capacidade desejada do grupo aumentará em outras 3 instâncias, para 14 instâncias. Isso se baseia no ajuste da terceira etapa da política de expansão (adicione 30% de 11 instâncias, 3,3 instâncias, arredondadas para 3 instâncias).

  • Se o valor da métrica chegar a 40, a capacidade desejada do grupo será reduzida em 1 instância, para 13 instâncias, com base no segundo ajuste em etapas da política de redução (removerá 10% das 14 instâncias, 1,4 instâncias, arredondadas para 1 instância). Se o valor da métrica cair para 30 mesmo após essa diminuição na capacidade, a capacidade desejada do grupo diminuirá em outras 3 instâncias, para 10 instâncias. Isso se baseia no ajuste da terceira etapa da política de expansão (remova 30% de 13 instâncias, 3,9 instâncias, arredondadas para 3 instâncias).

Ao especificar os ajustes em etapas para sua política de escalabilidade, observe o seguinte:

  • Se você usar o AWS Management Console, você especifica os limites superior e inferior como valores absolutos. Se você usa o AWS CLI ou um SDK, especifica os limites superior e inferior em relação ao limite de violação.

  • Os intervalos de seus ajustes em etapas não podem se sobrepor ou ter uma lacuna.

  • Somente um ajuste em etapas pode ter um limite inferior nulo (infinito negativo). Se um ajuste em etapas tiver um limite inferior negativo, não deverá haver um ajuste em etapas com um limite inferior nulo.

  • Somente um ajuste em etapas pode ter um limite superior nulo (infinito positivo). Se um ajuste em etapas tiver um limite superior positivo, deverá haver um ajuste em etapas com um limite superior nulo.

  • Os limites inferior e superior não podem ser nulos no mesmo ajuste em etapas.

  • Se o valor da métrica estiver acima do limite de violação, o limite inferior será inclusivo e o limite superior será exclusivo. Se o valor da métrica estiver abaixo do limite de violação, o limite inferior será exclusivo e o limite superior será inclusivo.

Tipos de ajuste da escalabilidade

É possível definir uma política de escalabilidade que execute a ação de escalabilidade ideal, com base no tipo de ajuste de escalabilidade escolhido. É possível especificar o tipo de ajuste como um percentual da capacidade atual do seu grupo do Auto Scaling ou em unidades de capacidade. Normalmente, uma unidade de capacidade significa uma instância, a menos que você esteja usando o recurso de pesos de instância.

O Amazon EC2 Auto Scaling oferece suporte aos seguintes tipos de ajuste de escalabilidade simples e em etapa:

  • ChangeInCapacity: aumentar ou diminuir a capacidade atual do grupo no valor especificado. Um valor de ajuste positivo aumenta a capacidade e um valor negativo diminui a capacidade. Por exemplo: se a capacidade atual do grupo for 3 e o ajuste for 5, quando essa política for executada, adicionaremos 5 unidades de capacidade à capacidade, para um total de 8 unidades de capacidade.

  • ExactCapacity: alterar a capacidade atual do grupo para o valor especificado. Especifique um valor não negativo com esse tipo de ajuste. Exemplo: se a capacidade atual do grupo for 3 instâncias e o ajuste for 5, quando essa política for executada, alteraremos a capacidade para 5 unidades de capacidade.

  • PercentChangeInCapacity: aumentar ou diminuir a capacidade atual do grupo no percentual especificado. Um valor positivo aumenta a capacidade e um valor negativo diminui a capacidade. Por exemplo: se a capacidade atual for 10 e o ajuste for 10%, quando essa política for executada, adicionaremos 1 unidade de capacidade à capacidade, para um total de 11 unidades de capacidade.

    nota

    Se o valor resultante não for um inteiro, o arredondamento é feito da seguinte forma:

    • Valores maiores que 1 serão arredondados para baixo. Por exemplo, 12.7 será arredondado para 12.

    • Os valores entre 0 e 1 serão arredondados para 1. Por exemplo, .67 será arredondado para 1.

    • Os valores entre 0 e -1 serão arredondados para -1. Por exemplo, -.58 será arredondado para -1.

    • Os valores menores que -1 serão arredondado para cima. Por exemplo, -6.67 será arredondado para -6.

Com PercentChangeInCapacity, também é possível especificar o número mínimo de instâncias a serem dimensionadas usando o parâmetro MinAdjustmentMagnitude. Por exemplo, vamos supor que você crie uma política que adiciona 25% e especifique um incremento mínimo de 2 instâncias. Se você tiver um grupo do Auto Scaling com 4 instâncias e a política de escalabilidade for executada, 25% de 4 será 1 instância. No entanto, como você especificou um incremento mínimo de 2, serão adicionadas 2 instâncias.

Quando você usa pesos de instância, o efeito de definir o MinAdjustmentMagnitude parâmetro para um valor diferente de zero muda. O valor é em unidades de capacidade. Para definir o número mínimo de instâncias a serem escaladas, defina esse parâmetro para um valor que seja, pelo menos, tão grande quanto o maior peso da instância.

Se você usar pesos de instância, lembre-se de que a capacidade atual do seu grupo de Auto Scaling pode exceder a capacidade desejada conforme necessário. Se o seu número absoluto para redução, ou o valor que a porcentagem informar para redução, for menor que a diferença entre a capacidade atual e a desejada, nenhuma ação de escalabilidade será executada. Você deve levar em conta esses comportamentos ao analisar o resultado de uma política de dimensionamento quando um limite de alarme é violado. Por exemplo, vamos supor que a capacidade desejada seja 30 e a capacidade atual seja 32. Quando o alarme é violado, se a política de dimensionamento diminuir a capacidade desejada em um, nenhuma ação de dimensionamento será realizada.

Aquecimento da instância

Para dimensionamento em etapas, você pode especificar o número de segundos necessários para o aquecimento de uma instância recém-iniciada. Até que o tempo de aquecimento especificado expire, uma instância não é contabilizada nas métricas agregadas da instância EC2 do grupo Auto Scaling.

Enquanto as instâncias estão no período de aquecimento, suas políticas de escalabilidade só se expandem se o valor métrico das instâncias que não estão se aquecendo for maior do que o limite máximo de alarme da política.

Se o grupo voltar a aumentar a escala na horizontal, as instâncias que ainda estão se aquecendo serão contadas como parte da capacidade desejada para a próxima ação de aumento da escala na horizontal. Portanto, várias violações de alarme que caem no intervalo do mesmo ajuste em etapas resultam em uma única ação de escalabilidade. A intenção é expandir de forma contínua (mas não excessivamente).

Por exemplo, vamos supor que você cria uma política com duas etapas. A primeira etapa adiciona 10 por cento quando a métrica chega a 60, e a segunda etapa adiciona 30 por cento quando a métrica chega a 70 por cento. Seu grupo do Auto Scaling tem uma capacidade desejada e atual de 10. A capacidade atual e desejada não altera enquanto o valor agregado da métrica for menor que 60. Suponha que a métrica chegue a 60, então 1 instância é adicionada (10 por cento de 10 instâncias). Em seguida, a métrica chega a 62 enquanto a nova instância ainda está se aquecendo. A política de escalabilidade calcula a nova capacidade desejada com base na capacidade atual, que ainda é 10. No entanto, a capacidade desejada do grupo já aumentou para 11 instâncias, portanto, a política de escalabilidade não aumenta mais a capacidade desejada. Se a métrica chegar a 70 enquanto a nova instância ainda está em processo de aquecimento, deveremos adicionar 3 instâncias (30% de 10 instâncias). No entanto, como a capacidade desejada do grupo já é 11, adicionaremos apenas 2 instâncias, para uma nova capacidade desejada de 13 instâncias.

Enquanto a atividade de aumentar a escala na horizontal estiver em andamento, todas as atividades de reduzir a escala na horizontal iniciadas por políticas de escalabilidade serão bloqueadas até que as instâncias terminem de aquecer. Quando as instâncias terminarem de se aquecer, se ocorrer um evento de reduzir a escala horizontalmente, todas as instâncias atualmente em processo de encerramento serão contabilizadas na capacidade atual do grupo ao calcular a nova capacidade desejada. Portanto, não removemos mais instâncias do que o necessário do grupo do Auto Scaling. Por exemplo, enquanto uma instância já estiver sendo encerrada, se um alarme estiver em violação no intervalo do mesmo ajuste de etapa que diminuiu a capacidade desejada em 1, nenhuma ação de escalabilidade será realizada.

Valor padrão

Se nenhum valor for definido, a política de escalabilidade usará o valor padrão, que é o valor do aquecimento de instância padrão definido para o grupo. Se o aquecimento padrão da instância for nulo, ele voltará ao valor do tempo de recarga padrão.

Considerações

As considerações a seguir são aplicáveis ao trabalhar com políticas de escalabilidade simples e em etapas:

  • Avalie se é possível prever os ajustes em etapas na aplicação com precisão suficiente para usar a escalabilidade em etapas. Se a métrica de escalabilidade aumentar ou diminuir proporcionalmente à capacidade do destino dimensionável, recomendamos que você use uma política de escalabilidade de rastreamento do objetivo. Você ainda tem a opção de usar a escalabilidade em etapas como política adicional para uma configuração mais avançada. Por exemplo, é possível configurar uma resposta mais agressiva quando a utilização atinge determinado nível.

  • Para evitar oscilações, certifique-se de escolher uma margem adequada entre os limites de redução e aumento da escala. Oscilação é um ciclo infinito de aumento e redução de escala horizontal. Ou seja, se o sistema adotar alguma ação de escalabilidade, o valor da métrica mudaria e iniciaria outra ação de escalabilidade na direção inversa.