

# Escolher o modo de simultaneidade para o CloudFormation StackSets
<a name="concurrency-mode"></a>

O **Modo de simultaneidade** é um parâmetro para [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_StackSetOperationPreferences.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_StackSetOperationPreferences.html) que permite que você escolha como o nível de simultaneidade se comporta durante as operações de StackSets. 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** \$11. A simultaneidade real inicial é definida como o menor valor do **Máximo de contas simultâneas** ou o valor de **Tolerância a falhas** \$11. 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 StackSets sejam executadas no nível de simultaneidade definido pelo valor de **Máximo de contas simultâneas**, independentemente do número de falhas.

A **Tolerância a falhas estrita** reduz a velocidade de implantação à medida que ocorrem falhas na operação do StackSet 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 CloudFormation. Isso permite que você analise e resolva falhas de operação do StackSet 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](stacksets-troubleshooting.md#common-reasons-for-stack-operation-failure).

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 de StackSets](stacksets-concepts.md#stackset-ops-options).

## Como cada Modo de Simultaneidade funciona
<a name="concurrency-mode-example"></a>

As imagens abaixo fornecem uma representação visual de como cada **Modo de simultaneidade** funciona durante uma operação de StackSet. 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 StackSet usando a **Tolerância a falhas estrita** tem o valor de **Tolerância a falhas** definido como 5 e o valor de **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 \$11 é menor do que o valor do **Máximo de contas simultâneas**.  
A imagem abaixo mostra o impacto que o valor da **Tolerância a falhas** tem no valor de **Máximo de contas simultâneas**, e o impacto que ambos têm na simultaneidade real da operação do StackSet:  

![\[Uma operação de StackSet usando a tolerância a falhas estrita. A tolerância a falhas é 5, a conta simultânea máxima é 10 e a simultaneidade é 6.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-strict-failure-tolerance-1.png)

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 StackSet usando a Tolerância a falhas estrita tem duas implantações com êxito e uma falha.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-strict-failure-tolerance-2.png)


![\[A operação de StackSet usando Tolerância a falhas estrita reduziu a simultaneidade real para cinco, agora que há uma falha.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-strict-failure-tolerance-3.png)

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 StackSet usando a Tolerância a falhas estrita agora tem três implantações com falha. A simultaneidade foi reduzida para 3.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-strict-failure-tolerance-4.png)

O StackSets falha na operação de StackSets quando o número de instâncias de pilha com falha é igual ao valor definido de **Tolerância a falhas** \$11. 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 StackSet usando a Tolerância a falhas estrita agora tem seis implantações com falha. A operação do StackSet falha.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-strict-failure-tolerance-5.png)

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

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

![\[Uma operação de StackSet com Tolerância moderada a falhas. A tolerância a falhas é de 5 contas simultâneas máximas e a simultaneidade real é de 10.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-soft-failure-tolerance-1.png)

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 do StackSet com Tolerância moderada a falhas encontra a primeira falha. A simultaneidade real permanece em 10.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-soft-failure-tolerance-2.png)

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

![\[A operação do StackSet com Tolerância moderada a falhas agora tem dois com êxito e três falhas, mas a simultaneidade real ainda é 10.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-soft-failure-tolerance-3.png)

O StackSets falha na operação de StackSets 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 do StackSet com Tolerância moderada a falhas atinge seis falhas, mas deve concluir o que resta na fila de simultaneidade.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-soft-failure-tolerance-4.png)

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 StackSet tivesse atingido a **Tolerância a falhas** de cinco.  

![\[A operação do StackSet tem um total de oito falhas porque tinha sete implantações restantes na fila depois de atingir o limite de falhas.\]](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/concurrency-soft-failure-tolerance-5.png)

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
<a name="concurrency-mode-comparison"></a>

Escolher entre **Tolerância a falhas estrita** e **Tolerância moderada a falhas** depende da velocidade de preferência da implantação do StackSet 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 StackSet 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](#concurrency-mode-example)), este exemplo mostra a operação em lotes para demonstrar a velocidade de cada modo.

### Alta tolerância a falhas
<a name="concurrency-mode-comparison-strict"></a>

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 vinte instâncias com falha, o que reduz a simultaneidade real do lote seguinte em vinte até que a operação do StackSet atinja o valor de **Tolerância a falhas** de cem.

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) \$11. 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 **Tolerância a falhas estrita** concluiu 305 implantações de instâncias de pilha em cinco lotes no momento em que a operação do StackSet atingiu a **Tolerância a falhas** de cem instâncias de pilha. A operação do StackSet implanta com êxito 205 instâncias de pilha antes de falhar.

### Tolerância moderada a falhas
<a name="concurrency-mode-comparison-soft"></a>

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 StackSet 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 StackSet implanta com êxito 400 instâncias de pilha antes de falhar.

## Escolher o modo de simultaneidade (console)
<a name="concurrency-mode-console"></a>

Ao criar ou atualizar um StackSet, na página **Definir opções de implantação**, em **Modo de simultaneidade**, escolha **Tolerância a falhas estrita** ou **Tolerância moderada a falhas**.

## Escolher o modo de simultaneidade (AWS CLI)
<a name="concurrency-mode-cli"></a>

Você pode usar o parâmetro `ConcurrencyMode` com os seguintes comandos do StackSets:
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-instances.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-instances.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-stack-instances.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-stack-instances.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/detect-stack-set-drift.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/detect-stack-set-drift.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/import-stacks-to-stack-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/import-stacks-to-stack-set.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-instances.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-instances.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-set.html)

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 exemplo a seguir cria uma instância de pilha usando o `ConcurrencyMode` `STRICT_FAILURE_TOLERANCE` com `FailureToleranceCount` definida como 10 e `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
```

**nota**  
Para obter os procedimentos detalhados de criação e atualização de um StackSet, consulte os seguintes tópicos:  
[Criar StackSets (permissões autogerenciadas)](stacksets-getting-started-create-self-managed.md)
[Criar um conjunto de pilhas (permissões gerenciadas pelo serviço)](stacksets-orgs-associate-stackset-with-org.md)
[Atualizar StackSets](stacksets-update.md)