Wie funktioniert AWS CloudFormation ? - AWS CloudFormation

Wie funktioniert AWS CloudFormation ?

Beim Erstellen eines Stacks macht AWS CloudFormation zugrunde liegende Service-Aufrufe an AWS für die Bereitstellung und Konfiguration Ihrer Ressourcen. CloudFormation kann nur Aktionen ausführen, zu denen Sie berechtigt sind. Um zum Beispiel EC2-Instances einrichten zu können, indem CloudFormation verwendet wird, benötigen Sie Berechtigungen zum Erstellen von Instances. Sie brauchen ähnliche Berechtigungen zum Beenden von Instances wenn Sie Stacks mit Instanzen löschen. Sie verwenden AWS Identity and Access Management (IAM) zum Verwalten von Berechtigungen.

Die Aufrufe, die CloudFormation macht, sind alle in Ihrer Vorlage angegeben. Angenommen Sie haben zum Beispiel eine Vorlage, die eine EC2-Instance mit einem t2.micro Instance-Typ beschreibt. Wenn Sie diese Vorlage verwenden, um einen Stack zu erstellen, ruft CloudFormation den Amazon EC2 auf, um eine Instance API zu erstellen und den Instance-Typ als t2.micro festzulegen. Das folgende Diagramm bietet eine Übersicht über die CloudFormation-Workflows für die Erstellung von Stacks.

  1. Führen Sie den Änderungssatz aus, den Sie auf Ihren Stack anwenden möchten. AWS CloudFormation Designer aktualisiert Ihren Stack, indem es nur die CloudFormationvon Ihnen geänderten Ressourcen aktualisiert und signalisiert, dass Ihr Stackerfolgreich aktualisiert wurde. Zudem können Sie auch eine bereitgestellte Vorlage zur Erstellung verwenden. Die CloudFormation-Vorlage beschreibt die Ressourcen, die sie möchten und deren Einstellungen. Angenommen, Sie möchten zum Beispiel eine EC2-Instance erstellen. Die Vorlage kann eine Amazon EC2-Instance deklarieren und deren Eigenschaften beschreiben, so wie im folgendem Beispiel angezeigt:

    Beispiel JSON

    { "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "A simple EC2 instance", "Resources" : { "MyEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-0ff8a91507f77f867", "InstanceType" : "t2.micro" } } } }

    Beispiel YAML

    AWSTemplateFormatVersion: '2010-09-09' Description: A simple EC2 instance Resources: MyEC2Instance: Type: AWS::EC2::Instance Properties: ImageId: ami-0ff8a91507f77f867 InstanceType: t2.micro
  2. Speichern Sie die Vorlage lokal oder in einem S3-Bucket. Wenn Sie eine Vorlage erstellt haben, speichern Sie diese mit einer Dateierweiterung wie .json, .yaml oder .txt.

  3. Erstellen Sie ein CloudFormation-Stack, indem Sie den Ort der Vorlagendatei angeben, z. B. einen Pfad auf Ihrem lokalen Computer oder eine Amazon S3-URL. Wenn die Vorlage Parameter enthält, können Sie beim Erstellen des Stacks Eingabewerte angeben. Parameter ermöglichen Ihnen Werte in Ihre Vorlage zu übergeben, sodass Sie Ihre Ressourcen jedes Mal anpassen können, wenn Sie einen Stack erstellen.

    Sie können mit Stacks unter Verwendung der CloudFormation-Konsole, API oder der AWS CLI erstellen.

    Anmerkung

    Wenn Sie eine lokal gespeicherte Vorlagendatei angeben, lädt CloudFormation diese in einen S3-Bucket in Ihrem AWS-Konto hoch. CloudFormation erstellt einen Bereich für jede Region, in der Sie eine Vorlagendatei hochladen. Auf die Buckets kann jeder Benutzer mit Amazon Simple Storage Service (Amazon S3)-Berechtigungen in Ihrem AWS-Konto zugreifen. Wenn bereits ein von CloudFormation erstellter Bucket vorhanden ist, wird die Vorlage zu diesem Bucket hinzugefügt.

    Sie können Ihren eigenen Bucket verwenden und dessen Berechtigungen durch manuelles Hochladen von Vorlagen in Amazon S3 verwalten. Anschließend geben Sie immer, wenn Sie einen Stack erstellen oder aktualisieren, die Amazon S3-URL einer Vorlagendatei an.

CloudFormation stellt Ressourcen bereit und konfiguriert diese, indem Aufrufe zu den AWS-Services gemacht werden, die in Ihrer Vorlage beschrieben sind.

Nachdem alle Ressourcen erstellt wurden, berichtet CloudFormation, dass Ihre Stacks erstellt worden sind. Sie können dann die Ressourcen in Ihrem Stack verwenden. Wenn das Erstellen des Stacks misslingt, setzt CloudFormation Ihre Änderungen durch Löschen der Ressourcen, die es erstellt hat, zurück.

Aktualisieren von Stacks mithilfe von Änderungssätzen

Wenn Sie die Ressourcen in Ihrem Stack aktualisieren müssen, können Sie die Stack-Vorlage ändern. Sie müssen keinen neuen Stack erstellen und den alten löschen. Um einen Stapel zu aktualisieren, erstellen Sie ein Änderungsset, indem Sie eine modifizierte Version der ursprünglichen Stapelvorlage, verschiedene Eingabeparameterwerte oder beides übermitteln. CloudFormation vergleicht die modifizierte Vorlage mit der ursprünglichen Vorlage und erzeugt einen Änderungssatz. Der Änderungssatz listet die vorgeschlagenen Änderungen auf. Nach dem Überprüfen der Änderungen können Sie den Änderungssatz ausführen, um Ihren Stack zu aktualisieren oder Sie können einen neuen Änderungssatz erstellen. Das folgende Diagramm bietet eine Übersicht über den Workflow für die Aktualisierung eines Stacks.

Wichtig

Updates können Unterbrechungen verursachen. Abhängig von der Ressource und den Eigenschaften, die Sie aktualisieren, kann eine Aktualisierung unterbrechen oder sogar eine vorhandene Ressource ersetzen. Weitere Informationen finden Sie unter AWS CloudFormation-Stack-Updates.

  1. Sie können eine CloudFormation-Stackvorlage ändern, indem Sie AWS CloudFormation Designer oder einen Texteditor verwenden. Wenn Sie beispielsweise eine EC2-Instance für den Instance-Typ ändern möchten, würden Sie den Wert der InstanceType Eigenschaft in der ursprünglichen Stack-Vorlage ändern.

    Weitere Informationen finden Sie unter Ändern einer Stack-Vorlage.

  2. Speichern Sie die CloudFormation-Vorlage lokal oder in einem S3-Bucket.

  3. Erstellen Sie einen Änderungssatz, indem Sie den Stack, den Sie aktualisieren möchten angeben und den Ort der geänderten Vorlage wie z.B. ein Pfad auf Ihrem lokalen Computer oder einem Amazon S3-URL. Wenn die Vorlage Parameter enthält, können Sie beim Erstellen des Änderungssatzes Werte angeben.

    Weitere Informationen zum Erstellen von Änderungssätzen finden Sie unter Aktualisieren von Stacks mithilfe von Änderungssätzen.

    Anmerkung

    Wenn Sie eine Vorlage angeben, die auf Ihrem lokalen Computer gespeichert ist, lädt CloudFormation Ihre Vorlage automatisch zu einem S3-Bucket in Ihrem AWS-Konto hoch.

  4. Sehen Sie sich den Änderungssatz an, um zu überprüfen, ob CloudFormation die Änderungen, die Sie erwarten, durchführt. Überprüfen Sie beispielsweise, ob CloudFormation die kritischen Stack-Ressourcen ersetzt. Sie können so viele Änderungssätze erstellen wie sie benötigen, bis Sie die gewünschten Änderungen eingebunden haben.

    Wichtig

    Änderungssätze geben nicht an, ob Ihr Stack erfolgreich aktualisiert wird. Beispielsweise prüft ein Änderungssatz nicht, ob Sie ein Kontokontingent überschreiten, wenn Sie die Aktualisierung einer Ressource vornehmen, die keine Updates unterstützt, oder ob Sie über unzureichende Berechtigungen verfügen, um eine Ressource zu ändern. Diese Punkte können dazu führen, dass die Aktualisierung eines Stack fehlschlägt.

  5. Führen Sie den Änderungssatz aus, den Sie auf Ihren Stapel anwenden möchten. CloudFormation aktualisiert Ihren Stapel, indem es nur die von Ihnen geänderten Ressourcen aktualisiert und signalisiert, dass Ihr Stapel erfolgreich aktualisiert wurde. Wenn die Stack-Aktualisierung fehlschlägt, setzt CloudFormation Änderungen auf den letzten bekannten Zustand zurück, um den Stack wiederherstellen zu können.

Löschen eines Stacks

Wenn Sie einen Stack löschen, geben Sie den zu löschenden Stack an. CloudFormation löscht daraufhin den Stack und alle Ressourcen im Stack. Sie können Stacks unter Verwendung der CloudFormation-Konsole, API oder der AWS CLI löschen.

Wenn Sie einen Stack löschen möchten, aber einige Ressourcen im Stack beibehalten möchten, können Sie eine Deletion-Richtlinie verwenden, um diese Ressourcen zu behalten.

Nachdem alle Ressourcen gelöscht wurden, signalisiert CloudFormation, dass Ihr Stack erfolgreich gelöscht worden ist. Wenn CloudFormation eine Ressource nicht löschen kann, wird der Stack nicht gelöscht. Alle Ressourcen, die nicht gelöscht worden sind bleiben erhalten, bis Sie den Stack erfolgreich löschen können.

Weitere Ressourcen

  • Weitere Informationen über die Erstellung von CloudFormation-Vorlagen finden Sie unter Aufbau einer Vorlage.

  • Weitere Informationen zum Erstellen, Aktualisieren oder Löschen von Stacks, finden Sie unter Arbeiten mit Stacks.