Suchen

Definition: Infrastructure as Code (IaC) auf Basis von AWS Was ist AWS CloudFormation?

Mit AWS CloudFormation ist es möglich, Infrastrukturressourcen der Amazon Web Services mit einfachem Textcode zu konfigurieren und bereitzustellen. Es werden zahlreiche Ressourcen der Amazon Web Services unterstützt. Modellierung und Bereitstellung der Services erfolgen über Templates und Stacks.

Firmen zum Thema

Infrastructure as Code (IaC) mit AWS CloudFormation: Konfigurieren und Bereitstellen von Ressourcen der Amazon Web Services.
Infrastructure as Code (IaC) mit AWS CloudFormation: Konfigurieren und Bereitstellen von Ressourcen der Amazon Web Services.
(Bild: gemeinfrei (geralt / pixabay) / Pixabay )

AWS CloudFormation folgt dem Konzept von Infrastructure as Code (IaC) und ermöglicht es, Infrastrukturressourcen der Amazon Web Services mit einfachem Textcode zu konfigurieren, bereitzustellen und zu verwalten. Die Infrastruktur ist über einfache textbasierte Vorlagen (Templates) programmierbar. Es handelt sich bei AWS CloudFormation um eine einfach zu verstehende, Skript-ähnliche Sprache. Die Textdateien stellen die grundlegenden Informationen für die Cloud-Umgebung zur Verfügung. Beispielsweise können Datenbanken, Netzwerke, Loadbalancer und vieles mehr mit AWS CloudFormation Templates definiert und deployed werden. Die Templates setzt CloudFormation unter Berücksichtigung von Abhängigkeiten und Datenflüssen automatisch in lauffähige Ressourcen um. Die betriebsbereiten Ressourcen werden Stacks genannt und sind mit CloudFormation managebar. Darüber hinaus bietet Amazon mit dem CloudFormation Designer ein Werkzeug an, das die grafische Zusammenstellung von Ressourcen erlaubt. Für die so konfigurierte Sammlung aus Services erstellt der CloudFormation Designer die benötigten Textvorlagen. AWS CloudFormation ist ohne zusätzliche Kosten nutzbar. Anwender zahlen lediglich für die in den Amazon Web Services erstellten und betriebenen Ressourcen.

Unterstützte AWS Ressourcen

AWS CloudFormation unterstützt eine Vielzahl Ressourcen und Dienste der Amazon Web Services aus den Bereichen Analysen, Anwendungsservices, Datenverarbeitung, Datenbank, Internet of Things (IoT), Machine Learning, Netzwerk, Sicherheit, Speicher, Identität, mobile Services und mehr. Zu diesen Services zählen beispielsweise:

  • Amazon Athena
  • Amazon EMR
  • AWS Data Pipeline
  • Amazon Elasticsearch Service
  • AWS Glue
  • Amazon Kinesis
  • Amazon MQ
  • Amazon API Gateway
  • Amazon Simple Queue Service
  • AWS Step Functions
  • AWS Auto Scaling
  • Amazon Elastic Compute Cloud
  • Amazon Elastic Container Registry
  • Amazon Elastic Kubernetes Service
  • Amazon EC2 Systems Manager
  • AWS Batch
  • AWS Elastic Beanstalk
  • AWS Elastic Load Balancing
  • AWS Lambda
  • Amazon Simple Email Service
  • Amazon DocumentDB
  • Amazon DynamoDB
  • Amazon SimpleDB
  • AWS Database Migration Service
  • Amazon ElastiCache
  • Amazon Neptune
  • Amazon Relational Database Service
  • Amazon Redshift
  • AWS Cloud9
  • AWS CodeCommit
  • AWS CodeDeploy
  • AWS CodePipeline
  • Amazon AppStream 2.0
  • Amazon WorkSpaces
  • Amazon GameLift
  • AWS IoT
  • Amazon SageMaker
  • AWS CloudTrail
  • Amazon CloudWatch
  • AWS Config
  • Amazon Data Lifecycle Manager
  • AWS OpsWorks
  • AWS Service Catalog
  • AWS Systems Manager
  • AWS AppSync
  • Amazon Cognito
  • Amazon Simple Notification Service
  • Amazon Route 53
  • AWS Cloud Map
  • Amazon Virtual Private Cloud
  • AWS Certificate Manager
  • AWS Directory Service
  • Amazon Inspector
  • Amazon GuardDuty
  • AWS Identity and Access Management
  • AWS Key Management Service
  • AWS Secrets Manager
  • AWS WAF
  • Amazon CloudFront
  • Amazon Elastic Block Store
  • Amazon Elastic File System
  • Amazon Simple Storage Service
  • AWS Billing and Cost Management

Die CloudFormation Vorlage (Template)

Das Konzept von AWS CloudFormation basiert auf den beiden Elementen Templates (Vorlagen) und Stacks. Eine Vorlage ist eine textbasierte Datei und verwendet das JSON- oder YAML-Format. Innerhalb der Vorlage sind die Ressourcen beschrieben, die bereitgestellt werden sollen. Es werden Elemente wie Eingabewerte, Ausgabewerte, Datentabellen, Konfigurationswerte oder Listen von AWS Ressourcen verwendet. Jede Vorlage lässt sich mit einer eindeutigen Versionsnummer versehen. Die Vorlage legt Parameter der Web Services wie Portnummern oder Größen von Datenbanken fest und übergibt sie an den zu erstellenden Stack.

Der CloudFormation Stack

Ein CloudFormation Stack besteht aus einer Gruppe von Amazon Web Service Ressourcen und wird als eine Einheit bereitgestellt und verwaltet. CloudFormation erstellt den Stack, sobald die Vorlage übergeben wird. Bei der Erstellung werden automatisch Abhängigkeiten und Datenflüsse berücksichtigt. Nachdem ein Stack lauffähig bereitgestellt ist, können Anwender ihn über Werkzeuge wie die AWS CloudFormation Konsole, die CloudFormation API oder das AWS Command Line Interface verwalten. Beim Löschen eines Stacks werden alle abhängigen Ressourcen ebenfalls gelöscht.

Der CloudFormation Designer

Mit dem AWS CloudFormation Designer stellt Amazon ein grafikbasiertes Werkzeug zur Erstellung von CloudFormation Vorlagen zur Verfügung. Per Drag & Drop lassen sich Ressourcen hinzufügen, die der Designer anschließend automatisch in Textcode übersetzt. Über einen integrierten JSON- und YAML-Texteditor ist es möglich, Details der Vorlagen wie Parameter oder Konfigurationswerte festzulegen und anzupassen. Der CloudFormation Designer ist Teil der AWS CloudFormation Konsole. Dank dem Designer muss der Anwender nicht selbst den Code der Vorlagen manuell erstellen und benötigt keine spezifischen JSON- und YAML-Formatkenntnisse. Darüber hinaus erhält er einen einfach zu erfassenden visuellen Überblick über die Ressourcen und ihre Abhängigkeiten untereinander.

Die AWS CloudFormation API

Wichtiger Bestandteil von AWS CloudFormation sind mehrere APIs. Verfügbare APIs sind unter anderem:

  • die CreateStack-API
  • die ListStacks-API
  • die UpdateStack-API

Mit der CreateStack-API lassen sich neue Stacks erstellen. Hierfür sind Parameter wie Name des Stacks und Name der Vorlage an die Schnittstelle zu übergeben. Die ListStacks-API listet alle Stacks eines Amazon-Kontos auf. Darüber hinaus liefert die API Statusinformationen zu den einzelnen Stacks. Über die UpdateStack-API können existierende Stacks aktualisiert werden. Wie bei der CreateStack-API benötigt die UpdateStack-API den Namen des zu aktualisierenden Stacks sowie den Namen der aktualisierten Vorlage.

Vorteile durch AWS CloudFormation

AWS CloudFormation und das Konzept von Infrastructure as Code bietet zahlreiche Vorteile. Entwickler können Bereitstellungsvorgänge von Amazon Web Service Ressourcen mit einfachen Mitteln automatisieren. Für die Nutzung von AWS CloudFormation fallen keine Kosten an. Die komplette Infrastruktur ist über Textdateien konfigurierbar und modellierbar. Über standardisierte Templates ist das Deployment von Ressourcen schnell und fehlerfrei möglich. Abhängigkeiten zwischen den Ressourcen eines Stacks werden berücksichtigt. Vorlagen sind mit beliebigen Texteditoren erstellbar und können eine Versionskontrolle unterworfen werden. Die Vorlagen sind mit unterschiedlichen Konfigurationswerten wiederverwendbar.

Der CloudFormation Designer gestattet die grafische Erstellung von Ressourcen per Drag & Drop ohne spezifische Code-Kenntnisse. Über das Konzept der textbasierten Vorlagen ist ein schnelles Replizieren der Infrastruktur möglich. Vorlagen lassen sich mehrfach verwenden, um die einzelnen Ressourcen erneut beispielsweise in mehreren Regionen einzurichten. Veränderungen der per CloudFormation bereitgestellten Infrastruktur sind durch einfaches Vergleichen der textbasierten Vorlagendateien leicht nachvollziehbar. Um Änderungen rückgängig zu machen, genügt das Einspielen einer älteren Vorlage.

(ID:46057456)

Über den Autor