Alles, was Sie über AWS CloudFormation wissen müssen

Veröffentlicht: 2021-12-28

Encap - Blog (Fortsetzung)


AWS CloudFormation ist ein dedizierter Service, der von Amazon bereitgestellt wird, um die Benutzer beim Einrichten und Modellieren der AWS-Ressourcen zu unterstützen. Dadurch können Sie mehr Zeit für wichtige Dinge aufwenden, z. B. sich auf die Verwaltung der AWS-Ressourcen konzentrieren und Ihren Fokus auf die Anwendungen lenken, die in AWS ausgeführt werden.

Sie können eine Vorlage erstellen, die Ihnen eine Beschreibung der gewünschten Ressourcen in AWS bietet, wie z. B. Amazon RDS-DB-Instances und Amazon EC2-Instances. CloudFormation beabsichtigt, sich optimal um die Konfiguration und Bereitstellung dieser AWS-Ressourcen für die Benutzer zu kümmern. Es besteht keine Notwendigkeit mehr, diese Ressourcen einzeln zu erstellen oder zu konfigurieren, da AWS CloudFormation sich vollständig darum kümmert.

In diesem Blog werden wir versuchen, alles zu verstehen, was Sie über die AWS-Konfiguration wissen müssen.

Funktionsweise von AWS CloudFormation


AWS CloudFormation ist ein Konzept, das nach dem Stack-Konzept funktioniert. Es gibt Ihnen die Möglichkeit, AWS-Ressourcen in Bezug auf eine Einheit gemeinsam zu erstellen und zu löschen. Die Benutzer können die mit Mappings, Stack-Parametern, Ausgabewerten und Ressourceneigenschaften verknüpften Merkmale definieren. Dies erfolgt mit einer Vorlage, die eine JSON-kompatible Datei ist.

Sie können die Vorlage von Anfang an schreiben und erstellen oder Sie können auch eine der von AWS vorab angebotenen Beispielvorlagen verwenden. Darüber hinaus können die Benutzer die vielen AWS-Produkte innerhalb von CloudFormation wie Amazon EC2, Amazon RDS und Amazon Elastic Beanstalk optimal nutzen.

Während ein Stack erstellt wird, führt AWS CloudFormation bestimmte Serviceaufrufe bei AWS durch. Dies hilft bei der Konfiguration und Bereitstellung der AWS-Ressourcen. Die CloudFormation führt nur die Aktionen aus, zu denen Sie berechtigt sind. Wenn Sie beispielsweise Amazon EC2 mit AWS CloudFormation erstellen möchten, benötigen Sie dafür spezielle Berechtigungen. Daneben müssen auch die Stacks gelöscht und die Instanzen beendet werden.

Um die Berechtigungen zu verwalten, können die Personen AWS Identity and Access Management verwenden. Anschließend werden die Aufrufe, die AWS CloudFormation verarbeitet, von den Vorlagen deklariert. Um sicherzustellen, dass Sie eine CloudFormation-Vorlage innerhalb von YAML oder JSON erstellen und ändern, müssen Sie den AWS CloudFormation Designer verwenden. Sie können das Konto erstellen und sofort mit der Gestaltung beginnen.

Darüber hinaus können Sie auch andere Texteditoren bevorzugen, aber der AWS-Designer ist eine geeignete Plattform, um die Effektivität abzuleiten. Die CloudFormation-Vorlage erläutert die Ressourcen, die Sie verwenden möchten, und die damit verbundenen Einstellungen. Wenn Sie beispielsweise eine EC2-Instance erstellen möchten, wird Ihre Vorlage dies auch deklarieren und die Eigenschaften entsprechend beschreiben.

Nachdem Sie die Vorlage erstellt haben, speichern Sie diese entweder im S3-Bucket oder lokal. Sie müssen auch sicherstellen, dass Sie es mit einer Erweiterung wie .yaml, .txt oder .json speichern. Bilden Sie den CloudFormation-Stack, indem Sie die Amazon S3-URL oder den Speicherort der Vorlagendatei über den lokalen Computer angeben. Falls Sie der Meinung sind, dass die Vorlage einige Parameter enthält, können Sie die Eingabewerte für dieselben angeben, wonach Sie mit der Erstellung des Stapels fortfahren können. Mit den Parametern können Sie Werte für die CloudFormation-Vorlage eingeben und damit Ressourcen jedes Mal anpassen, wenn Sie einen Stack erstellen möchten.

Denken Sie daran, dass CloudFormation diese automatisch in den S3-Bucket im AWS-Konto hochlädt, falls Sie nur eine lokal gespeicherte Vorlage angeben oder aufrufen. Die AWS CloudFormation ist zum Erstellen von Buckets für alle Regionen gedacht, in denen Sie eine Vorlagendatei hochladen können. Auf die Buckets in CloudFormation kann jeder zugreifen, der Amazon S3-Berechtigungen im Konto aktiviert hat.

AWS CloudFormation-Konzepte


Jedes Mal, wenn Sie AWS CloudFormation verwenden, können Sie mit Vorlagen und Stacks arbeiten. Sie können Vorlagen erstellen, um die AWS-Ressourcen und ihre Eigenschaften zu beschreiben. Jedes Mal, wenn Sie einen Stack erstellen, stellt CloudFormation Ressourcen bereit, die in der Vorlage beschrieben sind.

1. Vorlagen


Eine AWS CloudFormation-Vorlage ist eine Textdatei im JSON- oder YAML-Format. Es ist einfach, diese Dateien mit beliebigen Erweiterungen wie .yaml, .template, .txt oder .json zu speichern. AWS CloudFormation verwendet diese Vorlagen als Blaupausen zum Erstellen der AWS-Ressourcen.

Beispielsweise können Sie eine Amazon EC2-Instance in einer Vorlage als Instance-Typ, AMI-ID, Blockgerätezuordnung und Amazon EC2-Schlüsselpaarname beschreiben. Wann immer Sie den Stack erstellen, können Sie auch eine Vorlage erwähnen, die CloudFormation verwendet, um alles zu erstellen, was Sie in der Vorlage beschrieben haben.

2. Stapel

Wenn Sie AWS CloudFormation verwenden , können Sie zugehörige Ressourcen als eine einzelne Einheit namens Stack verwalten. Es wird einfach, eine Sammlung von Ressourcen zu erstellen, zu aktualisieren und sogar zu löschen, indem Sie einfach Stacks erstellen, aktualisieren und löschen. Alle in einem Stapel vorhandenen Ressourcen werden durch die CloudFormation-Vorlage des Stapels definiert.

Angenommen, Sie haben eine Vorlage erstellt, die eine Auto Scaling-Gruppe, eine Amazon Relational Database Service-Datenbankinstanz und einen Elastic Load Balancing-Load Balancer enthält. Für die Erstellung dieser Ressourcen können Sie einen Stack erstellen, indem Sie die von Ihnen erstellte Vorlage übermitteln, und CloudFormation stellt alle diese Ressourcen für Sie bereit. Sie können mit den Stacks arbeiten, indem Sie die CloudFormation-Konsole, die AWS CLI und die API verwenden.

3. Sätze ändern

Wenn Sie der Meinung sind, dass die laufenden Ressourcen in einem Stack geändert werden sollten, können Sie den Stack aktualisieren. Bevor Sie Änderungen an den Ressourcen vornehmen, kann ein Änderungssatz generiert werden, der im Grunde eine Zusammenfassung aller vorgeschlagenen Änderungen ist. Anhand der Änderungssätze können Sie sehen, wie sich die Änderungen auf die laufenden Ressourcen auswirken, insbesondere auf kritische Ressourcen, bevor Sie sie implementieren.

Wenn Sie beispielsweise den Namen einer Amazon RDS-Datenbankinstanz ändern, erstellt AWS CloudFormation eine neue Datenbank und löscht die alte. Sie können nicht riskieren, Daten in der alten Datenbank zu verlieren, es sei denn, Sie haben sie bereits gesichert. Falls Sie ein Änderungsset bilden, werden Sie sehen, dass die Änderung dazu führt, dass die Datenbank ersetzt wird, und Sie werden das Gefühl haben, dass Sie entsprechend planen, bevor Sie den Stack aktualisieren.

Warum wird AWS CloudFormation benötigt?

Um eine Architektur zu erstellen, die Akzeptanz-, Produktions- und Testumgebungen unterstützt, ist AWS CloudFormation erforderlich, das bei der Durchführung einiger Aktivitäten dafür helfen kann. Die gemeinsamen Aktivitäten, die von CloudFormation zum Erstellen dieser Architektur ausgeführt werden, sind das Starten einer Instanz, das Erstellen von Load Balancern, das Vornehmen erforderlicher Installationen, das Anhängen einer Instance an Load Balancer, das Erstellen von RDS und das Konfigurieren der EC2-Sicherheitsgruppe, das Erstellen und Konfigurieren der Sicherheitsgruppen und das Erstellen der auto -Skalierungsgruppen.

Die AWS CloudFormation-Vorlage für die Infrastrukturautomatisierung ist eine JSON-Datei, die im Grunde als leistungsstarkes Tool gedacht ist, das alle wichtigen Dinge verwalten kann. Es hilft im Wesentlichen bei der Angabe der Notwendigkeit von Ressourcen, während CloudFormation Sie bei der Ressourcenbereitstellung in einer vorhersehbaren Tangente unterstützt.

Situationen, in denen AWS CloudFormation verwendet werden kann

Die AWS CloudFormation hilft bei der Bereitstellung oder Aktualisierung der Vorlage und ihrer Ressourcensammlung mit der Verwendung von AWS Management Console, AWS Command Line Interface und APIs. Seine Anwendungsfälle werden nicht zusätzlich berechnet, da Sie nur für die AWS-Ressourcen bezahlen müssen, die für den Betrieb dedizierter Anwendungen wichtig sind.

Daraus kann geschlossen werden, dass die AWS CloudFormation Infrastructure as Code ist , was eigentlich bedeutet, dass sie zum Lesen, Wiederverwenden und Überprüfen von Dingen verwendet werden kann. Nachfolgend sehen wir einige Situationen, in denen AWS CloudFormation verwendet wird. Dies wird dazu beitragen, eine viel bessere Klarheit zu erhalten.

Die AWS Cloud Formation hilft bei folgenden Dingen:

1. Einfaches Infrastrukturmanagement

Um eine skalierbare Webanwendung zu erstellen, die auch eine Backend-Datenbank enthält, verwenden Sie möglicherweise eine Auto Scaling-Gruppe, eine Amazon Relational Database Service-Datenbankinstanz und einen Elastic Load Balancing-Load Balancer.

Diese Dienste werden einzeln zum Bereitstellen der Ressourcen verwendet, und nachdem die Ressourcen erstellt wurden, können Sie sie so konfigurieren, dass sie miteinander funktionieren. Diese Aufgaben erhöhen die Komplexität und den Zeitaufwand, bevor die Anwendung betriebsbereit ist. Sie erstellen eine AWS CloudFormation-Vorlage und ändern auch eine vorhandene.

Eine Vorlage ist in der Lage, alle Ressourcen und Eigenschaften zu beschreiben. Wenn Sie die Vorlage zum Erstellen eines CloudFormation-Stacks verwenden, werden die Autoscaling-Gruppe, der Load Balancer und die Datenbank für Sie bereitgestellt. Nachdem der Stack erfolgreich erstellt wurde, sind die AWS-Ressourcen betriebsbereit. Der Stack lässt sich genauso einfach löschen und die Ressourcen auch. Mit CloudFormation kann die Sammlung von Ressourcen einfach als eine Einheit verwaltet werden.

2. Replizieren Sie Ihre Infrastruktur

Wenn eine Anwendung mehr Verfügbarkeit erfordert, bedeutet dies, dass sie in mehrere Regionen repliziert werden muss. Dies liegt daran, dass die Benutzer eine Anwendung aus einer anderen Region verwenden können, wenn eine Region nicht verfügbar ist.

Es gibt eine natürliche Herausforderung, der Sie sich beim Replizieren einer Anwendung stellen müssen, nämlich dass Sie auch die Ressourcen replizieren müssen. Daher ist es wichtig, dass Sie alle Ressourcen anhand der Anforderungen der Anwendung erfassen. Gleichzeitig müssen Sie jedoch auch alle Ressourcen in jeder Region konfigurieren und bereitstellen.

Die AWS CloudFormation- Vorlage kann wiederverwendet werden, um die Ressourcen konsistent und wiederholbar zu erstellen. Es ermöglicht die Wiederverwendbarkeit der Vorlagen, und dies kann durch einmaliges Beschreiben der Ressourcen und durch Bereitstellen derselben in vielen Regionen erfolgen. Auf diese Weise kann die Infrastruktur problemlos auf mehrere Regionen repliziert werden.

3. Kontrolle der an der Infrastruktur vorgenommenen Änderungen

In manchen Fällen kann zeitweise ein Upgrade erforderlich sein. Ein Beispiel hierfür kann die Notwendigkeit oder der Drang sein, eine Hochleistungsinstanz in der Startkonfiguration mit automatischer Skalierung zu aktualisieren. Damit kann die Gesamtzahl der Instanzen innerhalb der Gruppe reduziert werden.

Die manuelle Kontrolle, das Nachverfolgen von Änderungen und das Durchführen von Upgrades können ein komplexes Unterfangen sein, und für all diese Dinge ist es notwendig, sich an den Verbleib der geänderten Ressourcen zu erinnern. Die Verwendung von AWS CloudFormation ermöglicht es der Vorlage, die bereitgestellten Ressourcen zu beschreiben und die Einstellungen auszuarbeiten. Es wird einfach, die Infrastrukturänderungen zwischen Textdateivorlagen zu verfolgen.

Auch ein Versionskontrollsystem lässt sich mitsamt den Templates einfach integrieren, um sich ein Bild von den Änderungen an der Infrastruktur zu machen. Darüber hinaus können Sie auch nachverfolgen, wer die Änderung vorgenommen hat und wann sie vorgenommen wurde. Wenn Sie die Änderungen in der Infrastruktur rückgängig machen möchten, können Sie auch die vorherige Vorlagenversion rückgängig machen. Daher wird das Steuern und Verfolgen von Infrastrukturänderungen mit AWS CloudFormation einfach .

Fazit

Die oben genannten Details werden häufig mit AWS CloudFormation in Verbindung gebracht. Dies sind Erkenntnisse, die sich auf die Funktionalität von CloudFormation und den Komfort für die Benutzer beim Ausführen ihrer Anwendungen konzentrieren.

Die AWS CloudFormation automatisiert die Best Practices und skaliert auch die Infrastruktur auf globaler Ebene. Das Beste ist, dass Sie CloudFormation mit den anderen AWS-Services integrieren können. Sie können auch in der Lage sein, die privaten Ressourcen und Ressourcen von Drittanbietern zu verwalten.

Wenn Sie AWS CloudFormation verwenden möchten, müssen Sie die AWS-Beratungsdienste in Anspruch nehmen, die Ihnen helfen können, mehr Details zu verstehen, Kenntnisse darüber zu haben, was Sie integrieren möchten, und die nahtlose Ausführung von Anwendungen zu nutzen. Kontaktieren Sie uns, um mehr zu erfahren.