Kurs
Infrastructure as Code (IaC) automatisiert die Bereitstellung und Verwaltung von Infrastruktur über Code. Zwar lassen sich Ressourcen auch per Hardwarekonfiguration oder interaktiven Tools bereitstellen, doch IaC bietet klare Vorteile: Versionskontrolle, Wiederholbarkeit und Skalierbarkeit. Eines der führenden IaC-Tools ist Terraform, eine Lösung von HashiCorp aus dem Jahr 2014, die weltweit von mehr als 500.000 Organisationen eingesetzt wird. Schauen wir uns an, wie Terraform funktioniert und wie du es in modernen IT-Umgebungen nutzt.
Für den Einstieg in Terraform solltest du mit mindestens einem großen Cloud-Anbieter (AWS, Azure, Google Cloud etc.) vertraut sein, da Terraform Cloud-Infrastruktur verwaltet. Unser Kurs Understanding Cloud Computing liefert dir eine solide Basis, falls du neu in der Cloud-Welt bist.
Was ist Terraform?
Terraform ist ein Open-Source-Tool, mit dem du Infrastrukturkomponenten und ihre Beziehungen in einer deklarativen, hochsprachigen Konfiguration definierst.
In den menschenlesbaren Konfigurationsdateien von Terraform beschreibst du den gewünschten Zielzustand deiner Infrastruktur, und Terraform ermittelt automatisch den Weg dorthin. Diese Dateien lassen sich versionieren, teilen und wiederverwenden – so verwaltest du deine Infrastruktur konsistent, von Compute- und Storage-Ressourcen bis hin zu DNS und SaaS-Funktionen.
Terraform kann mit verschiedenen Cloud-Anbietern, in Multi-Cloud-Setups und in On-Premises-Umgebungen eingesetzt werden.
Zentrale Funktionen von Terraform
Werfen wir einen genaueren Blick auf die Grundlagen, die Terraform auszeichnen:
HashiCorp Configuration Language
Terraform verwendet die HashiCorp Configuration Language (HCL), eine speziell für Infrastructure as Code entwickelte Hochsprache. Solche Sprachen setzen auf eine deklarative, abstrakte und nutzerfreundliche Syntax – im Gegensatz zu Low-Level-Skripten oder manueller Konfiguration. Ähnliche Hochsprachen begegnen dir etwa in YAML- oder JSON-Dateien.
HCL folgt einer Blockstruktur, in der verschachtelte Blöcke Ressourcen und deren Konfigurationen repräsentieren. Ressourcen werden explizit mit Namen und Attributen definiert.
resource "aws_instance" "example" {
ami = "ami-123456"
instance_type = "t2.micro"
}
Ausführungsplan
Nachdem du den gewünschten Zustand definiert hast, erzeugt Terraform einen Ausführungsplan. Dieser listet die Schritte auf, die Terraform durchführen muss, damit der Zielzustand erreicht wird – du kannst die Änderungen also vorab prüfen. So vermeidest du unerwünschte Modifikationen wie das Löschen von Ressourcen.
Zustandsverwaltung
Terraform führt eine Zustandsdatei, die automatisch den aktuellen Stand deiner Infrastruktur nachhält und als „Source of Truth“ dient, um notwendige Änderungen zu bestimmen. Standardmäßig wird sie lokal als terraform.tfstate gespeichert.
Provider
Provider sind Plugins, die mit den APIs von Cloud-Plattformen und anderen Diensten interagieren und Terraform das Verwalten einer Vielzahl von Ressourcen ermöglichen. Offizielle Provider werden von HashiCorp und Partnern wie AWS, Azure, Google Cloud, GitHub, Datadog u. a. entwickelt und gepflegt. Community-Plugins findest du im Terraform Registry oder auf GitHub.
Ressourcengraph
Terraform erstellt einen Ressourcengraphen, der die Ressourcen deiner Infrastruktur und ihre Abhängigkeiten abbildet. Dieser Graph hilft Terraform, Pläne effizient zu generieren, Abhängigkeiten korrekt zu behandeln und Ressourcen in der richtigen Reihenfolge zu erstellen, zu aktualisieren oder zu löschen. Gleichzeitig eignet er sich hervorragend, um deine Infrastruktur zu visualisieren und die Auswirkungen geplanter Änderungen zu verstehen.

Beispiel für einen Ressourcengraphen. Quelle: HashiCorp-Dokumentation
Erste Schritte mit Terraform
Gehen wir gemeinsam den ersten Terraform-Workflow durch. Wenn du neu in DevOps oder Cloud Computing bist, empfehle ich dir vorab unsere Kurse Understanding Cloud Computing und Introduction to DevOps.
Installation und Setup
In diesem Terraform-Tutorial erstellen wir Ressourcen auf AWS. Wenn du mitmachen möchtest und noch kein Konto hast, registriere dich bei AWS.
- Lade Terraform von der offiziellen Website herunter. Wähle das passende Binary für dein Betriebssystem und folge der Installationsanleitung.
- Öffne nach der Installation ein neues Terminal-Fenster und führe terraform -version aus, um zu prüfen, ob alles korrekt installiert wurde.
- Installiere die AWS CLI
- Konfiguriere die AWS CLI, indem du im Terminal aws configure eingibst. Du wirst nach deiner Access Key ID, deinem Secret Access Key, deiner Standard-Region und dem Standardausgabeformat gefragt. Terraform kann diese Angaben anschließend automatisch nutzen.
Erste Terraform-Konfiguration
Lege ein neues Verzeichnis und deine erste Konfigurationsdatei an. Nennen wir sie main.tf und teilen Terraform mit, dass wir eine AWS-EC2-Instanz erstellen möchten. Der in HCL geschriebene Code sieht so aus:
provider "aws" {
region = "us-west-2"
}
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}
Projekt initialisieren
Initialisiere nun das Terraform-Projekt mit folgendem Befehl:
$ terraform init
Dieser Einmal-Befehl lädt die benötigten Provider-Plugins herunter. Für spätere Änderungen musst du ihn nicht erneut ausführen.
Plan
Erzeuge jetzt den Ausführungsplan. Denk daran: Der Plan zeigt, welche Änderungen Terraform vornehmen muss, um den gewünschten Zustand zu erreichen (hier: eine laufende EC2-Instanz). Führe aus:
$ terraform plan
Du solltest eine Ausgabe wie diese sehen:
Terraform will perform the following actions:
# aws_instance.example will be created
+ resource "aws_instance" "example" {
+ ami = "ami-0c55b159cbfafe1f0"
+ instance_type = "t2.micro"
...
}
Plan: 1 to add, 0 to change, 0 to destroy.
Apply
Wir haben den Plan geprüft und führen ihn nun aus, um die Ressourcen bereitzustellen. Im Terminal:
$ terraform apply
Du wirst um Bestätigung gebeten. Tippe „yes“, um fortzufahren.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
Anschließend siehst du in etwa Folgendes:
aws_instance.example: Creating...
aws_instance.example: Still creating... [10s elapsed] aws_instance.example:
Creation complete after 15s [id=i-0abcdef1234567890]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Glückwunsch, du hast deine erste EC2-Instanz auf AWS mit Terraform bereitgestellt!
Vorteile von Terraform
Wir haben bereits erwähnt: Terraform bringt viele Vorteile wie Konsistenz und Wiederholbarkeit – und dank Ausführungsplänen weniger menschliche Fehler.
Weitere Pluspunkte sind:
- Schnelle Bereitstellung: Terraform kann Ressourcen parallel anlegen und aktualisieren – ideal, um Entwicklungs-, Test- und Staging-Umgebungen zügig hochzufahren.
- Bessere Zusammenarbeit: In Kombination mit Versionskontrolle wie Git fördert Terraform Transparenz und Kollaboration in der Infrastruktur. Änderungen lassen sich wie Anwendungscode prüfen, freigeben und nachverfolgen.
- Effizientes Disaster Recovery: Geht etwas schief, kann Terraform die gesamte Infrastruktur anhand derselben Konfigurationsdateien schnell neu aufbauen.
- Starke Community: Terraform setzt auf Module – wiederverwendbare Konfigurationen, die Best Practices fördern. Zudem gibt es eine aktive Community und ein breites Ökosystem an Providern und Modulen – du findest fast immer etwas Passendes für deinen Tech-Stack, egal wie speziell er ist.
Häufige Einsatzszenarien für Terraform
Ob du als Data Engineer Pipelines aufbaust oder als Data Scientist Lösungen in Produktion bringst – Terraform ist ein starkes Werkzeug für deine Infrastrukturanforderungen. Häufige Use Cases sind:
Multi-Cloud-Management
Infrastruktur über mehrere Cloud-Anbieter hinweg zu steuern, ist nicht trivial. Terraform ermöglicht genau das – mit einem einzigen Tool. Zusätzlich kann Terraform On-Premises-Ressourcen verwalten und ist damit ideal für Organisationen mit hybriden Umgebungen.
CI/CD-Workflows
Terraform lässt sich hervorragend in CI/CD-Workflows integrieren. So kannst du Infrastruktur als Teil deines Software-Lieferprozesses bereitstellen – und Preview-, Dev-, Test- oder Staging-Umgebungen bei Bedarf automatisch erstellen und wieder entfernen.
Kubernetes-Cluster
Terraform kann Kubernetes-Cluster bei verschiedenen Cloud-Anbietern wie AWS (EKS), Azure (AKS) oder GCP (GKE) verwalten. Dazu gehören das Aufsetzen der notwendigen Infrastruktur, das Managen von Kubernetes-Ressourcen im Cluster und das Skalieren je nach Last.
Terraform vs. andere IaC-Tools
Zu den weiteren populären IaC-Tools zählen Ansible, Chef, Puppet und AWS CloudFormation. Jedes Tool hat Stärken und Schwächen. Ein Überblick:
| Feature | Terraform | Ansible | Chef | Puppet | CloudFormation |
|---|---|---|---|---|---|
| Open Source | Ja | Ja | Ja | Ja | Nein |
| Deklarative Syntax | Ja | Nein | Nein | Ja | Ja |
| Multi-Cloud-Support | Ja | Ja | Ja | Ja | Nein, nur AWS |
| Zustandsverwaltung | Ja | Nein | Nein | Ja | Ja |
| Ausführungspläne | Ja | Nein | Nein | Nein | Nein |
| Abhängigkeitsmanagement | Ja | Begrenzt | Begrenzt | Ja | Ja |
Wie wir sehen, sind alle diese Tools leistungsfähig, doch Terraform punktet mit einem besonders umfassenden Funktionsumfang. Die Liste ist nicht vollständig, und je nach Anforderungen decken die Tools teils unterschiedliche Einsatzszenarien ab. Ansible mit seinem prozeduralen Ansatz eignet sich beispielsweise sehr gut für Konfigurationsmanagement und Ad-hoc-Aufgaben.
Fazit
In den letzten zehn Jahren hat Terraform Tausenden Organisationen geholfen, ihre IT-Infrastruktur zu verwalten. Dank des deklarativen Ansatzes, der hohen Automatisierung und der Multi-Cloud-Unterstützung zählt Terraform heute zu den beliebtesten IaC-Tools – und wird mit wachsender Cloud-Nutzung ein Schwergewicht im Infrastrukturmanagement bleiben.
Jetzt, da du die Grundlagen von Terraform kennst, kannst du dich an fortgeschrittene Konfigurationen und Praxis-Szenarien wagen. Sieh dir die HashiCorp-Tutorials zu Terraform an, um typische Aufgaben und Use Cases umzusetzen, oder lies unseren Blogpost 14 essenzielle Data-Engineering-Tools für 2024, um zu verstehen, wie Terraform in den Werkzeugkasten eines Data Engineers passt.

Ich bin ein produktorientierter technischer Leiter, der sich darauf spezialisiert hat, Start-ups in der Frühphase vom ersten Prototyp bis zur Marktreife und darüber hinaus zu entwickeln. Ich bin unendlich neugierig darauf, wie Menschen Technologie nutzen, und ich liebe es, eng mit Gründern und funktionsübergreifenden Teams zusammenzuarbeiten, um mutige Ideen zum Leben zu erwecken. Wenn ich nicht gerade Produkte entwickle, bin ich auf der Suche nach Inspiration in neuen Ecken der Welt oder lasse im Yogastudio Dampf ab.
Häufige Fragen
Ist Terraform für kleine Projekte geeignet oder primär für den Unternehmenseinsatz?
Terraform ist unabhängig von der Projektgröße hilfreich. Ob 5 oder 1000 Ressourcen – die Vorteile machen sich in jedem Fall bemerkbar.
Wie viel kostet Terraform?
Terraform ist Open Source und kostenlos nutzbar. Beachte jedoch, dass dein(e) Cloud-Anbieter Kosten für die über Terraform bereitgestellten und verwalteten Ressourcen berechnen.
Kann Terraform Datenbanken und andere zustandsbehaftete Services verwalten?
Ja, Terraform kann Datenbanken und andere zustandsbehaftete Dienste verwalten. Du kannst Instanzen, Cluster und Konfigurationen in deinen IaC-Dateien definieren.
Wie geht Terraform mit Secrets und sensiblen Informationen in Konfigurationsdateien um?
Terraform unterstützt Best Practices im Umgang mit Secrets – etwa über Umgebungsvariablen, verschlüsselte Variablen und Integrationen mit Secret-Management-Lösungen wie HashiCorp Vault oder AWS Secrets Manager.