© vaklav/Shutterstock.com
Cloud Compendium
Infrastruktur als Code mit AWS und Terraform

Die Automatisierung der Cloud

Amazon Web Services (AWS) bietet ein riesiges Portfolio an Diensten und Produkten, die man sich wie in einem Baukasten zusammensetzen und dann miteinander interagieren lassen kann. Als Entwickler klickt man sich für den Aufbau einer solchen Infrastruktur selbstverständlich am liebsten durch ein buntes Web-UI ohne Möglichkeit zur Automatisierung, Versionierung und Replikation - oder etwa nicht?

Michael Bruns


Die Hürde zum Aufbau einer eigenen Cloud-Infrastruktur war noch nie so niedrig wie heute. Anbieter wie AWS, Microsoft Azure oder Google Cloud Platform stellen eine Vielzahl flexibler, hoch verfügbarer Dienste zur Verfügung, deren Benutzung mithilfe einer leicht verständlichen Weboberfläche, in Tutorials oder Blogartikeln meist sehr anschaulich erklärt wird. Zudem stellen kostenlose oder zumindest stark vergünstigte Testphasen eine praktische Startrampe in die Cloud-Thematik dar, um ohne finanzielles Risiko die ersten Experimente wagen zu können. Möchte man eine der Plattformen dann nach erfolgreichen Experimenten produktiv einsetzen, stellt man allerdings schnell fest, dass sowohl das UI als auch die Testphase eher eine Einstiegsdroge als der Schlüssel zum Erfolg sind. Glücklicherweise gibt es inzwischen verschiedene Tools, die einem das Leben an dieser Stelle erleichtern. In der täglichen Arbeit des Autors hat sich die Kombination aus AWS und Terraform als sehr geeignet erwiesen, weshalb sie hier näher vorgestellt wird.Was ist Terraform?Terraform [1] ist ein Open-Source-Tool von HashiCorp, geschrieben in Go und verfügbar auf GitHub [2]. Es ermöglicht die deklarative Konfiguration einer Infrastruktur in strukturierten Textdateien, sodass diese wie jeder andere Quellcode in einem Versionskontrollsystem verwaltet werden können. Diese Konfiguration kann verwendet werden, um eine Umgebung zu planen, aufzubauen, zu verändern und auch wieder abzubauen. Listing 1 gibt einen groben Einblick in die Form einer Terraform-Konfiguration, indem es im Frankfurter Rechenzentrum von AWS eine virtuelle Maschine vom Typ t2.micro, basierend auf einem Amazon Machine Image (AMI) mit Ubuntu 16.04 LTS, einrichtet. Sehr umfangreiche Beispiele für verschiedene Anwendungsfälle stehen unter [3] zur Verfügung.provider "aws" { region = "eu-central-1"}resource "aws_instance" "kaeptn-eichhorn" { ami = "ami-13b8337c" instance_type = "t2.micro"}Die Verwendung von Terraform ist nicht auf AWS beschränkt. Es kann theoretisch mit jedem Provider funktionieren und auch das eigene Rechenzentrum einrichten. Für die meisten populären Anbieter gibt es bereits vorgefertigte Plug-ins, die aktiv gepflegt werden und an geänderte Bedingungen sowie neue Features angepasst werden. Eigene Plug-ins können selbstverständlich auch beigesteuert und in das Community-Repository aufgenommen werden. Von Tools wie Chef, Puppet etc. grenzt Terraform sich unter anderem dadurch ab, dass diese von der Existenz ein...

Cloud Compendium
Infrastruktur als Code mit AWS und Terraform

Die Automatisierung der Cloud

Amazon Web Services (AWS) bietet ein riesiges Portfolio an Diensten und Produkten, die man sich wie in einem Baukasten zusammensetzen und dann miteinander interagieren lassen kann. Als Entwickler klickt man sich für den Aufbau einer solchen Infrastruktur selbstverständlich am liebsten durch ein buntes Web-UI ohne Möglichkeit zur Automatisierung, Versionierung und Replikation - oder etwa nicht?

Michael Bruns


Die Hürde zum Aufbau einer eigenen Cloud-Infrastruktur war noch nie so niedrig wie heute. Anbieter wie AWS, Microsoft Azure oder Google Cloud Platform stellen eine Vielzahl flexibler, hoch verfügbarer Dienste zur Verfügung, deren Benutzung mithilfe einer leicht verständlichen Weboberfläche, in Tutorials oder Blogartikeln meist sehr anschaulich erklärt wird. Zudem stellen kostenlose oder zumindest stark vergünstigte Testphasen eine praktische Startrampe in die Cloud-Thematik dar, um ohne finanzielles Risiko die ersten Experimente wagen zu können. Möchte man eine der Plattformen dann nach erfolgreichen Experimenten produktiv einsetzen, stellt man allerdings schnell fest, dass sowohl das UI als auch die Testphase eher eine Einstiegsdroge als der Schlüssel zum Erfolg sind. Glücklicherweise gibt es inzwischen verschiedene Tools, die einem das Leben an dieser Stelle erleichtern. In der täglichen Arbeit des Autors hat sich die Kombination aus AWS und Terraform als sehr geeignet erwiesen, weshalb sie hier näher vorgestellt wird.Was ist Terraform?Terraform [1] ist ein Open-Source-Tool von HashiCorp, geschrieben in Go und verfügbar auf GitHub [2]. Es ermöglicht die deklarative Konfiguration einer Infrastruktur in strukturierten Textdateien, sodass diese wie jeder andere Quellcode in einem Versionskontrollsystem verwaltet werden können. Diese Konfiguration kann verwendet werden, um eine Umgebung zu planen, aufzubauen, zu verändern und auch wieder abzubauen. Listing 1 gibt einen groben Einblick in die Form einer Terraform-Konfiguration, indem es im Frankfurter Rechenzentrum von AWS eine virtuelle Maschine vom Typ t2.micro, basierend auf einem Amazon Machine Image (AMI) mit Ubuntu 16.04 LTS, einrichtet. Sehr umfangreiche Beispiele für verschiedene Anwendungsfälle stehen unter [3] zur Verfügung.provider "aws" { region = "eu-central-1"}resource "aws_instance" "kaeptn-eichhorn" { ami = "ami-13b8337c" instance_type = "t2.micro"}Die Verwendung von Terraform ist nicht auf AWS beschränkt. Es kann theoretisch mit jedem Provider funktionieren und auch das eigene Rechenzentrum einrichten. Für die meisten populären Anbieter gibt es bereits vorgefertigte Plug-ins, die aktiv gepflegt werden und an geänderte Bedingungen sowie neue Features angepasst werden. Eigene Plug-ins können selbstverständlich auch beigesteuert und in das Community-Repository aufgenommen werden. Von Tools wie Chef, Puppet etc. grenzt Terraform sich unter anderem dadurch ab, dass diese von der Existenz ein...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang