AWS CloudFormation bietet Entwicklern und Systemadministratoren die Möglichkeit, ohne großen Aufwand eine Sammlung zusammengehöriger AWS-Ressourcen zu erstellen und in geordneter und transparenter Form bereitzustellen. Die folgenden Artikel und Übungen helfen Ihnen beim Erstellen von Vorlagen und bei der Verwendung der Funktionen von AWS CloudFormation zur Bereitstellung Ihrer AWS-Ressourcen.
AWS CloudFormation Designer ist ein visuelles Tool, mit dem Sie CloudFormation-Vorlagen mithilfe einer Drag & Drop-Schnittstelle erstellen und ändern können. Sie können Ressourcen einfach hinzufügen, ändern oder entfernen. Das zugrunde liegende JSON wird entsprechend geändert. Wenn Sie eine Vorlage ändern, die einem laufenden Stack zugeordnet ist, können Sie den Stack so ändern, dass er der Vorlage entspricht.
AWS CloudFormation bietet Ihnen eine einfache Möglichkeit, um die Ressourcen wie Amazon EC2-Instance, Amazon RDS-Datenbank-Instances und Elastic Load Balancers zu erstellen, die Sie zum Ausführen Ihrer Anwendung benötigen. Die Vorlage enthält Informationen darüber, welche Ressourcen Sie benötigen. AWS CloudFormation übernimmt den Rest, d. h. die planmäßige Bereitstellung der Ressourcen, die Bearbeitung von und Wiederherstellung nach Fehlern oder Problemen. Da AWS CloudFormation die Bereitstellung aller Ressourcen übernimmt, stellt sich die Frage, wie Ihre Anwendungssoftware auf den Amazon EC2-Instances bereitgestellt, konfiguriert und ausgeführt wird. Es gibt viele Optionen, die sich alle darauf auswirken, wie schnell Ihre Anwendung bereitgestellt werden kann und wie flexibel Sie beim Bereitstellen von neuen Softwareversionen sein müssen.
Mit AWS CloudFormation können Sie Ihre Anwendung konfigurieren und/oder installieren und Bereitstellungs- und Verwaltungstools bootstrappen, die Sie ggf. bereits in Ihrer Umgebung verwenden. Chef ist eine Open-Source-Lösung zur Infrastrukturautomatisierung von Opscode, geschrieben in Ruby. Mit dieser Lösung können Sie die Konfiguration Ihres Systems und der darauf ausgeführten Anwendungen automatisieren. AWS CloudFormation und Chef können gemeinsam verwendet werden, um den gesamten Bereitstellungs- und Verwaltungsprozess zu automatisieren, von den AWS-Ressourcen bis hin zu den Anwendungsartefakten.
Mit AWS CloudFormation können Sie Ihre Anwendung konfigurieren und/oder installieren und Bereitstellungs- und Verwaltungstools bootstrappen, die Sie ggf. bereits in Ihrer Umgebung verwenden. Puppet ist eine Open-Source-Plattform zum Bereitstellen und Konfigurieren von Anwendungen und Betriebssystemkomponenten sowie von Patches. AWS CloudFormation und Puppet können gemeinsam verwendet werden, um den gesamten Bereitstellungs- und Verwaltungsprozess zu automatisieren, von den AWS-Ressourcen bis hin zu den Anwendungsartefakten.
Mit der Einführung von AWS CloudFormation ist es für Kunden wieder ein Stück einfacher geworden, ihre Anwendungen in der Cloud zu nutzen. Häufig müssen für eine Anwendung mehrere Infrastrukturressourcen geschaffen werden. AWS CloudFormation hilft Kunden, die erforderlichen AWS-Ressourcensätze einfach und transparent zu erstellen und zu verwalten. Anhand aussagekräftiger Vorlagen können Kunden Ressourcen-Stacks erzeugen und so sicherstellen, dass alle Ressourcen in der richtigen Reihenfolge und mit der richtigen Bestätigung erstellt wurden.
Bisher wurde AWS von vielen Nutzern wie eine Art Kochbuch verwendet. Sie starten Instanzen, weisen Elastic-IP-Adressen zu, erstellen Nachrichtenwarteschlagen und so weiter. Mal werden diese Vorgänge anhand von Scripts und Vorlagen teilautomatisiert, mal werden sie vollständig manuell erledigt. Da die Systeme im Allgemeinen immer komplexer werden, ist es umso schwieriger, die passenden AMIs zu starten und Rollen zuzuweisen, Fehlerbedingungen zu beseitigen und alle beweglichen Teile in die richtige Position zu bringen!
In diesem Artikel wird beschrieben, wie durch die gemeinsame Nutzung von Amazon Linux AMI und AWS CloudFormation eine Anwendung dynamisch zur Laufzeit gestartet und konfiguriert wird. Anhand eines Beispiels wird demonstriert, wie mit der neuen, von AWS CloudFormation unterstützten WaitCondition-Ressource auf das Konfigurieren und Starten einer Ruby-on-Rails-Anwendung gewartet wird, ehe die erfolgreiche Erstellung des Stacks bestätigt werden kann. Ebenfalls gezeigt wird die Unterstützung der Amazon Linux AMI für Cloud-Init, eine von Canonical entwickelte Open-Source-Anwendung. Mit Cloud-Init können Sie anhand des Parameters "Amazon Elastic Compute Cloud (Amazon EC2) UserData" festlegen, welche Aktionen zur Startzeit in Ihrer Instanz ausgeführt werden sollen.
Diese kurze Folienpräsentation zeigt, warum es so wichtig ist, die Bereitstellung in der Cloud zu koordinieren und automatisieren.