CloudFormation-Templates erstellen und editieren AWS CloudFormation, Teil 2

AWS CloudFormation nutzt wiederverwendbare Vorlagen, sprich Templates, auf deren Basis automatisch gewünschte Ressourcen erzeugt werden. Nachdem wir die prinzipielle Arbeitsweise von CloudFormation anhand von Beispiel-Stacks demonstriert haben, geht es in diesem Beitrag um Werkzeuge zum Erstellen eigener CloudFormation-Vorlagen.

Bei CloudFormation steht wie bei OpsWorks das konsistente und reproduzierbare Deployment im Vordergrund. Dies lässt sich über die Templates realisieren. Eine CloudFormation-Vorlage ist technisch gesehen eine gewöhnliche Text-Datei im JSON- oder YAML-Format. Diese Datei enthält eine Beschreibung der AWS-Infrastruktur, die zum Ausführen einer bestimmten Applikation oder eines Service benötigt wird.

Solche Vorlagen-Dateien lassen sich parametrisieren und damit universell einsetzen. Dank spezieller Vorlagenparameter ist es möglich, ein Template für mehrere Deployments zu verwenden. Ein und dieselbe Vorlage wird dabei mit unterschiedlichen Konfigurationswerten benutzt, z. B. bei der Anzahl für die Anwendung bereitzustellender Instanzen.

Dabei werden AWS-Ressourcen in ein und derselben Vorlage ausschließlich mit logischen Namen referenziert, damit sich aus der gleichen Vorlage auch in Bezug auf etwaige Namenskonflikte problemlos mehrere Stacks erstellen lassen. Neben den Ressourcen-Spezifikationen enthält die Vorlagendatei auch Angaben zu den „Beziehungen“ der Ressourcen untereinander. Ferner kann der Ersteller auch „Bedingungen“ formulieren, z. B. dass ein EBS-Volume in der gleichen AZ existieren muss, wie das mit ihm verbunden AMI.

Schließlich lassen sich auch Ausgabe-Eigenschaften zur Kommunikation mit den Bereitstellungsergebnissen oder mit Konfigurationsinformationen im Template verwenden. So könnte die Anwendung einer Vorlage z. B. die URL des Elastic Load Balancer-Endpoints zurückliefern, den der Nutzer zum Verbinden mit der neu instanziierten Anwendung verwenden muss.

JSON und der richtige Editor

Bevor Nutzer eigene CloudFormation-Stacks erstellen können, müssen sie eine Vorlagendatei, also ein CloudFormation-Template kreieren. Wer sich dabei nicht auf Samples beschränken will, muss selbst in die Tasten greifen.

CloudFormation-Vorlagen werden in der Regel in JSON-Notation verfasst. Zwar steht die Abkürzung JSON im engeren Sinne für „JavaScript Object Notation“, was den Einsatzzweck gut zum Ausdruck bringt – nämlich ein kompaktes Datenformat in einfach lesbarer Textform zum Zweck des Datenaustauschs zwischen Anwendungen. Vom Grundsatz her ist JSON aber unabhängig von der verwendeten Programmiersprache, da in nahezu allen verbreiteten Sprachen entsprechende Parser existieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.