Terraform gehört zu den bekanntesten Tools, wenn es darum geht die Erstellung und Konfiguration von Ressourcen in der Cloud, der Container-Umgebung oder im eigenen Datacenter zu automatisieren. Admins erstellen hierfür in Terraform deklarative Skripte.
Die Bereitstellung, Verwaltung und Orchestrierung von Multicloud-Umgebungen ist komplex für DevOps-Teams; Infrastructure-as-Code, wie es das plattformunabhängige Terraform nutzt, sorgt für Entlastung.
(Bild: Alex - stock.adobe.com)
Terraform ist ein bekanntes Open Source-Tool, mit dem Admins über Skripte die Erstellung und Konfiguration von Ressourcen in der Cloud automatisieren können. Dadurch können Admins Skripte schreiben, die auch eine große Menge an Ressourcen in verschiedenen Cloud-Lösungen automatisiert erstellen oder konfigurieren.
Dazu ist keine umfassende Serverlösung notwendig, sondern die ausführbare Datei von Terraform reicht dabei aus. Der Einstieg ist damit sehr schnell möglich. Neben AWS und Azure kann Terraform natürlich auch in anderen Cloud-Umgebungen zum Einsatz kommen, zum Beispiel GCP. Das Tool steht in der Community-Edition kostenlos zur Verfügung. In größeren Umgebungen sollte das Produkt lizenziert werden, um auch Support zu erhalten.
Terraform nutzt JSON und HCL
Idealerweise kommt bei der Verwendung von Terraform die Hashicorp Configuration Language (HCL) oder JSON zum Einsatz. Über die Sprachen erstellen Admins oder Entwickler ein Skript, das einen Bauplan für die Ressourcen darstellt, die Terraform in der jeweiligen Cloud erstellen soll. Dabei können die einzelnen Ressourcen auch in Abhängigkeiten zueinanderstehen und es ist möglich, Objekte zu erstellen, welche die Ressourcen brauchen. Aktualisieren lassen sich dadurch auch größere Umgebungen, natürlich komplett skriptbasiert.
Terraform kann außerdem Ressourcen in der Cloud auf Konformität überprüfen. Sind die Ressourcen nicht konform, kann Terraform diese löschen und neu erstellen, nach Vorgabe im Skript.
Einstieg in Terraform
Terraform steht als ausführbare Datei für Windows, Linux und macOS zur Verfügung. Der Download besteht generell aus einer einzelnen Datei „terraform.exe“. Seine Version zeigt Terraform mit „terraform.exe -v“ an. Das Tool kann daher in der Shell und Befehlszeile genutzt, oder direkt in Visual Studio eingebunden werden. Eine Hilfe ist mit „terraform -help“ verfügbar. Dazu kommen auch Hilfen für jeden einzelnen Parameter von Terraform, zum Beispiel „terraform -help plan“.
Skripte müssen vor der Ausführung erst mit „terraform init“ initialisiert werden. Mit „terraform plan“ wird das Skript auf Plausibilität überprüft und mit „terraform apply“ ausgeführt. Bereits erstellte Umgebungen können mit „terraforrm refresh“ aktualisiert werden. Rückgängig machen lassen sich die Aktionen mit „terraform destroy“. Bei der Ausführung löscht Terraform die erstellten Objekte.
Beispiel 1: Bereitstellung einer EC2-Instanz auf AWS
Um eine EC2-Instanz auf AWS bereitzustellen, wird eine Konfigurationsdatei mit der Endung .tf erstellt. In dieser Datei wird der AWS-Provider angegeben und die Eigenschaften der EC2-Instanz definiert.
hclCode kopierenprovider "aws" { region = "us-west-2"}resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" tags = { Name = "ExampleInstance" }}
In diesem Beispiel wird eine EC2-Instanz des Typs t2.micro in der Region us-west-2 bereitgestellt. Das Amazon Machine Image (AMI) wird durch seine ID spezifiziert. Die Tags helfen, die Instanz zu identifizieren.
Beispiel 2: Erstellung eines S3-Buckets
Die Erstellung eines S3-Buckets auf AWS kann ebenfalls mittels Terraform realisiert werden. Eine Konfigurationsdatei enthält die Definition des S3-Buckets:
Hier wird ein S3-Bucket mit dem Namen my-unique-bucket-name und der Zugriffskontrollliste private erstellt. Tags werden hinzugefügt, um den Bucket zu kategorisieren und den Entwicklungsumgebung zuzuordnen.
Beispiel 3: Erstellung einer Azure Virtual Machine
Die Bereitstellung einer virtuellen Maschine auf Azure erfordert die Definition des Azure-Providers und der VM-Eigenschaften in der .tf-Datei:
In diesem Beispiel wird eine Ressourcengruppe, ein virtuelles Netzwerk, ein Subnetz, eine Netzwerkschnittstelle und eine virtuelle Maschine in Azure bereitgestellt. Die Konfigurationsdatei enthält alle notwendigen Parameter, um die VM zu erstellen und zu konfigurieren.
Die Umsetzung der gezeigten Skripte in der jeweiligen Cloud-Plattform erfolgt durch eine standardisierte Vorgehensweise, die bei allen Anbietern ähnlich abläuft.
Für das Beispiel der Bereitstellung einer EC2-Instanz und eines S3-Buckets in AWS wird eine Konfigurationsdatei mit der Endung .tf erstellt. Die Konfiguration der AWS-CLI ermöglicht die Authentifizierung. Nach der Erstellung der Konfigurationsdatei werden folgende Schritte durchgeführt:
1. Initialisierung des Terraform-Arbeitsverzeichnisses mit terraform init.
2. Überprüfung des Konfigurationsplans mit terraform plan, um sicherzustellen, dass die Ressourcen korrekt definiert sind.
3. Anwendung des Plans mit terraform apply, wodurch die EC2-Instanz und der S3-Bucket bereitgestellt werden.
Für die Bereitstellung einer virtuellen Maschine in Azure muss ebenfalls eine Konfigurationsdatei erstellt werden. Zuerst erfolgt die Authentifizierung bei Azure durch das Ausführen von az login mit der Azure-CLI. In beiden Fällen folgt die Umsetzung einem standardisierten Muster: Initialisierung (terraform init), Planerstellung und -überprüfung (terraform plan) sowie Anwendung des Plans (terraform apply). Dieses Muster stellt sicher, dass alle erforderlichen Ressourcen konsistent und reproduzierbar in der jeweiligen Cloud-Umgebung bereitgestellt werden. Terraform ermöglicht durch seine deklarative Syntax die einfache Verwaltung und Skalierung der Infrastruktur.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.