Wählen Sie den Gleichzeitigkeitsmodus für CloudFormation StackSets - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wählen Sie den Gleichzeitigkeitsmodus für CloudFormation StackSets

Gleichzeitigkeitsmodus ist ein Parameter für StackSetOperationPreferences mit dem Sie festlegen können, wie sich die Gleichzeitigkeitsebene bei StackSet-Operationen verhält. Dabei haben Sie die Wahl zwischen den folgenden Modi:

  • Strikte Fehlertoleranz: Diese Option senkt den Umfang der Parallelität dynamisch, damit die Anzahl der fehlerhaften Konten niemals den Wert der Fehlertoleranz +1 überschreitet. Die anfängliche tatsächliche Parallelität wird auf den Wert der Option Maximale Anzahl gleichzeitiger Konten oder auf den Wert der Fehlertoleranz +1 festgelegt (je nachdem, welcher niedriger ist). Die tatsächliche Parallelität wird dann proportional zur Anzahl der Fehler reduziert. Dies ist das Standardverhalten.

  • Lose Fehlertoleranz: Diese Option entkoppelt die Fehlertoleranz von der tatsächlichen Parallelität. Dadurch können StackSet-Operationen unabhängig von der Anzahl der Ausfälle mit der Gleichzeitigkeit ausgeführt werden, die durch den Wert Maximale gleichzeitige Konten festgelegt wurde.

Strikte Fehlertoleranz senkt die Bereitstellungsgeschwindigkeit, wenn StackSet-Operationen fehlschlagen, da die Gleichzeitigkeit bei jedem Fehler abnimmt. Soft Failure Tolerance legt den Schwerpunkt auf eine schnelle Bereitstellung und nutzt gleichzeitig die Sicherheitsfunktionen von CloudFormation. Auf diese Weise können Sie Fehler im StackSet-Betrieb auf häufige Probleme hin überprüfen und beheben, z. B. im Zusammenhang mit vorhandenen Ressourcen, Dienstkontingenten und Berechtigungen.

Weitere Informationen zu Fehlern bei StackSets-Stack-Vorgängen finden Sie unter Häufige Gründe für Störungen der Stack-Operationen.

Weitere Informationen zu den Optionen Maximale Anzahl gleichzeitiger Konten und Fehlertoleranz finden Sie unter StackSet Operationsoptionen.

So funktionieren die einzelnen Parallelitätsmodi

Die folgenden Abbildungen zeigen, wie jeder Gleichzeitigkeitsmodus während einer StackSet-Operation funktioniert. Die Knotenfolge stellt eine Bereitstellung in einer einzelnen AWS-Region dar und jeder Knoten ist ein Ziel-AWS-Konto.

Strikte Fehlertoleranz

Wenn für eine StackSet-Operation mit Strenge Fehlertoleranz der Wert Fehlertoleranz auf 5 und der Wert Maximale Anzahl gleichzeitiger Konten auf 10 gesetzt wurde, beträgt die tatsächliche Gleichzeitigkeit 6. Die tatsächliche Parallelität beträgt 6, da der Wert der Fehlertoleranz von 5 +1 niedriger ist als der Wert für Maximale Anzahl gleichzeitiger Konten.

Die folgende Abbildung zeigt, wie sich der Wert Fehlertoleranz auf den Wert Maximale gleichzeitige Konten auswirkt und welche Auswirkungen beide auf die tatsächliche Gleichzeitigkeit der StackSet-Operation haben:

Eine StackSet-Operation mit strenger Fehlertoleranz. Die Fehlertoleranz ist 5, die maximale Anzahl gleichzeitiger Konten ist 10 und die Gleichzeitigkeit ist 6.

Wenn die Bereitstellung beginnt und es fehlerhafte Stack-Instances gibt, verringert sich die tatsächliche Parallelität, um eine sichere Bereitstellung zu gewährleisten. Die tatsächliche Parallelität verringert sich von 6 auf 5, wenn StackSets 1 Stack-Instance nicht bereitstellen kann.

Der Vorgang StackSet mit strikter Fehlertoleranz hat 2 erfolgreiche Einsätze und 1 Fehlschlag.
Die StackSet-Operation mit strikter Fehlertoleranz hat die tatsächliche Gleichzeitigkeit auf 5 reduziert, da es nun einen Fehler gibt.

Der Modus Strikte Fehlertoleranz verringert die tatsächliche Parallelität proportional zur Anzahl der fehlerhaften Stack-Instances. Im folgenden Beispiel verringert sich die tatsächliche Parallelität von 5 auf 3, da StackSets 2 weitere Stack-Instances nicht bereitstellen kann, wodurch sich die Gesamtzahl der fehlerhaften Stack-Instances auf 3 erhöht.

Der Vorgang StackSet mit strikter Fehlertoleranz hat jetzt 3 fehlgeschlagene Einsätze. Die Gleichzeitigkeit hat sich auf 3 reduziert.

StackSets schlägt die Operation StackSet fehl, wenn die Anzahl der fehlgeschlagenen Stack-Instances dem definierten Wert von Fehlertoleranz +1 entspricht. Im folgenden Beispiel schlägt StackSets beim Vorgang fehl, wenn es 6 fehlerhafte Stack-Instances gibt und der Wert der Fehlertoleranz 5 beträgt.

Der Vorgang StackSet mit strikter Fehlertoleranz hat jetzt 6 fehlgeschlagene Einsätze. Der Vorgang StackSet schlägt fehl.

In diesem Beispiel hat CloudFormation 9 Stack-Instances bereitgestellt (3 erfolgreich und 6 fehlgeschlagen), bevor der StackSet-Vorgang gestoppt wurde.

Lose Fehlertoleranz

Wenn für eine StackSet-Operation mit Soft Failure Tolerance der Wert Failure Tolerance auf 5 und der Wert Maximum concurrent accounts auf 10 gesetzt wurde, beträgt die tatsächliche Gleichzeitigkeit 10.

Ein StackSet-Vorgang mit weicher Fehlertoleranz. Die Fehlertoleranz beträgt maximal 5 gleichzeitige Konten und die tatsächliche Gleichzeitigkeit beträgt 10.

Wenn die Bereitstellung beginnt und es fehlerhafte Stack-Instances gibt, ändert sich die tatsächliche Parallelität nicht. Im folgenden Beispiel ist 1 Stack-Vorgang fehlgeschlagen, die tatsächliche Parallelität bleibt jedoch bei 10.

Die Operation StackSet mit Soft Failure Tolerance trifft auf den ersten Fehler. Die tatsächliche Gleichzeitigkeit bleibt bei 10.

Die tatsächliche Parallelität bleibt auch nach 2 weiteren Stack-Instance-Fehlern bei 10.

Die Operation StackSet mit Soft Failure Tolerance hat jetzt 2 Erfolge und 3 Fehlschläge, aber die tatsächliche Gleichzeitigkeit beträgt immer noch 10.

StackSets schlägt die Operation StackSet fehl, wenn die fehlgeschlagenen Stack-Instances den Wert Fehlertoleranz überschreiten. Im folgenden Beispiel schlägt StackSets beim Vorgang fehl, wenn es 6 fehlerhafte Stack-Instances gibt und die Zahl der Fehlertoleranz 5 beträgt. Der Vorgang wird jedoch erst beendet, wenn die restlichen Vorgänge in der Parallelitätswarteschlange abgeschlossen sind.

Die StackSet-Operation mit Soft Failure Tolerance erreicht 6 Fehlschläge, muss aber den Rest in der Warteschlange für Gleichzeitigkeit erledigen.

StackSets stellt weiterhin Stack-Instances bereit, die sich bereits in der Parallelitätswarteschlange befinden. Das bedeutet, dass die Anzahl der fehlerhaften Stack-Instances höher sein kann als die Fehlertoleranz. Im folgenden Beispiel gibt es 8 fehlgeschlagene Stack-Instances, weil die Warteschlange für Gleichzeitigkeit noch 7 Operationen auszuführen hatte, obwohl die Operation StackSet die Fehlertoleranz von 5 erreicht hatte.

Der Vorgang StackSet ist insgesamt 8 Mal fehlgeschlagen, da nach Erreichen des Schwellenwerts für Fehlschläge noch 7 Verteilungen in der Warteschlange verblieben sind.

In diesem Beispiel hat StackSets 15 Stack-Instances bereitgestellt (7 erfolgreich und 8 fehlerhaft), bevor der Stack-Vorgang gestoppt wurde.

Wählen zwischen strikter und loser Fehlertoleranz auf Grundlage der Bereitstellungsgeschwindigkeit

Die Wahl zwischen den Modi Strenge Fehlertoleranz und Weiche Fehlertoleranz hängt von der bevorzugten Geschwindigkeit Ihres StackSet-Einsatzes und der zulässigen Anzahl von Einsatzfehlern ab.

Die folgenden Tabellen zeigen, wie jeder Gleichzeitigkeitsmodus einen StackSet-Vorgang behandelt, der beim Versuch, insgesamt 1000 Stack-Instances bereitzustellen, fehlschlägt. In jedem Szenario ist der Wert der Fehlertoleranz auf 100 Stack-Instances und der Wert für Maximale Anzahl gleichzeitiger Konten auf 250 Stack-Instances eingestellt.

Während StackSets Konten tatsächlich in einem gleitenden Zeitfenster in die Warteschlange stellt (siehe So funktionieren die einzelnen Parallelitätsmodi), zeigt dieses Beispiel den Vorgang stapelweise, um die Geschwindigkeit der einzelnen Modi zu demonstrieren.

Strikte Fehlertoleranz

In diesem Beispiel mit dem Modus Strikte Fehlertoleranz wird die tatsächliche Parallelität im Verhältnis zur Anzahl der Fehler verringert, die jeweils im vorherigen Stapel aufgetreten sind. Jeder Stapel hat 20 fehlgeschlagene Instances, wodurch die tatsächliche Gleichzeitigkeit des folgenden Stapels um 20 verringert wird, bis der StackSet-Vorgang den Wert Fehlertoleranz von 100 erreicht.

In der folgenden Tabelle liegt die anfängliche tatsächliche Parallelität des ersten Stapels bei 101 Stack-Instances. Die tatsächliche Parallelität beträgt 101, da der Wert der Fehlertoleranz (100) +1 niedriger ist als der Wert für Maximale Anzahl gleichzeitiger Konten (250). Jeder Stapel enthält 20 fehlerhafte Bereitstellungen von Stack-Instances, wodurch sich die tatsächliche Parallelität jedes nachfolgenden Stapels um 20 Stack-Instances verringert.

Strikte Fehlertoleranz Stapel 1 Stapel 2 Stapel 3 Stapel 4 Stapel 5 Stapel 6
Anzahl der tatsächlichen Parallelität 101 81 61 41 21 -
Anzahl fehlerhafter Instances 20 20 20 20 20 -
Anzahl erfolgreicher Stack-Instances 81 61 41 21 1 -

Der Vorgang mit Strenge Fehlertoleranz schloss 305 Stack-Instance-Bereitstellungen in 5 Stapeln ab, als der Vorgang StackSet die Fehlertoleranz von 100 Stack-Instances erreichte. Der Vorgang StackSet setzt 205 Stack-Instances erfolgreich ein, bevor er fehlschlägt.

Lose Fehlertoleranz

In diesem Beispiel mit dem Modus Lose Fehlertoleranz wird unabhängig von der Anzahl der fehlerhaften Instances die gleiche Anzahl der tatsächlichen Parallelität beibehalten, die durch den Wert für Maximale Anzahl gleichzeitiger Konten von 250 Stack-Instances definiert ist. Die StackSet-Operationen behalten die gleiche tatsächliche Gleichzeitigkeit bei, bis sie den Fehlertoleranz-Wert von 100 Instances erreichen.

In der folgenden Tabelle liegt die anfängliche tatsächliche Parallelität des ersten Stapels bei 250 Stack-Instances. Die tatsächliche Parallelität beträgt 250, weil der Wert für Maximale Anzahl gleichzeitiger Konten auf 250 eingestellt ist und StackSets diesen Wert aufgrund des Modus Lose Fehlertoleranz unabhängig von der Anzahl der Fehler als tatsächliche Parallelität nutzen kann. Obwohl in diesem Beispiel in jedem Stapel 50 Fehler aufgetreten sind, bleibt die tatsächliche Parallelität davon unberührt.

Lose Fehlertoleranz Stapel 1 Stapel 2 Stapel 3 Stapel 4 Stapel 5 Stapel 6
Anzahl der tatsächlichen Parallelität 250 250 - - - -
Anzahl fehlerhafter Instances 50 50 - - - -
Anzahl erfolgreicher Stack-Instances 200 200 - - - -

Mit den gleichen Werten für Maximale Anzahl gleichzeitiger Konten und Fehlertoleranz wurden beim Vorgang mit dem Modus Lose Fehlertoleranz 500 Bereitstellungen von Stack-Instances in 2 Stapeln abgeschlossen. Der Vorgang StackSet setzt erfolgreich 400 Stack-Instances ein, bevor er fehlschlägt.

Auswahl des Gleichzeitigkeitsmodus (Konsole)

Wenn Sie ein StackSet erstellen oder aktualisieren, wählen Sie auf der Seite Bereitstellungsoptionen festlegen für Gleichzeitigkeitsmodusdie Option Strenge Fehlertoleranz oder Weiche Fehlertoleranz.

Auswahl des Gleichzeitigkeitsmodus (AWS CLI)

Den Parameter ConcurrencyMode können Sie bei den folgenden StackSets-Befehlen verwenden:

Diese Befehle verfügen über einen bestehenden Parameter namens --operation-preferences, bei dem die Einstellung ConcurrencyMode verwendet werden kann. ConcurrencyMode kann auf einen der folgenden Werte eingestellt werden:

  • STRICT_FAILURE_TOLERANCE

  • SOFT_FAILURE_TOLERANCE

Das folgende Beispiel erstellt eine Stack-Instance unter Verwendung von STRICT_FAILURE_TOLERANCE,ConcurrencyMode wobei FailureToleranceCount auf 10 und MaxConcurrentCount auf 5 gesetzt wird.

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
Anmerkung

Detaillierte Anweisungen zum Erstellen und Aktualisieren eines StackSets finden Sie in den folgenden Themen: