DevOps-bootcamp · Les

Terraform-state en remote backends beheren

Begrijp Terraform-state, configureer veilige remote backends, ga om met state locking en voorkom statecorruptie in gezamenlijke IaC-pipelines.

Les 4 van 413 stappen

Terraform-state en remote backends beheren is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat is de Terraform-status

Terraform legt vast wat het heeft gemaakt in een statusbestand (terraform.tfstate). Het koppelt je configuratie aan echte cloudresources.

Zonder status zou Terraform niet weten welke resources al bestaan en zou het duplicaten kunnen maken of updates niet kunnen uitvoeren.

Waarom lokale status niet werkt voor teams

Standaard staat de status op je lokale schijf. Dat werkt niet goed met een team of in CI:

  • Anderen kunnen je status niet zien
  • Gelijktijdige uitvoeringen beschadigen het bestand
  • Het bestand bevat geheimen in platte tekst en kan per ongeluk worden vastgelegd

De oplossing is een externe backend.

Externe backends

Een externe backend slaat de status op een gedeelde, duurzame locatie op, zoals een S3-bucket, Azure Blob, GCS of Terraform Cloud.

Zo gebruikt elke uitvoering van de pijplijn één betrouwbare bron voor de huidige infrastructuur.

terraform {
  backend "s3" {
    bucket = "my-tf-state"
    key    = "prod/terraform.tfstate"
    region = "us-east-1"
  }
}

Statusvergrendeling

Als twee uitvoeringen van een pijplijn tegelijk wijzigingen toepassen, kunnen ze de status beschadigen. Statusvergrendeling voorkomt dit door slechts één schrijfbewerking tegelijk toe te staan.

Bij de S3-backend levert een DynamoDB-tabel de vergrendeling. Terraform Cloud vergrendelt automatisch.

  backend "s3" {
    bucket         = "my-tf-state"
    key            = "prod/terraform.tfstate"
    dynamodb_table = "tf-locks"
  }

Status versleutelen

Statusbestanden bevatten vaak gevoelige waarden, zoals wachtwoorden en sleutels. Versleutel de status altijd wanneer deze niet actief wordt gebruikt.

Schakel voor de S3-backend bucketversleuteling in en stel encrypt = true in de backendconfiguratie in.

  backend "s3" {
    bucket  = "my-tf-state"
    key     = "prod/terraform.tfstate"
    encrypt = true
  }

Werkruimten voor omgevingen

Met Terraform-werkruimten kan één configuratie meerdere statusbestanden beheren, één per omgeving.

Wissel tussen werkruimten, zodat staging en productie nooit dezelfde status delen.

terraform workspace new staging
terraform workspace select production

Plan en apply in CI

Voer in een pijplijn terraform plan uit om wijzigingen vooraf te bekijken (vaak voor pull requests) en terraform apply om ze uit te voeren (na het samenvoegen met main).

Sla het plan op in een bestand, zodat apply exact gebruikt wat is gecontroleerd.

terraform plan -out=tfplan
terraform apply -auto-approve tfplan

Status inspecteren

Je kunt de status opvragen om te zien wat Terraform bijhoudt.

  • terraform state list — beheerde resources weergeven
  • terraform state show <addr> — details van één resource

Vermijd het handmatig bewerken van de status; gebruik in plaats daarvan opdrachten.

terraform state list
terraform state show aws_instance.web

Bestaande resources importeren

Als een resource buiten Terraform is gemaakt, kun je deze met terraform import onder beheer brengen in plaats van deze opnieuw te maken.

Zo voorkom je destructieve duplicatie wanneer je IaC toepast op bestaande infrastructuur.

terraform import aws_s3_bucket.logs my-existing-bucket

Afwijkingen afhandelen

Afwijking ontstaat wanneer iemand de infrastructuur handmatig wijzigt, waardoor de werkelijkheid niet langer overeenkomt met de status.

Voer regelmatig terraform plan uit om afwijkingen te detecteren en pas daarna opnieuw toe om de situatie te herstellen, of werk de configuratie bij zodat deze overeenkomt.

Leg de status nooit vast

Zorg er ook met een externe backend voor dat lokale status- en planbestanden door Git worden genegeerd. Ze bevatten geheimen.

Een goed .gitignore-bestand beschermt je tegen onbedoelde lekken.

# .gitignore
*.tfstate
*.tfstate.*
tfplan
.terraform/

Korte controle

Test je kennis van de Terraform-status.

Samenvatting

Je hebt geleerd de Terraform-status veilig te beheren.

  • De status koppelt configuratie aan echte resources; bewerk deze nooit handmatig
  • Externe backends delen de status binnen het team en met CI
  • Vergrendeling en versleuteling beschermen tegen beschadiging en lekken
  • Werkruimten isoleren omgevingen; plan detecteert afwijkingen

Goed statusbeheer vormt de basis van betrouwbare IaC-pijplijnen.

Gratis beginnen

Leer DevOps-bootcamp met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
142
Lessen
568

Veelgestelde vragen

Is de les “Terraform-state en remote backends beheren” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Terraform-state en remote backends beheren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat leer ik in “Terraform-state en remote backends beheren”?

Begrijp Terraform-state, configureer veilige remote backends, ga om met state locking en voorkom statecorruptie in gezamenlijke IaC-pipelines. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?

Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Terraform-state en remote backends beheren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?

Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. IaC met Terraform en GitHub Actions
  2. Cloudresources beheren
  3. Infrastructuurupdates automatiseren
  4. Terraform-state en remote backends beheren
← Terug naar DevOps-bootcamp