Cloud-Ressourcen von Hand zusammenzuklicken ist fehleranfällig und schwer zu wiederholen. Beschreibst du sie in einer Datei, kannst du dieselbe Umgebung jederzeit aufbauen — und sauber wieder abbauen.
Die Idee
Statt in einer App überall Knöpfe zu drücken, schreibst du einen Zettel, was es geben soll: „ein Dienst, der den Container ausführt, eine Datenbank, eine öffentliche Adresse.“ Ein Werkzeug liest den Zettel und baut genau das.
Wenn Instagram in einer neuen Region startet, will niemand hundert Server von Hand einrichten. Man beschreibt die Umgebung einmal als Code und baut sie per Knopfdruck — überall gleich, jederzeit wiederholbar.
So funktioniert es
Infrastructure as Code (IaC): deine Cloud-Umgebung als Textdatei. Terraform ist das führende Werkzeug dafür. Du beschreibst den Soll-Zustand, Terraform bringt die Cloud dorthin. Drei Befehle:
terraform plan— Vorschau: was würde sich ändern? (baut noch nichts)terraform apply— baut es wirklich.terraform destroy— räumt alles wieder ab.
So sieht ein Ausschnitt aus, der den Cloud-Run-Dienst für das Instagram-Backend beschreibt:
resource "google_cloud_run_v2_service" "app" {
name = "instagram-backend"
location = var.region
template {
containers {
image = "${var.region}-docker.pkg.dev/${var.project_id}/app:latest"
ports { container_port = 8080 }
# Passwort kommt aus einer Variable, nie hart in die Datei
env {
name = "DATABASE_URL"
value = var.database_url
}
}
}
}
flowchart LR
A[main.tf
Soll-Zustand] --> P[terraform plan
Vorschau]
P --> Y[terraform apply
bauen]
Y --> C[Cloud Run + Cloud SQL]
C --> D[terraform destroy
aufräumen]
So steuerst du es
Terraform ist deklarativ: Du beschreibst das Ziel, nicht die Schritte. Es vergleicht Soll (deine Datei) mit Ist (der Cloud) und erzeugt einen Plan, der die Differenz schließt. Ein State merkt sich, was schon existiert.
Gute Praxis: erst plan lesen, dann apply; Geheimnisse über Variablen hereingeben (var.database_url), nie hart in die Datei schreiben; nach Experimenten destroy.
So sagst du es dem Agenten:
„Schreibe eine
main.tffür Cloud Run plus Cloud SQL. Das DB-Passwort kommt aus einer Variable, nicht hart in die Datei.“„Zeig mir
terraform planund erkläre, was gebaut, geändert oder gelöscht wird, bevor wirapplyausführen.“„Setze
deletion_protection = falseauf der Datenbank, damitterraform destroyspäter sauber aufräumen kann.“
Typische Fehler: den Plan blind bestätigen; Passwörter in die .tf-Datei schreiben (landen in Git); oder den terraform.tfstate versehentlich committen — er enthält sensible Werte.
Kurz-Check
- Was beschreibt eine Terraform-Datei — Schritte oder Ziel?
- Wofür sind
planundapplyda? - Warum kommt das DB-Passwort aus einer Variable?
Antworten anzeigen
- Das Ziel (den Soll-Zustand). Terraform findet die Schritte selbst.
planzeigt eine Vorschau der Änderungen;applyführt sie aus.- Damit das Geheimnis nicht im Code und in Git landet; die Variable füllt es erst beim Ausführen.