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.
Wie CloudFormation funktioniert
In diesem Thema wird beschrieben, wie es CloudFormation funktioniert, und es werden die wichtigsten Konzepte vorgestellt, die Sie bei der Verwendung kennen sollten.
Die wichtigsten Konzepte
Bei der Verwendung CloudFormation arbeiten Sie mit Vorlagen und Stacks. Sie erstellen Vorlagen, um Ihre AWS Ressourcen und ihre Eigenschaften zu beschreiben. Jedes Mal, wenn Sie einen Stapel erstellen CloudFormation , werden die Ressourcen bereitgestellt, die in Ihrer Vorlage beschrieben sind.
Vorlagen
Eine CloudFormation Vorlage ist eine JSON oder YAML formatierte Textdatei. Sie können diese Dateien mit einer beliebigen Erweiterung speichern, z. B..json
, .yaml
.template
, oder.txt
. CloudFormation verwendet diese Vorlagen als Vorlagen für den Aufbau Ihrer AWS Ressourcen. In einer Vorlage können Sie beispielsweise eine EC2 Amazon-Instance beschreiben, z. B. den Instance-Typ, die AMI ID, Blockgerätezuordnungen und den Namen des EC2 Amazon-Schlüsselpaars. Immer wenn Sie einen Stack erstellen, geben Sie auch eine Vorlage an, CloudFormation anhand derer alles erstellt wird, was Sie in der Vorlage beschrieben haben.
Wenn Sie beispielsweise einen Stack mit der folgenden Vorlage erstellt haben, CloudFormation wird eine Instance mit einer ami-0ff8a91507f77f867
AMI ID, einem t2.micro
Instance-Typ, einem testkey
Schlüsselpaarnamen und einem EBS Amazon-Volume bereitgestellt.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "A sample template", "Resources": { "MyEC2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": "ami-0ff8a91507f77f867", "InstanceType": "t2.micro", "KeyName": "testkey", "BlockDeviceMappings": [ { "DeviceName": "/dev/sdm", "Ebs": { "VolumeType": "io1", "Iops": 200, "DeleteOnTermination": false, "VolumeSize": 20 } } ] } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Description: A sample template Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-0ff8a91507f77f867 InstanceType: t2.micro KeyName: testkey BlockDeviceMappings: - DeviceName: /dev/sdm Ebs: VolumeType: io1 Iops: 200 DeleteOnTermination: false VolumeSize: 20
Sie können auch mehrere Ressourcen in einer einzigen Vorlage angeben und diese Ressourcen so konfigurieren, dass sie zusammenarbeiten. Sie können beispielsweise die vorherige Vorlage so ändern, dass sie eine Elastic IP-Adresse (EIP) enthält, und sie der EC2 Amazon-Instance zuordnen, wie im folgenden Beispiel gezeigt:
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "A sample template", "Resources": { "MyEC2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": "ami-0ff8a91507f77f867", "InstanceType": "t2.micro", "KeyName": "testkey", "BlockDeviceMappings": [ { "DeviceName": "/dev/sdm", "Ebs": { "VolumeType": "io1", "Iops": 200, "DeleteOnTermination": false, "VolumeSize": 20 } } ] } }, "MyEIP": { "Type": "AWS::EC2::EIP", "Properties": { "InstanceId": { "Ref": "MyEC2Instance" } } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Description: A sample template Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-0ff8a91507f77f867 InstanceType: t2.micro KeyName: testkey BlockDeviceMappings: - DeviceName: /dev/sdm Ebs: VolumeType: io1 Iops: 200 DeleteOnTermination: false VolumeSize: 20 MyEIP: Type: 'AWS::EC2::EIP' Properties: InstanceId: !Ref MyEC2Instance
Die vorherigen Vorlagen konzentrieren sich auf eine einzelne EC2 Amazon-Instance. CloudFormation Vorlagen verfügen jedoch über zusätzliche Funktionen, mit denen Sie komplexe Ressourcensätze erstellen und diese Vorlagen in mehreren Kontexten wiederverwenden können. Sie können beispielsweise Eingabeparameter hinzufügen, deren Werte bei der Erstellung eines CloudFormation Stacks angegeben werden. Mit anderen Worten: Sie können einen Wert wie den Instance-Typ beim Erstellen eines Stacks und nicht beim Erstellen der Vorlage angeben, sodass die Vorlage in anderen Situationen einfacher wiederverwendet werden kann.
Weitere Informationen finden Sie unter Mit CloudFormation Vorlagen arbeiten.
Stacks
Wenn Sie verwenden CloudFormation, verwalten Sie zugehörige Ressourcen als eine einzige Einheit, die als Stapel bezeichnet wird. Sie können eine Sammlung von Ressourcen durch Erstellen, Aktualisieren und Löschen von Stacks erstellen und löschen. Alle Ressourcen in einem Stapel werden durch die CloudFormation Vorlage des Stacks definiert. Angenommen, Sie haben eine Vorlage erstellt, die eine Auto Scaling Scaling-Gruppe, einen Elastic Load Balancing Load Balancer und eine Amazon Relational Database Service (AmazonRDS) -Datenbank-Instance enthält. Um diese Ressourcen zu erstellen, erstellen Sie einen Stack, indem Sie die von Ihnen erstellte Vorlage einreichen und all CloudFormation diese Ressourcen für Sie bereitstellen. Sie können mit Stacks arbeiten, indem Sie die CloudFormation Konsole API
Weitere Informationen finden Sie unter Verwalten AWS Ressourcen als eine Einheit mit AWS CloudFormation Stacks.
Änderungssätze
Wenn Sie Änderungen an den ausgeführten Ressourcen in einem Stack vornehmen müssen, aktualisieren Sie den Stack. Bevor Sie Änderungen an Ihren Ressourcen vornehmen, können Sie einen Änderungssatz generieren, eine Zusammenfassung der von Ihnen vorgeschlagenen Änderungen. Anhand von Änderungssätzen können Sie sehen, wie sich Ihre Änderungen möglicherweise auf die ausgeführten Ressourcen auswirken, bevor Sie sie implementieren, insbesondere bei kritischen Ressourcen.
Wenn Sie beispielsweise den Namen einer RDS Amazon-Datenbank-Instance ändern, CloudFormation wird eine neue Datenbank erstellt und die alte gelöscht. Sofern Sie die Daten in der alten Datenbank nicht gesichert haben, gehen diese verloren. Wenn Sie einen Änderungssatz generieren, sehen Sie, dass die Änderung dazu führt, dass die Datenbank ersetzt wird. So können Sie entsprechend planen, bevor Sie den Stack aktualisieren.
Weitere Informationen finden Sie unter CloudFormation Stapel mithilfe von Änderungssätzen aktualisieren.
Wie CloudFormation funktioniert
Führt bei der Erstellung eines Stacks CloudFormation die zugrunde liegenden Service-Aufrufe durch AWS , um Ihre Ressourcen bereitzustellen und zu konfigurieren. CloudFormation kann nur Aktionen ausführen, zu deren Ausführung Sie berechtigt sind. Um beispielsweise mithilfe von EC2 Instanzen zu erstellen CloudFormation, benötigen Sie Berechtigungen zum Erstellen von Instanzen. 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 getätigt werden, werden alle von Ihrer Vorlage deklariert. Nehmen wir beispielsweise an, Sie haben eine Vorlage, die eine EC2 Instanz mit einem t2.micro
Instanztyp beschreibt. Wenn Sie diese Vorlage verwenden, um einen Stack zu erstellen, CloudFormation ruft Amazon EC2 Create Instance auf API und gibt den Instance-Typ als ant2.micro
. Das folgende Diagramm fasst den CloudFormation Arbeitsablauf für die Erstellung von Stacks zusammen.
-
Verwenden Sie Infrastructure Composer oder Ihren eigenen Texteditor, um eine CloudFormation Vorlage in einem oder YAML -Format zu erstellen JSON oder zu ändern. Zudem können Sie auch eine bereitgestellte Vorlage zur Erstellung verwenden. Die CloudFormation Vorlage beschreibt die gewünschten Ressourcen und deren Einstellungen. Nehmen wir zum Beispiel an, Sie möchten eine EC2 Instanz erstellen. Ihre Vorlage kann eine EC2 Amazon-Instance deklarieren und ihre Eigenschaften beschreiben, wie im folgenden Beispiel gezeigt:
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
-
Speichern Sie die Vorlage lokal oder in einem Amazon S3 S3-Bucket. Wenn Sie eine Vorlage erstellt haben, speichern Sie diese mit einer Dateierweiterung wie
.json
,.yaml
oder.txt
. -
Erstellen Sie einen CloudFormation Stapel, indem Sie den Speicherort Ihrer Vorlagendatei angeben, z. B. einen Pfad auf Ihrem lokalen Computer oder einem Amazon S3URL. 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 Stapel mithilfe der Befehle CloudFormation console, CreateStackAPIoperation oder AWS CLI create-stack erstellen.
Anmerkung
Wenn Sie eine lokal gespeicherte Vorlagendatei angeben, wird sie in einen S3-Bucket in Ihrem Konto CloudFormation hochgeladen. AWS CloudFormation erstellt einen Bucket für jede Region, in die Sie eine Vorlagendatei hochladen. Auf die Buckets kann jeder zugreifen, der über Amazon Simple Storage Service (Amazon S3) -Berechtigungen in Ihrem AWS Konto verfügt. Wenn ein von erstellter Bucket bereits vorhanden CloudFormation ist, wird die Vorlage diesem Bucket hinzugefügt.
Sie können Ihren eigenen Bucket verwenden und dessen Berechtigungen durch manuelles Hochladen von Vorlagen in Amazon S3 verwalten. Geben Sie dann bei jeder Erstellung oder Aktualisierung eines Stacks den Amazon S3 URL einer Vorlagendatei an.
CloudFormation stellt Ressourcen bereit und konfiguriert sie, indem die AWS Dienste aufgerufen werden, die in Ihrer Vorlage beschrieben sind.
Nachdem alle Ressourcen erstellt wurden, CloudFormation meldet es, dass Ihr Stack erstellt wurde. Sie können dann die Ressourcen in Ihrem Stack verwenden. Wenn die Stack-Erstellung CloudFormation fehlschlägt, machen Sie Ihre Änderungen rückgängig, indem Sie die erstellten Ressourcen löschen.
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 Stack zu aktualisieren, erstellen Sie einen Änderungssatz, indem Sie eine modifizierte Version der ursprünglichen Stack-Vorlage, andere Eingabeparameterwerte oder beides einreichen. CloudFormation vergleicht die geänderte Vorlage mit der Originalvorlage und generiert einen Änderungssatz. Der Änderungssatz listet die vorgeschlagenen Änderungen auf. Nach dem Überprüfen der Änderungen können Sie den Änderungssatz starten 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 Verstehen Sie das Aktualisierungsverhalten von Stack-Ressourcen.
-
Sie können eine CloudFormation Stack-Vorlage mithilfe Infrastructure Composer eines Texteditors ändern. Wenn Sie beispielsweise den Instanztyp für eine EC2 Instanz ändern möchten, würden Sie den Wert der
InstanceType
Eigenschaft in der Vorlage des ursprünglichen Stacks ändern. Weitere Informationen finden Sie unter Aktualisiere deine Stack-Vorlage. -
Speichern Sie die CloudFormation Vorlage lokal oder in einem S3-Bucket.
-
Erstellen Sie einen Änderungssatz, indem Sie den Stack, den Sie aktualisieren möchten, und den Speicherort der geänderten Vorlage angeben, z. B. einen Pfad auf Ihrem lokalen Computer oder einem Amazon S3URL. 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 CloudFormation Stapel mithilfe von Änderungssätzen aktualisieren.
Anmerkung
Wenn Sie eine Vorlage angeben, die auf Ihrem lokalen Computer gespeichert ist, CloudFormation wird Ihre Vorlage automatisch in einen S3-Bucket in Ihrem AWS-Konto.
-
Sehen Sie sich den Änderungssatz an, um zu überprüfen, CloudFormation ob er die erwarteten Änderungen vornimmt. Prüfen Sie beispielsweise, ob kritische Stack-Ressourcen ersetzt CloudFormation werden. 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. Ein Änderungssatz prüft beispielsweise nicht, ob Sie ein Kontokontingent überschreiten, ob Sie eine Ressource aktualisieren, die keine Updates unterstützt, oder ob Sie nicht über ausreichende Berechtigungen zum Ändern einer Ressource verfügen, was dazu führen kann, dass ein Stack-Update fehlschlägt.
-
Initiieren Sie den Änderungssatz, den Sie auf Ihren Stack anwenden möchten. CloudFormation aktualisiert Ihren Stack, indem es nur die Ressourcen aktualisiert, die Sie geändert haben, und signalisiert, dass Ihr Stack erfolgreich aktualisiert wurde. Wenn die Aktualisierung des Stacks CloudFormation fehlschlägt, werden die Änderungen rückgängig gemacht, um den Stack auf den letzten bekannten Betriebszustand zurückzusetzen.
Löschen eines Stacks
Wenn Sie einen Stapel löschen, geben Sie den zu CloudFormation löschenden Stapel an und löschen den Stapel und alle Ressourcen in diesem Stapel. Sie können Stapel löschen, indem Sie den Befehl CloudFormation console, DeleteStackAPIoperation oder AWS CLI delete-stack verwenden.
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, CloudFormation signalisiert dies, dass Ihr Stack erfolgreich gelöscht wurde. Wenn eine Ressource nicht gelöscht werden CloudFormation kann, wird der Stapel nicht gelöscht. Alle Ressourcen, die nicht gelöscht worden sind bleiben erhalten, bis Sie den Stack erfolgreich löschen können.