Scegli la modalità Concurrency per AWS CloudFormation StackSets - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Scegli la modalità Concurrency per AWS CloudFormation StackSets

La modalità di concorrenza è un parametro StackSetOperationPreferencesche consente di scegliere il comportamento del livello di concorrenza durante le operazioni. StackSet Puoi scegliere tra le seguenti modalità:

  • Tolleranza rigorosa ai guasti: questa opzione riduce dinamicamente il livello di simultaneità per garantire che il numero di account non riusciti non superi mai il valore della tolleranza ai guasti +1. La simultaneità effettiva iniziale viene impostata sul valore più basso tra quello degli account simultanei massimi e quello della tolleranza ai guasti +1. La simultaneità effettiva viene quindi ridotta proporzionalmente in base al numero di errori. Questo è il comportamento che segue di default.

  • Tolleranza flessibile ai guasti: questa opzione disaccoppia la tolleranza ai guasti dalla simultaneità effettiva. Ciò consente l'esecuzione StackSet delle operazioni al livello di concorrenza impostato dal valore Maximum concurrent accounts, indipendentemente dal numero di errori.

La tolleranza rigorosa ai guasti riduce la velocità di implementazione in caso di errori StackSet operativi, poiché la concorrenza diminuisce per ogni errore. Soft Failure Tolerance dà priorità alla velocità di implementazione sfruttando al contempo le funzionalità di sicurezza. CloudFormation Ciò consente di esaminare e risolvere gli errori StackSet operativi per problemi comuni, come quelli relativi alle risorse esistenti, alle quote di servizio e alle autorizzazioni.

Per ulteriori informazioni sugli errori delle operazioni di StackSets stack, vedere. Motivi comuni per operazioni di stack non riuscite

Per ulteriori informazioni sul numero massimo di account simultanei e sulla tolleranza ai guasti, consulta la sezione StackSet opzioni operative.

Come funziona ogni modalità di simultaneità

Le immagini seguenti forniscono una rappresentazione visiva del funzionamento di ciascuna modalità Concurrency durante un'operazione. StackSet La stringa di nodi rappresenta una distribuzione su single Regione AWS e ogni nodo è un target Account AWS.

Tolleranza rigorosa ai guasti

Quando un' StackSet operazione che utilizza Strict Failure Tolerance ha il valore di tolleranza di errore impostato su 5 e il valore Maximum concurrent accounts è impostato su 10, la concorrenza effettiva è 6. La simultaneità effettiva è 6 perché il valore di tolleranza ai guasti di 5 +1 è inferiore al valore del numero massimo di account simultanei.

L'immagine seguente mostra l'impatto che il valore di tolleranza di errore ha sul valore Maximum concurrent accounts e l'impatto che entrambi hanno sull'effettiva concomitanza dell'operazione: StackSet

Un' StackSet operazione che utilizza una rigorosa tolleranza agli errori. La tolleranza di errore è 5, l'account simultaneo massimo è 10 e la concorrenza è 6.

Quando inizia l'implementazione e si verificano istanze di stack non riuscite, la simultaneità effettiva si riduce per offrire un'esperienza di implementazione sicura. La concorrenza effettiva si riduce da 6 a 5 quando StackSets non riesce a distribuire 1 istanza dello stack.

L' StackSet operazione che utilizza Strict Failure Tolerance ha 2 implementazioni riuscite e 1 errore.
L' StackSet operazione che utilizza Strict Failure Tolerance ha ridotto la concorrenza effettiva a 5 ora che si è verificato un errore.

La modalità di tolleranza rigorosa ai guasti riduce la simultaneità effettiva proporzionalmente al numero di istanze di stack non riuscite. Nell'esempio seguente, la concorrenza effettiva si riduce da 5 a 3 quando StackSets non riesce a implementare altre 2 istanze dello stack, portando il totale delle istanze dello stack non riuscite a 3.

L' StackSet operazione che utilizza Strict Failure Tolerance ha ora 3 implementazioni fallite. La concorrenza è stata ridotta a 3.

StackSets fallisce l' StackSet operazione quando il numero di istanze dello stack fallite è uguale al valore definito di Failure tolerance +1. Nell'esempio seguente, l'operazione StackSets fallisce quando ci sono 6 istanze di stack fallite e il valore di tolleranza di errore è 5.

L' StackSet operazione che utilizza Strict Failure Tolerance ora ha 6 implementazioni fallite. L' StackSet operazione non riesce.

In questo esempio, sono CloudFormation state distribuite 9 istanze dello stack (3 riuscite e 6 non riuscite) prima di interrompere l'operazione. StackSet

Tolleranza flessibile ai guasti

Quando per un' StackSet operazione che utilizza Soft Failure Tolerance il valore di tolleranza di errore è impostato su 5 e il valore Maximum concurrent accounts è impostato su 10, la concorrenza effettiva è 10.

Un' StackSet operazione con Soft Failure Tolerance. La tolleranza al fallimento è pari a un massimo di 5 conti concorrenti e la concorrenza effettiva è pari a 10.

Quando inizia l'implementazione e si verificano istanze di stack non riuscite, la simultaneità effettiva non cambia. Nell'esempio seguente, 1 operazione di stack non è riuscita, ma la simultaneità effettiva rimane a 10.

L' StackSet operazione con Soft Failure Tolerance rileva il primo errore. La concorrenza effettiva rimane pari a 10.

La simultaneità effettiva rimane pari a 10 anche dopo altri 2 errori dell'istanza di stack.

L' StackSet operazione con Soft Failure Tolerance ora ha avuto 2 successi e 3 fallimenti, ma la concorrenza effettiva è ancora 10.

StackSets fallisce l' StackSet operazione quando le istanze dello stack fallite superano il valore di tolleranza di errore. Nell'esempio seguente, l'operazione StackSets fallisce quando ci sono 6 istanze di stack fallite e il numero di tolleranza di errore è 5. Tuttavia, l'operazione non terminerà fino alla fine delle operazioni rimanenti nella coda di simultaneità.

L' StackSet operazione con Soft Failure Tolerance raggiunge i 6 fallimenti, ma deve terminare ciò che resta nella coda di concorrenza.

StackSets continua a distribuire istanze stack già presenti nella coda di concorrenza. Ciò significa che il numero delle istanze di stack non riuscite può essere superiore alla tolleranza ai guasti. Nell'esempio seguente, ci sono 8 istanze dello stack fallite perché la coda di concorrenza aveva ancora 7 operazioni da eseguire, anche se l'operazione aveva raggiunto la StackSet tolleranza di errore di 5.

L' StackSet operazione ha un totale di 8 errori perché dopo aver raggiunto la soglia di errore erano rimaste 7 distribuzioni in coda.

In questo esempio, sono StackSets state distribuite 15 istanze dello stack (7 riuscite e 8 fallite) prima di interrompere l'operazione dello stack.

Scelta tra Tolleranza rigorosa ai guasti e Tolleranza flessibile ai guasti in base alla velocità di implementazione

La scelta tra le modalità Strict failure tolerance e Soft failure tolerance dipende dalla velocità preferita di StackSet implementazione e dal numero consentito di errori di implementazione.

Le tabelle seguenti mostrano come ciascuna modalità di concorrenza gestisce un' StackSet operazione che non riesce durante il tentativo di distribuire un totale di 1000 istanze di stack. In ogni scenario, il valore di tolleranza ai guasti è impostato su 100 istanze di stack e il valore numero massimo di account simultanei è impostato su 250 istanze di stack.

Sebbene StackSets in realtà gli account vengano messi in coda come una finestra scorrevole (vediCome funziona ogni modalità di simultaneità), questo esempio mostra l'operazione in batch per dimostrare la velocità di ciascuna modalità.

Tolleranza rigorosa ai guasti

Questo esempio, che utilizza la modalità di tolleranza rigorosa ai guasti, riduce la simultaneità effettiva rispetto al numero di errori che si verificano in ogni batch precedente. Ogni batch presenta 20 istanze non riuscite, il che riduce quindi la concorrenza effettiva del batch successivo di 20 fino a quando l' StackSet operazione non raggiunge il valore di tolleranza di errore di 100.

Nella tabella seguente, la simultaneità effettiva iniziale del primo batch è pari a 101 istanze di stack. La simultaneità effettiva è 101 perché è il valore più basso tra quello del numero massimo di account simultanei (250) e quello della tolleranza ai guasti (100) +1. Ogni batch contiene 20 distribuzioni di istanze di stack non riuscite, il che riduce quindi la simultaneità effettiva di ogni batch successivo di 20 istanze di stack.

Tolleranza rigorosa ai guasti Batch 1 Batch 2 Batch 3 Batch 4 Batch 5 Batch 6
Conteggio effettivo della simultaneità 101 81 61 41 21 -
Numero di istanze non riuscite 20 20 20 20 20 -
Numero di istanze di stack riuscite 81 61 41 21 1 -

L'operazione che utilizza Strict failure tolerance ha completato 305 implementazioni di istanze stack in 5 batch quando l' StackSet operazione ha raggiunto la tolleranza di errore di 100 istanze stack. L' StackSet operazione distribuisce correttamente 205 istanze dello stack prima che fallisca.

Tolleranza flessibile ai guasti

Questo esempio, che utilizza la modalità di tolleranza flessibile ai guasti, mantiene lo stesso conteggio effettivo di simultaneità definito dal valore numero massimo di account simultanei di 250 istanze di stack, indipendentemente dal numero di istanze non riuscite. Le StackSet operazioni mantengono la stessa concorrenza effettiva fino a raggiungere il valore di tolleranza di errore di 100 istanze.

Nella tabella seguente, la simultaneità effettiva iniziale del primo batch è pari a 250 istanze di stack. La concorrenza effettiva è 250 perché il valore Massimo di conti concorrenti è impostato su 250 e la modalità Soft failure tolerance consente di StackSets utilizzare questo valore come concorrenza effettiva, indipendentemente dal numero di errori. Anche se in questo esempio sono presenti 50 errori in ciascuno dei batch, la simultaneità effettiva rimane inalterata.

Tolleranza flessibile ai guasti Batch 1 Batch 2 Batch 3 Batch 4 Batch 5 Batch 6
Conteggio effettivo della simultaneità 250 250 - - - -
Numero di istanze non riuscite 50 50 - - - -
Numero di istanze di stack riuscite 200 200 - - - -

Utilizzando lo stesso valore numero massimo di account simultanei e tolleranza ai guasti, l'operazione che utilizza la modalità di tolleranza flessibile ai guasti ha completato 500 implementazioni di istanze di stack in 2 batch. L' StackSet operazione distribuisce correttamente 400 istanze dello stack prima che fallisca.

Scelta della modalità Concurrency (console)

Durante la creazione o l'aggiornamento di un StackSet file, nella pagina Imposta opzioni di distribuzione, per la modalità Concurrency, scegli Strict failure tolerance o Soft failure tolerance.

Scelta della modalità Concurrency ()AWS CLI

È possibile utilizzare il ConcurrencyMode parametro con i seguenti StackSets comandi:

Questi comandi hanno un parametro esistente chiamato --operation-preferences che può utilizzare l'impostazione ConcurrencyMode. ConcurrencyMode può essere impostata su uno dei seguenti valori:

  • STRICT_FAILURE_TOLERANCE

  • SOFT_FAILURE_TOLERANCE

L'esempio seguente crea un'istanza stack utilizzando STRICT_FAILURE_TOLERANCEConcurrencyMode, con un FailureToleranceCount set su 10 e un MaxConcurrentCount set su 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

Per procedure dettagliate per la creazione e l'aggiornamento di un StackSet, consultate i seguenti argomenti: