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.
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 productionPlan 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 tfplanStatus inspecteren
Je kunt de status opvragen om te zien wat Terraform bijhoudt.
terraform state list— beheerde resources weergeventerraform 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.webBestaande 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-bucketAfwijkingen 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;
plandetecteert afwijkingen
Goed statusbeheer vormt de basis van betrouwbare IaC-pijplijnen.
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
- IaC met Terraform en GitHub Actions
- Cloudresources beheren
- Infrastructuurupdates automatiseren
- Terraform-state en remote backends beheren