Terraform
Terraform ist ein Open-Source-Tool von HashiCorp für Infrastructure as Code. Es ermöglicht die deklarative Definition, Bereitstellung und Verwaltung von Cloud-Infrastruktur über Provider wie AWS, Azure und GCP.
Was ist Terraform?
Terraform ist das am weitesten verbreitete Open-Source-Tool für Infrastructure as Code (IaC). Entwickelt von HashiCorp, ermöglicht Terraform die deklarative Definition deiner gesamten Cloud-Infrastruktur in Konfigurationsdateien. Du beschreibst den gewünschten Zustand – Terraform berechnet die nötigen Änderungen und führt sie aus.
Für mittelständische Unternehmen bietet Terraform einen entscheidenden Vorteil: Cloud-agnostisch arbeiten. Ob AWS, Azure, Google Cloud oder eine Kombination – Terraform verwaltet die Infrastruktur über eine einheitliche Sprache und einen einheitlichen Workflow.
HashiCorp Configuration Language (HCL)
Terraform verwendet die eigene Sprache HCL (HashiCorp Configuration Language). HCL ist deklarativ, menschenlesbar und speziell für die Definition von Infrastruktur entworfen:
- Ressourcen: Die Grundbausteine – jede Infrastruktur-Komponente (EC2-Instanz, S3-Bucket, VPC) wird als Ressource definiert.
- Provider: Plugins, die die Kommunikation mit Cloud-APIs übernehmen. Über 3.000 Provider verfügbar.
- Variablen: Parametrisieren deine Konfiguration für verschiedene Umgebungen (Dev, Staging, Prod).
- Outputs: Exportieren Werte wie IP-Adressen oder DNS-Namen nach dem Apply.
- Data Sources: Lesen bestehende Informationen aus der Cloud (z. B. aktuelle AMI-ID).
Deklarativ vs. Imperativ
Terraform arbeitet deklarativ: Du beschreibst, WAS du haben willst, nicht WIE es erstellt werden soll. Wenn du sagst „Ich will drei EC2-Instanzen", prüft Terraform den aktuellen Zustand. Existieren bereits zwei, erstellt es nur eine weitere. Existieren vier, löscht es eine. Dieser Ansatz ist robuster und weniger fehleranfällig als imperative Skripte.
State Management
Der Terraform State ist das Herzstück von Terraform. Er speichert die Zuordnung zwischen deiner Konfiguration und den tatsächlichen Cloud-Ressourcen. Ohne State wüsste Terraform nicht, welche Ressourcen es verwaltet.
- Local State: Standardmäßig speichert Terraform den State als Datei (terraform.tfstate). Für Teams ungeeignet, da keine gleichzeitige Bearbeitung möglich ist.
- Remote State: In der Praxis unverzichtbar. S3 + DynamoDB (für State Locking) ist das bewährteste Setup für AWS. Terraform Cloud bietet eine gehostete Alternative.
- State Locking: Verhindert, dass zwei Personen gleichzeitig Änderungen durchführen. Absolute Pflicht in Teams.
State-Sicherheit
Der State enthält sensible Daten wie Datenbankpasswörter im Klartext. Verschlüssele den State im Remote Backend (S3 Server-Side Encryption) und beschränke den Zugriff über IAM-Policies.
Terraform Module
Module sind wiederverwendbare Terraform-Konfigurationen. Statt dieselbe VPC-Konfiguration in jedem Projekt zu wiederholen, erstellst du ein VPC-Modul und rufst es mit unterschiedlichen Parametern auf. Die Terraform Registry bietet tausende öffentliche Module.
Praxisbeispiel: Ein mittelständisches Unternehmen erstellt drei interne Module – VPC, EKS-Cluster, RDS-Datenbank. Jedes neue Projekt nutzt diese Module und hat in wenigen Minuten eine vollständige, konsistente Infrastruktur.
Terraform vs. CloudFormation
- Multi-Cloud: Terraform unterstützt AWS, Azure, GCP und über 3.000 weitere Provider. CloudFormation nur AWS.
- Sprache: Terraform nutzt HCL (oder optional JSON). CloudFormation nutzt JSON oder YAML – oft deutlich verbos.
- State Management: Terraform erfordert eigenes State Management. CloudFormation verwaltet den State automatisch in AWS.
- Ökosystem: Terraform hat die größere Community, mehr öffentliche Module und besseres Tooling (tflint, tfsec, Terragrunt).
- Drift Detection: terraform plan zeigt Änderungen an, auch wenn jemand manuell etwas geändert hat. CloudFormation hat Drift Detection, aber sie ist weniger zuverlässig.
Best Practices für Terraform
- Remote State mit Locking: Ab Tag eins. S3 + DynamoDB für AWS.
- Modularisierung: Erstelle wiederverwendbare Module für häufige Patterns.
- Umgebungstrennung: Separate State-Dateien pro Umgebung. Workspaces oder Terragrunt für die Verwaltung.
- CI/CD-Integration: terraform plan in der CI-Pipeline, terraform apply mit manueller Freigabe.
- Version Pinning: Fixiere Provider- und Modul-Versionen, um unerwartete Änderungen zu vermeiden.
- Code Review: Jede Terraform-Änderung über Pull Requests mit Review.
- Naming Conventions: Konsistente Benennung von Ressourcen mit Prefix für Umgebung und Projekt.
Terraform für den Mittelstand einsetzen
Starte klein: Definiere zuerst die Netzwerk-Infrastruktur (VPC, Subnets, Security Groups) in Terraform. Dann erweitere schrittweise um Compute (EC2, EKS), Storage (S3, RDS) und weitere Services. So baust du Erfahrung auf, ohne sofort die gesamte Infrastruktur migrieren zu müssen.
Häufig gestellte Fragen zu Terraform
Terraform ist ein Tool, mit dem du Cloud-Infrastruktur (Server, Netzwerke, Datenbanken) in Code definierst statt manuell zu konfigurieren. Du schreibst eine Konfigurationsdatei, die beschreibt, was du haben möchtest, und Terraform erstellt oder ändert die Infrastruktur automatisch.
Terraform (Open Source) ist kostenlos. Terraform Cloud bietet einen kostenlosen Tier für bis zu fünf Nutzer. Für größere Teams gibt es Terraform Cloud Team & Governance (ca. 20 USD/Nutzer/Monat) und Terraform Enterprise für Self-Hosted-Installationen.
Die Grundlagen von HCL und Terraform sind in wenigen Tagen erlernbar. Das Erstellen einfacher Infrastruktur gelingt schnell. Fortgeschrittene Themen wie Module, State Management und CI/CD-Integration erfordern mehr Erfahrung – rechne mit einigen Wochen bis zur Produktionsreife.
Ja, das ist eine der größten Stärken von Terraform. Du kannst AWS, Azure, GCP und über 3.000 weitere Provider in derselben Konfiguration nutzen. So verwaltest du beispielsweise AWS-Infrastruktur und Cloudflare-DNS in einem Projekt.
Für Teams ist ein Remote State Backend (z. B. S3 + DynamoDB bei AWS) Pflicht. Es ermöglicht gleichzeitigen Zugriff und verhindert durch State Locking, dass zwei Personen gleichzeitig Änderungen durchführen. Speichere den State niemals in Git.
Verwandte Begriffe
Passende Leistungen
Cloud Migration
Strategische Migration von Legacy-Systemen in Multi-Cloud-Umgebungen — ohne Datenverlust.
CI/CD Pipelines
Automatisierte Delivery-Systeme, die Deployment-Zyklen von Wochen auf Minuten reduzieren.
DevSecOps
Gehärtete Sicherheit, integriert in jede Schicht des Infrastruktur-Stacks.
IaC Engineering
Terraform- und Pulumi-Experten für reproduzierbare, versionierte Infrastruktur.
Interesse geweckt?
Lassen Sie uns über Ihr Projekt sprechen. Wir beraten Sie gerne unverbindlich.
Kontakt aufnehmenZuletzt aktualisiert: April 2026