Escolher o modo de simultaneidade usando o AWS Management Console ou AWS CLI - AWS CloudFormation

Escolher o modo de simultaneidade usando o AWS Management Console ou AWS CLI

O Modo de Simultaneidade é um parâmetro para StackSetOperationPreferences que permite que você escolha como o nível de simultaneidade se comporta durante as operações de conjunto de pilhas. Você pode escolher entre os seguintes modos:

  • Alta tolerância a falhas: essa opção reduz dinamicamente o nível de simultaneidade para garantir que o número de contas com falha nunca exceda o valor de Tolerância a falhas +1. A simultaneidade real inicial é definida como o menor valor do Máximo de contas simultâneas ou o valor de Tolerância a falhas +1. A simultaneidade real é então reduzida proporcionalmente pelo número de falhas. Esse é o comportamento padrão.

  • Tolerância moderada a falhas: essa opção desacopla a Tolerância a falhas da simultaneidade real. Isso permite que as operações de conjunto de pilhas sejam executadas no nível de simultaneidade definido pelo valor Máximo de contas simultâneas, independentemente do número de falhas.

A Alta tolerância a falhas reduz a velocidade de implantação à medida que ocorrem falhas na operação do conjunto de pilhas porque a simultaneidade diminui para cada falha. A Tolerância moderada a falhas prioriza a velocidade de implantação e, ao mesmo tempo, aproveita os recursos de segurança do AWS CloudFormation. Isso permite que você analise e resolva falhas de operação do conjunto de pilhas relacionadas a problemas comuns, como as relacionadas a recursos, cotas de serviço e permissões existentes.

Para obter mais informações sobre falhas na operação de pilha do StackSets, consulte Motivos comuns de falha na operação da pilha.

Para obter mais informações sobre o Máximo de contas simultâneas e a Tolerância a falhas, consulte Opções de operação do conjunto de pilhas.

Como cada Modo de Simultaneidade funciona

As imagens abaixo fornecem uma representação visual de como cada Modo de Simultaneidade funciona durante uma operação de conjunto de pilhas. A sequência de nós representa uma implantação em uma única Região da AWS e cada nó é uma Conta da AWS de destino.

Alta tolerância a falhas

Quando uma operação de conjunto de pilhas usando a Alta tolerância a falhas tem o valor de Tolerância a falhas definido como 5 e o valor do Máximo de contas simultâneas definido como 10, a simultaneidade real é 6. A simultaneidade real é 6 porque o valor de Tolerância a falhas de 5 +1 é menor do que o valor do Máximo de contas simultâneas.

A seguinte imagem mostra o impacto que o valor da Tolerância a falhas tem no valor Máximo de contas simultâneas, e o impacto que ambos têm na simultaneidade real da operação do conjunto de pilhas:

Uma operação de conjunto de pilhas usando tolerância rigorosa a falhas. A tolerância a falhas é 5, a conta simultânea máxima é 10 e a simultaneidade é 6.

Quando a implantação começa e há instâncias de pilha com falha, a simultaneidade real é reduzida para fornecer uma experiência de implantação segura. A simultaneidade real é reduzida de 6 para 5 quando o StackSets falha ao implantar uma instância de pilha.

A operação de conjunto de pilhas usando Tolerância a falhas rigorosa tem 2 implantações bem-sucedidas e 1 falha.
A operação de conjunto de pilhas usando Tolerância a falhas rigorosa reduziu a simultaneidade real para 5, agora que há uma falha.

O modo Alta tolerância a falhas reduz a simultaneidade real proporcionalmente ao número de instâncias de pilha com falha. No exemplo a seguir, a simultaneidade real é reduzida de 5 para 3 quando o StackSets falha ao implantar mais duas instâncias de pilha, elevando o total de instâncias de pilha com falha para três.

A operação de conjunto de pilhas usando Tolerância a falhas rigorosa agora tem 3 implantações com falha. A simultaneidade foi reduzida para 3.

O StackSets falha na operação de conjunto de pilhas quando o número de instâncias de pilha com falha é igual ao valor definido de Tolerância a falhas +1. No exemplo a seguir, o StackSets falha na operação quando há seis instâncias de pilha com falha e o valor de Tolerância a falhas é 5.

A operação de conjunto de pilhas usando Tolerância a falhas rigorosa agora tem 6 implantações com falha. A operação do conjunto de pilhas falha.

Neste exemplo, o StackSets implantou nove instâncias de pilha (três com êxito e seis com falha) antes de interromper a operação do conjunto de pilhas.

Tolerância moderada a falhas

Quando uma operação de conjunto de pilhas usando a Tolerância moderada a falhas tem o valor de Tolerância a falhas definido como 5 e o valor do Máximo de contas simultâneas definido como 10, a simultaneidade real é 10.

Uma operação de conjunto de pilhas com tolerância a falhas leves. A tolerância a falhas é de 5 contas simultâneas máximas e a simultaneidade real é de 10.

Quando a implantação começa e há instâncias de pilha com falha, a simultaneidade real não muda. No exemplo a seguir, uma operação de pilha falhou, mas a simultaneidade real permanece em 10.

A operação de configuração da pilha com Tolerância a falhas flexível encontra a primeira falha. A simultaneidade real permanece em 10.

A simultaneidade real permanece em 10, mesmo após mais duas falhas na instância de pilha.

A operação de conjunto de pilhas com Tolerância a falhas flexível agora tem 2 sucessos e 3 falhas, mas a simultaneidade real ainda é 10.

O StackSets falha na operação de conjunto de pilhas quando o número de instâncias de pilha com falha excede o valor de Tolerância a falhas. No exemplo a seguir, o StackSets falha na operação quando há seis instâncias de pilha com falha e a contagem de Tolerância a falhas é 5. No entanto, a operação não terminará até que as operações restantes na fila de simultaneidade terminem.

A operação de conjunto de pilhas com Tolerância a falhas flexível atinge 6 falhas, mas deve concluir o que resta na fila de simultaneidade.

O StackSets continua a implantar instâncias de pilha que já estão na fila de simultaneidade. Isso significa que o número de instâncias de pilha com falha pode ser maior do que a Tolerância a falhas. No exemplo a seguir, há oito instâncias de pilha com falha porque a fila de simultaneidade ainda tinha sete operações a serem executadas, embora a operação do conjunto de pilhas tivesse atingido a Tolerância a falhas de 5.

A operação do conjunto de pilhas tem um total de 8 falhas porque tinha 7 implantações restantes na fila depois de atingir o limite de falhas.

Neste exemplo, o StackSets implantou 15 instâncias de pilha (sete com êxito e oito com falha) antes de interromper a operação da pilha.

Escolha entre Alta tolerância a falhas e Tolerância moderada a falhas com base na velocidade de implantação

Escolher entre Alta tolerância a falhas e Tolerância moderada a falhas depende da velocidade de preferência da implantação do conjunto de pilhas e do número permitido de falhas de implantação.

As tabelas a seguir mostram como cada modo de simultaneidade lida com uma operação de conjunto de pilhas que falha ao tentar implantar um total de mil instâncias de pilha. Em cada cenário, o valor de Tolerância a falhas é definido como 100 instâncias de pilha e o valor Máximo de contas simultâneas é definido como 250 instâncias de pilha.

Embora o StackSets realmente coloque as contas em fila como uma janela deslizante (consulte Como cada Modo de Simultaneidade funciona), este exemplo mostra a operação em lotes para demonstrar a velocidade de cada modo.

Alta tolerância a falhas

Este exemplo usando o modo de Alta tolerância a falhas reduz a simultaneidade real em relação ao número de falhas que ocorrem em cada lote anterior. Cada lote tem 20 instâncias com falha, o que reduz a simultaneidade real do lote seguinte em 20 até que a operação do conjunto de pilhas atinja o valor de Tolerância a falhas de 100.

Na tabela a seguir, a simultaneidade real inicial do primeiro lote é de 101 instâncias de pilha. A simultaneidade real é 101 porque é o valor mais baixo do Máximo de contas simultâneas (250) e da Tolerância a falhas (100) +1. Cada lote contém 20 implantações de instâncias de pilha com falha, o que reduz a simultaneidade real de cada lote seguinte em 20 instâncias de pilha.

Alta tolerância a falhas Lote 1 Lote 2 Lote 3 Lote 4 Lote 5 Lote 6
Contagem real de simultaneidade 101 81 61 41 21 -
Contagem de instâncias com falha 20 20 20 20 20 -
Contagem de instâncias de pilha com êxito 81 61 41 21 1 -

A operação usando a Alta tolerância a falhas concluiu 305 implantações de instâncias de pilha em cinco lotes no momento em que a operação de conjunto de pilhas atingiu a Tolerância a falhas de cem instâncias de pilha. A operação do conjunto de pilhas implanta com êxito 205 instâncias de pilha antes de falhar.

Tolerância moderada a falhas

Este exemplo usando o modo de Tolerância moderada a falhas mantém a mesma contagem real de simultaneidade definida pelo valor Máximo de contas simultâneas de 250 instâncias de pilha, independentemente do número de instâncias com falha. As operações do conjunto de pilhas mantêm a mesma simultaneidade real até atingir o valor de Tolerância a falhas de cem instâncias.

Na tabela a seguir, a simultaneidade real inicial do primeiro lote é de 250 instâncias de pilha. A simultaneidade real é 250 porque o valor do Máximo de contas simultâneas está definido como 250 e o modo Tolerância moderada a falhas permite que o StackSets use esse valor como a simultaneidade real, independentemente do número de falhas. Embora haja 50 falhas em cada um dos lotes neste exemplo, a simultaneidade real permanece inalterada.

Tolerância moderada a falhas Lote 1 Lote 2 Lote 3 Lote 4 Lote 5 Lote 6
Contagem real de simultaneidade 250 250 - - - -
Contagem de instâncias com falha 50 50 - - - -
Contagem de instâncias de pilha com êxito 200 200 - - - -

Usando o mesmo valor de Máximo de contas simultâneas e Tolerância a falhas, a operação usando o modo Tolerância moderada a falhas concluiu 500 implantações de instâncias de pilha em dois lotes. A operação do conjunto de pilhas implanta com êxito 400 instâncias de pilha antes de falhar.

Escolher seu Modo de Simultaneidade usando o AWS Management Console

Você pode escolher o Modo de Simultaneidade para conjuntos de pilhas novos ou existentes na página Definir opções de implantação.

  1. Consulte a seção Opções de implantação da página Definir opções de implantação ao criar um novo conjunto de pilhas ou atualizar um conjunto de pilhas existente.

  2. Escolha Tolerância a falhas estrita ou Tolerância a falhas flexível para seu Modo de simultaneidade escolhido.

  3. Escolha Próximo para continuar.

Para obter mais informações sobre a criação de novos conjuntos de pilhas usando o AWS Management Console, consulte Crie um conjunto de pilhas usando o AWS Management Console ou a AWS CLI.

Para obter mais informações sobre a atualização de conjuntos de pilhas existentes usando o AWS Management Console, consulte Atualizar o conjunto de pilhas usando o console do AWS CloudFormation.

Escolher seu Modo de Simultaneidade usando o AWS Command Line Interface

Você pode usar o parâmetro ConcurrencyMode com os seguintes comandos do StackSets:

Esses comandos têm um parâmetro existente chamado --operation-preferences que pode usar a configuração ConcurrencyMode. O ConcurrencyMode pode ser definido com um dos seguintes valores:

  • STRICT_FAILURE_TOLERANCE

  • SOFT_FAILURE_TOLERANCE

O seguinte exemplo cria uma instância de pilha usando o ConcurrencyMode STRICT_FAILURE_TOLERANCE, com uma FailureToleranceCount definida como 10 e uma MaxConcurrentCount definida como 5:

aws cloudformation create-stack-instances \ --stack-set-name example-stackset \ --accounts 123456789012 \ --regions eu-west-1 \ --operation-preferences ConcurrencyMode=STRICT_FAILURE_TOLERANCE,FailureToleranceCount=10,MaxConcurrentCount=5

Para obter mais informações sobre a criação de novos conjuntos de pilhas usando a AWS Command Line Interface (CLI), consulte Crie um conjunto de pilhas usando o AWS Management Console ou a AWS CLI.

Para obter mais informações sobre a atualização de conjuntos de pilhas existentes usando o AWS CLI, consulte Atualizar o conjunto de pilhas usando a AWS CLI.