StackSets-Konzepte - AWS CloudFormation

StackSets-Konzepte

Wenn Sie mit StackSets arbeiten, arbeiten Sie mit Stack-Sets, Stack-Instances und Stacks.

Administrator- und Ziel-Konten

Ein Administratorkonto ist das AWS-Konto, in dem Sie Stack-Sets erstellen. Bei Stack-Sets mit serviceverwalteten Berechtigungen ist das Administratorkonto entweder das management account-Konto der Organisation oder ein delegiertes Administratorkonto. Sie können ein Stack-Set wird verwalten, indem Sie sich bei dem AWS-Administratorkonto anmelden, in dem es erstellt wurde. Ein Ziel-Konto ist das Konto, in dem Sie einen oder mehrere Stacks in Ihrem Stack-Set erstellen, aktualisieren oder löschen. Um ein Stack-Set in einem Zielkonto erstellen zu können, müssen Sie eine Vertrauensstellung zwischen den Administrator- und Ziel-Konten einrichten.

Stack-Sets

Ein Stack-Set ermöglicht Ihnen, Stacks in AWS-Konten über verschiedenen Regionen zu erstellen, indem Sie eine einzelne CloudFormation-Vorlage verwenden. Alle Ressourcen in einem Stack werden durch die CloudFormation-Vorlage des Stacks-Sets definiert. Beim Erstellen des Stacks geben Sie die zu verwendende Vorlage zusätzlich zu den von der Vorlage erforderlichen Parameter und Funktionen an.

Nachdem Sie einen Stack-Satz definiert haben, können Sie Stacks in den von Ihnen angegebenen Zielkonten und Regionen erstellen, aktualisieren oder löschen. Beim Erstellen, Aktualisieren und Löschen von Stacks können Sie auch Operationsprioritäten angeben, z. B. die Reihenfolge der Regionen, in denen die Operationen ausgeführt werden sollen, die Fehlertoleranz, ab der Stack-Operationen angehalten werden, sowie die Anzahl der Konten, in denen Stack-Operationen gleichzeitig ausgeführt werden.

Ein Stack-Set ist eine regionale Ressource. Wenn Sie ein Stack-Set in einer Region erstellen, können Sie es in anderen Regionen nicht sehen oder ändern.

Zulassungsmodelle für Stack-Sets

Stack-Sets können entweder mit den Berechtigungen selbstverwaltet oder serviceverwaltet erstellt werden.

Mit den Berechtigungen selbstverwaltet erstellen Sie die IAM-Rollen, die von StackSets für die Bereitstellung über Konten und Regionen hinweg benötigt werden. Diese Rollen sind erforderlich, um eine vertrauenswürdige Beziehung zwischen dem Konto, von dem aus Sie das Stack-Set verwalten, und dem Konto, für das Sie Stack-Instances bereitstellen, herzustellen. Mithilfe dieses Berechtigungsmodells kann StackSets für jedes AWS-Konto eingesetzt werden, in dem Sie über Berechtigungen zum Erstellen einer IAM-Rolle verfügen.

Mit den Berechtigungen serviceverwaltet können Sie Stack-Instances auf Konten verteilen, die von AWS Organizations verwaltet werden. Mit diesem Berechtigungsmodell müssen Sie die erforderlichen IAM-Rollen nicht erstellen; StackSets erstellt die IAM-Rollen in Ihrem Namen. Mit diesem Modell können Sie auch automatische Bereitstellungen für Konten aktivieren, die Ihrer Organisation in der Zukunft hinzugefügt werden. Weitere Informationen zum Erstellen und Verwalten von Stack-Sets mit serviceverwalteten Berechtigungen finden Sie in den folgenden Themen:

Stack-Instances

Eine Stack-Instance ist eine Referenz auf einen Stack in einem Zielkonto innerhalb einer Region. Ein Stack-Instance kann ohne ein Stack existieren, z. B. wenn der Stack aus irgendeinem Grund nicht erstellt werden konnte. Die Stack-Instance zeigt den Grund für den Fehler bei der Stack-Erstellung an. Ein Stack-Instance ist nur einem Stack-Set zugeordnet.

Die folgende Abbildung zeigt die logische Beziehungen zwischen Stack-Sets, Stack-Operationen und Stacks. Wenn Sie ein Stack-Set aktualisieren, werden alle zugehörige Stack-Instances in allen Konten und Regionen aktualisiert.


                    Ein einzelner Stack-Satz kann als Grundlage zum Erstellen, Aktualisieren oder Löschen von Stack-Instances und Stacks über mehrere Konten und Regionen hinweg dienen.

Operationen für Stack-Sets

Sie können die folgenden Operationen für Stack-Sets ausführen.

Stack-Set erstellen

Das Erstellen eines neuen Stack-Sets umfasst die Angabe einer CloudFormation-Vorlage, die Sie zum Erstellen von Stacks verwenden möchten, die Angabe der Zielkonten, in denen Sie Stacks erstellen möchten, und die Identifizierung der AWS-Regionen, in denen Sie Stacks in Ihren Zielkonten bereitstellen möchten. Ein Stack-Set gewährleistet die konsistente Bereitstellung der gleichen Stack-Ressourcen mit den gleichen Einstellungen für alle angegebenen Zielkonten innerhalb der von Ihnen gewählten Regionen.

Stack-Sets aktualisieren

Wenn Sie ein Stack-Set aktualisieren, können Sie Änderungen an alle Stacks in Ihrem Stack-Set senden. Sie können ein Stack-Set auf eine der folgenden Weisen aktualisieren. Aktualisierungen Ihrer Vorlage betreffen immer alle Stacks. Sie können die Vorlage nicht selektiv aktualisieren, sodass einige Stacks in dem Stack-Set berücksichtigt werden, andere dagegen nicht.

  • Ändern vorhandener Einstellungen in der Vorlage oder Hinzufügen neuer Ressourcen, z. B. zum Aktualisieren von Parametereinstellungen für einen bestimmten Service oder das Hinzufügen neuer Amazon EC2-Instances.

  • Ersetzen der Vorlage durch eine andere Vorlage.

  • Hinzufügen von Stacks in bestehenden oder zusätzlichen Zielkonten, über bestehende oder zusätzliche Regionen hinweg.

Stacks löschen

Wenn Sie Stacks löschen, entfernen Sie einen Stack und alle zugehörigen Ressourcen aus den von Ihnen angegebenen Zielkonten innerhalb der von Ihnen angegebenen Regionen. Sie können Stacks wie folgt löschen.

  • Stacks von einigen Zielkonten löschen, während andere Stacks in anderen Zielkonten weiterhin ausgeführt werden.

  • Löschen von Stacks aus einigen Regionen, während Stacks in anderen Regionen weiterlaufen.

  • Löschen von Stacks aus Ihrem Stack-Set, aber die Stacks speichern, damit sie weiterhin unabhängig von Ihrem Stack-Set ausgeführt werden können, indem Sie die Option Retain Stacks auswählen. Zurückbehaltene Stacks werden in AWS CloudFormation außerhalb von Ihrem Stack-Set verwaltet.

  • Löschen aller Stacks in Ihrem Stack in Vorbereitung auf das Löschen Ihres gesamten Stack-Sets.

Löschen eines Stack-Sets

Sie können Ihren Stack nur löschen, wenn er keine Stapel-Instances enthält.

Optionen in den Operationen für Stack-Sets

Die in diesem Abschnitt beschriebenen Optionen helfen, Zeit und Anzahl der Fehler unter Kontrolle zu halten, um Ihre Operationen für Stack-Sets erfolgreich auszuführen und zu verhindern, dass Sie Stack-Ressourcen verlieren.

Maximale Anzahl paralleler Konten

Diese Einstellung steht in den Workflows für das Erstellen, Aktualisieren und Löschen zur Verfügung. Sie gestattet Ihnen, die maximale Anzahl oder den Prozentsatz der Zielkonten anzugeben, in dem eine Operation ausgeführt wird. Eine niedrigere Anzahl oder ein niedrigerer Prozentsatz bedeuten, dass eine Operationen in weniger Zielkonten ausgeführt wird. Die Operationen werden jeweils in einer Region in der Reihenfolge durchgeführt, die im Feld Deployment order (Bereitstellungsreihenfolge) angegeben ist. Wenn Sie z.B. Stacks auf 10 Zielkonten innerhalb von zwei Regionen verteilen, werden bei Einstellung von Maximum concurrent accounts (Maximale gleichzeitige Konten ) auf 50 und By percentage (Prozentual) Stacks auf fünf Konten in der ersten Region und dann auf die zweiten fünf Konten innerhalb der ersten Region verteilt, bevor Sie zur nächsten Region übergehen und mit der Verteilung auf die ersten fünf Zielkonten beginnen.

Wenn Sie By percentage (Nach Prozentsatz) wählen, rundet CloudFormation ab, wenn der angegebene Prozentsatz keine ganze Zahl Ihrer angegebenen Konten darstellt. Wenn Sie beispielsweise Stacks auf 10 Zielkonten bereitstellen, und Maximum concurrent accounts (Maximale Anzahl paralleler Konten) auf 25 und By percentage (Nach Prozentsatz) wählen, rundet CloudFormation von der Bereitstellung von 2,5 gleichzeitigen Stacks ab (weil das nicht möglich wäre), um zwei Stacks gleichzeitig bereitzustellen.

Beachten Sie, dass Ihnen diese Einstellung ermöglicht, das Maximum für Operationen anzugeben. Bei großen Bereitstellungen kann unter Umständen die tatsächliche Anzahl von gleichzeitig bedienen Konten aufgrund einer Service-Ablehnung kleiner ist. Die maximale Bereitstellungsgeschwindigkeit beträgt 100 gleichzeitige Stack-Instances pro Stack-Satz.

Fehlertoleranz

Mit dieser Einstellung, die in Erstellungs-, Aktualisierungs- und Lösch-Workflows verfügbar ist, können Sie die maximale Anzahl oder den maximalen Prozentsatz von Stack-Operationsfehlern pro Region angeben, bei deren Überschreitung CloudFormation eine Operation automatisch stoppt. Eine niedrigere Anzahl oder Prozentsatz bedeutet, dass die Operation auf weniger Stacks ausgeführt wird, aber dass Sie schneller mit der Fehlersuche für fehlgeschlagene Operationen beginnen können. Wenn Sie z.B. 10 Stacks in 10 Zielkonten innerhalb von drei Regionen aktualisieren, bedeutet die Einstellung von Failure tolerance (Ausfalltoleranz) auf 20 und By percentage (Prozentual), dass maximal zwei Stack-Aktualisierungen in einer Region fehlschlagen können, damit der Vorgang fortgesetzt werden kann. Wenn ein dritter Stack in derselben Region fehlschlägt, wird der Vorgang mit CloudFormation abgebrochen. Wenn ein Stack in der ersten Region nicht aktualisiert werden konnte, wird der Aktualisierungsvorgang in dieser Region fortgesetzt und geht dann zur nächsten Region über. Wenn zwei Stacks in der zweiten Region nicht aktualisiert werden können, ist die Fehlertoleranz von 20 % erreicht; wenn ein dritter Stack in der Region fehlschlägt, bricht CloudFormation den Aktualisierungsvorgang ab und fährt nicht mit den nachfolgenden Regionen fort.

Wenn Sie By percentage (Nach Prozentsatz) wählen und der angegebene Prozentsatz nicht eine ganze Anzahl Ihrer Stacks innerhalb jeder Region darstellt, rundet CloudFormation ab. Wenn Sie z.B. Stacks für 10 Zielkonten in drei Regionen bereitstellen und Failure tolerance (Ausfalltoleranz) auf 25 und By percentage (Prozentual) setzen, rundet CloudFormation von einer Ausfalltoleranz von 2,5 Stacks (was nicht möglich wäre) auf eine Ausfalltoleranz von zwei Stacks pro Region ab.

Stacks beibehalten

Diese Einstellung, die in Workflows zum Löschen von Stacks zur Verfügung steht, ermöglicht Ihnen, Stack und ihre Ressourcen weiterhin auszuführen, auch wenn sie aus einem Stack-Set entfernt wurden. Wenn Sie Stacks beibehalten, lässt AWS CloudFormation die Stacks in einzelnen Konten und Regionen intakt. Die Stacks werden aus dem Stack-Set entfernt, aber der Stack und seine Ressourcen werden gespeichert. Nachdem eine Löschoperation für Stacks abgeschlossen ist, verwalten Sie die zurückbehaltenen Stacks in CloudFormation in dem Zielkonto (nicht das Administratorkonto), in dem sie erstellt wurden. Durch das Zurückbehalten von Stacks werden diese permanent aus einem Stack-Set entfernt. Der Stack kann dem Stack-Set nicht mehr hinzugefügt werden, und er kann auch keinem neuen Stack-Set hinzugefügt werden.

Region-Parallelität

Mit dieser Einstellung, die in Workflows zum Erstellen, Aktualisieren und Löschen verfügbar ist, können Sie auswählen, wie StackSets in Regionen bereitgestellt wird.

Sequenziell – Stellen Sie den StackSets-Vorgang in einer Region gleichzeitig bereit, wie durch das Bereitstellungsreihenfolge-Feld der Region angegeben, solange die Bereitstellungsfehler einer Region eine bestimmte Fehlertoleranz nicht überschreiten. Die sequenzielle Bereitstellung ist die Standardauswahl.

Parallel – Stellen Sie StackSets-Vorgänge parallel in allen angegebenen Regionen bereit, solange die Bereitstellungsfehler einer Region eine angegebene Fehlertoleranz nicht überschreiten.

Tags

Sie können während Operationen zum Erstellen und Aktualisieren von Stacks Tags hinzugeben, indem Sie Schlüssel-Wert-Paare angeben. Tags erleichtern das Sortieren und Filtern von Stack-Set-Ressourcen für die Fakturierung und die Kostenzuordnung. Weitere Informationen zur Verwendung von Tags in AWS finden Sie unter Verwendung von Kostenzuordnungs-Tags im AWS Billing and Cost Management-Benutzerhandbuch. Nachdem Sie das Schlüssel-Wert-Paar festgelegt haben, wählen Sie +, um das Tag zu speichern. Sie können Tags löschen, die Sie nicht mehr verwenden, indem Sie das rote X rechts von einem Tag auswählen.

Tags, die Sie für Stack-Sets übernehmen, werden auf alle Stacks angewendet, und auf die Ressourcen, die von Ihren Stacks erstellt werden. Tags können in CloudFormation nur auf Stack-Ebene hinzugefügt werden, aber diese Tags werden in StackSets möglicherweise nicht angezeigt.

Obwohl StackSets derzeit nicht alle System-Tags hinzufügt, sollten Sie den Schlüsselnamen eines Tags nicht mit der Zeichenfolge aws: beginnen.

Statuscodes von Stack-Sets und Stack-Instances

AWS CloudFormation StackSets generiert Statuscodes für Stack-Set-Operationen und Stack-Instances.

Die folgende Tabelle beschreibt die Statuscodes für Stack-Set-Operationen.

Status von Stack-Set-Operationen Beschreibung

RUNNING

Die Operation ist derzeit in Bearbeitung.

SUCCEEDED

Die Operation wurde abgeschlossen, ohne die Fehlertoleranz für die Operation zu überschreiten.

FAILED

Die Anzahl der Stacks, auf denen die Operation nicht fertiggestellt werden konnte, die die benutzerdefinierte Fehlertoleranz überschritten hat. Der Ausfalltoleranzwert, den Sie für eine Operation festgelegt haben, wird für jede Region während der Stack-Erstellungs- und Aktualisierungsoperationen angewendet. Wenn die Anzahl der fehlgeschlagenen Stacks innerhalb einer Region die Fehlertoleranz überschreitet, wird der Status der Operation in der Region auf FAILED gesetzt. Der Status der Operation als Ganzes wird ebenfalls auf FAILED gesetzt, und CloudFormation bricht die Operation in allen verbleibenden Regionen ab.

QUEUED

[Service-managed permissions] Bei automatischen Bereitstellungen, die eine Abfolge von Vorgängen erfordern, wird der Vorgang in die Warteschlange gestellt, damit er ausgeführt werden kann. Zum Beispiel:

  • Das Verschieben eines Kontos von einer Organisationseinheit (OU), OU1, zu einer anderen, OU2, löst eine automatische Bereitstellung aus. StackSets führt einen Löschvorgang aus, um die Stack-Instance aus dem Zielkonto OU1 in der Zielregion zu entfernen, und reiht einen Erstellungsvorgang in eine Warteschlange ein, um dem Zielkonto OU2 in der Zielregion eine Stack-Instance hinzuzufügen. Wenn der Löschvorgang abgeschlossen ist, führt StackSets den Erstellungsvorgang aus.

  • Das Hinzufügen eines Kontos AccountA zu einer OU löst eine automatische Bereitstellung aus. StackSets führt einen Erstellungsvorgang aus, um eine Stack-Instance zu AccountA in der Zielregion hinzuzufügen. Wenn Sie der OU ein weiteres Konto AccountB hinzufügen, während dieser Erstellungsvorgang läuft, reiht StackSets einen zweiten Erstellungsvorgang in die Warteschlange ein. Wenn der erste Erstellungsvorgang abgeschlossen ist, führt StackSets den zweiten Erstellungsvorgang aus, um eine Stack-Instance zu AccountB in der Zielregion hinzuzufügen.

STOPPING

Die Operation wird gerade auf Anforderung des Benutzers angehalten.

STOPPED

Der Vorgang wurde auf Anforderung des Benutzers angehalten.

In der folgenden Tabelle sind die Statuscodes für Stack-Instances in Stack-Sets beschrieben.

Stack-Instance-Status Beschreibung

CURRENT

Der Stack ist derzeit auf dem neuesten Stand des Stack-Sets.

OUTDATED

Der Stack ist derzeit nicht auf dem neuesten Stand mit dem Stack-Set. Dies hat einen der folgenden Gründe.

  • Eine CreateStackSet- oder UpdateStackSet-Operation auf dem zugehörigen Stack ist fehlgeschlagen.

  • Der Stack war Teil einer CreateStackSet- oder UpdateStackSet -Operation, die fehlgeschlagen ist, oder die gestoppt wurde, bevor der Stack erstellt oder aktualisiert wurde.

INOPERABLE

Eine DeleteStackInstances-Operation ist fehlgeschlagen und der Stack ist in einem instabilen Status. Stacks in diesem Status werden von weiteren UpdateStackSet-Operationen ausgeschlossen. Möglicherweise benötigen Sie eine DeleteStackInstances-Operation, mit RetainStacks gleich true, um die Stack-Instance zu löschen und anschließend den Stack manuell zu löschen.

CANCELLED

Der Vorgang im angegebenen Konto und der angegebenen Region wurde storniert. Dies liegt entweder daran, dass ein Benutzer den Stapelsatzvorgang beendet hat, oder dran dass die Fehlertoleranz des Stapelsatzvorgangs überschritten wurde.

FAILED

Der Vorgang im angegebenen Konto und der angegebenen Region ist fehlgeschlagen. Wenn der Stapelsatzvorgang in genug Konten innerhalb einer Region fehlschlägt, kann die Fehlertoleranz für den Stapelsatzvorgang insgesamt überschritten werden.

PENDING

Der Vorgang im angegebenen Konto und der angegebenen Region muss noch gestartet werden.

RUNNING

Der Vorgang im angegebenen Konto und der angegebenen Region wird derzeit ausgeführt.

SUCCEEDED

Der Vorgang im angegebenen Konto und der angegebenen Region wurde erfolgreich abgeschlossen.