Weiter zum Inhalt

Was ist Terraform? Starte mit Infrastructure as Code

Lies unsere Schritt-für-Schritt-Einführung in Terraform und lerne, wie du deine Azure-, AWS- und Google-Cloud-Infrastruktur effizient automatisierst und verwaltest.
Aktualisiert 22. Apr. 2026  · 10 Min. lesen

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. 

Example Terraform Resource Graph, showing AWS resources and the dependency relationships between them

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.

  1. Lade Terraform von der offiziellen Website herunter. Wähle das passende Binary für dein Betriebssystem und folge der Installationsanleitung.
  2. Öffne nach der Installation ein neues Terminal-Fenster und führe terraform -version aus, um zu prüfen, ob alles korrekt installiert wurde. 
  3. Installiere die AWS CLI
  4. 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.


Marie Fayard's photo
Author
Marie Fayard

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.

Themen

Lerne mit DataCamp

Kurs

Einführung in Python

4 Std.
6.8M
Lerne in nur vier Stunden die Grundlagen der Datenanalyse mit Python und entdecke beliebte Python-Pakete.
Details anzeigenRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Tutorial

Python Datenstrukturen Tutorial

Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

30 coole Python-Tricks für besseren Code mit Beispielen

Wir haben 30 coole Python-Tricks zusammengestellt, mit denen du deinen Code verbessern und deine Python-Kenntnisse ausbauen kannst.
Kurtis Pykes 's photo

Kurtis Pykes

Tutorial

Python-Lambda-Funktionen: Ein Leitfaden für Anfänger

Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Mark Pedigo's photo

Mark Pedigo

Tutorial

Python-Anweisungen IF, ELIF und ELSE

In diesem Tutorial lernst du ausschließlich Python if else-Anweisungen kennen.
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

Python-Arrays

Python-Arrays mit Code-Beispielen. Lerne noch heute, wie du mit Python NumPy Arrays erstellen und ausdrucken kannst!
DataCamp Team's photo

DataCamp Team

Tutorial

Python Switch Case Statement: Ein Leitfaden für Anfänger

Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Matt Crabtree's photo

Matt Crabtree

Mehr anzeigenMehr anzeigen