Ga naar hoofdinhoud

Wat is Terraform? Aan de slag met Infrastructure as Code

Lees onze stapsgewijze beginnersgids voor het gebruik van Terraform en leer hoe je je Azure-, AWS- en Google Cloud-infrastructuur efficiënt automatiseert en beheert.
Bijgewerkt 1 jun 2026  · 10 min lezen

Infrastructure as Code (IaC) is een proces waarbij de inrichting en het beheer van infrastructuur via code worden geautomatiseerd. Hoewel fysieke hardwareconfiguratie en interactieve configuratietools kunnen worden gebruikt om infrastructuur te provisionen, biedt IaC verschillende voordelen zoals versiebeheer, herhaalbaarheid en schaalbaarheid. Een van de beste IaC-tools is Terraform, een oplossing ontwikkeld door HashiCorp in 2014 en gebruikt door meer dan 500.000 organisaties wereldwijd. Laten we bekijken hoe Terraform werkt en hoe je het inzet voor moderne IT-operaties.

Als we beginnen met Terraform is het goed om te weten dat bekendheid met ten minste één grote cloudprovider (AWS, Azure, Google Cloud, enz.) een vereiste is, omdat Terraform wordt gebruikt om cloudinfrastructuur te beheren. Onze cursus Understanding Cloud Computing biedt een solide basis als je nieuw bent met cloud computing.

Wat is Terraform?

Terraform is een open-sourcetool waarmee je infrastructuurcomponenten en hun onderlinge relaties kunt definiëren met behulp van een hoog-niveauconfiguratietaal.

In de voor mensen leesbare configuratiebestanden van Terraform kun je de gewenste staat van je infrastructuur specificeren en Terraform werkt vervolgens automatisch uit hoe die staat bereikt moet worden. Deze bestanden kunnen worden beheerd in versiebeheer, gedeeld en hergebruikt om een consistente manier te bieden om je infrastructuur te beheren, van compute- en opslagresources tot DNS en SaaS-functionaliteiten.

Terraform kan worden gebruikt met verschillende cloudproviders, in multicloud-infrastructuren en on-premises omgevingen.

Belangrijkste features van Terraform

Laten we de fundamentele aspecten bekijken die Terraform onderscheiden: 

HashiCorp Configuration Language

Terraform gebruikt een hoog-niveau taal genaamd HashiCorp’s Configuration Language (HCL), speciaal ontworpen voor het definiëren van infrastructuur als code. Hoog-niveauconfiguratietalen hanteren een declaratieve syntaxis die abstracter en gebruiksvriendelijker is dan laag-niveau scripting en handmatige configuratie. Je bent misschien al eerder met hoog-niveautalen in aanraking gekomen, bijvoorbeeld in YAML- of JSON-bestanden. 

HCL volgt een blokstructuur, waarbij elk genest blok resources en hun configuraties voorstelt. Resources worden expliciet gedefinieerd met namen en attributen.

resource "aws_instance" "example" {
  ami           = "ami-123456"
  instance_type = "t2.micro"
}

Uitvoeringsplan

Nadat je de gewenste staat van je infrastructuur hebt gedefinieerd, genereert Terraform een uitvoeringsplan. Dit plan bevat de stappen die Terraform moet nemen om die staat te bereiken, zodat je de wijzigingen kunt beoordelen voordat ze worden toegepast. Het plan vooraf controleren voorkomt ongewenste aanpassingen, zoals het verwijderen van resources.

Statebeheer

Terraform onderhoudt een statebestand dat automatisch de huidige staat van je infrastructuur bijhoudt en als bron van waarheid dient om te bepalen welke wijzigingen nodig zijn. Standaard wordt het lokaal opgeslagen en heet het terraform.tfstate. 

Providers

Providers zijn plug-ins die communiceren met API’s van cloudplatforms en andere diensten en waarmee Terraform een grote verscheidenheid aan resources kan beheren. Officiële providers worden ontwikkeld en onderhouden door HashiCorp en betrouwbare partners zoals AWS, Azure, Google Cloud, Github, Datadog, enz. Er zijn ook community-ontwikkelde plug-ins, te vinden op de Terraform Registry of op Github.

Resourcegrafiek

Terraform bouwt een resourcegrafiek die de resources van je infrastructuur en de relaties ertussen weergeeft. Dankzij deze grafiek kan Terraform effectieve plannen genereren, afhankelijkheden tussen resources afhandelen en ervoor zorgen dat resources in de juiste volgorde worden aangemaakt, bijgewerkt en verwijderd. De grafiek is ook een uitstekende manier om je infrastructuur te visualiseren en de impact van de beoogde wijzigingen te begrijpen. 

Voorbeeld van een Terraform-resourcegrafiek, met AWS-resources en de afhankelijkheidsrelaties daartussen

Voorbeeld van een resourcegrafiek. Bron: HashiCorp-documentatie

Aan de slag met Terraform

Laten we onze eerste Terraform-workflow doorlopen. Als je nieuw bent in DevOps of cloud computing in het algemeen, raad ik aan om eerst onze cursussen Understanding Cloud Computing en Introduction to DevOps te volgen.

Installatie en setup

In deze Terraform-tutorial maken we resources aan op AWS. Als je wilt meedoen en nog geen account hebt, ga dan naar AWS en meld je aan.

  1. Download Terraform van de officiële website. Kies de juiste binary voor jouw besturingssysteem en volg de installatie-instructies.
  2. Open na de installatie een nieuw Terminal-venster en voer terraform -version uit om te controleren of de software correct is geïnstalleerd. 
  3. Installeer de AWS CLI
  4. Configureer de AWS CLI door aws configure in je terminal uit te voeren. Je wordt gevraagd je Access Key ID, Secret Access Key, standaardregio en standaarduitvoerformaat in te voeren. Terraform zou hier automatisch toegang toe moeten hebben.

Eerste Terraform-configuratie

Maak een nieuwe map en je eerste configuratiebestand. Laten we het main.tf noemen en Terraform vertellen dat we een AWS EC2-instance willen maken. De code, geschreven in HCL, ziet er zo uit:

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

Het project initialiseren

Laten we nu ons Terraform-project initialiseren door het volgende commando uit te voeren:

$ terraform init

Dit is een eenmalig commando en zal de vereiste providerplug-ins downloaden. Je hoeft het bij latere wijzigingen niet opnieuw uit te voeren. 

Plan

We willen nu ons uitvoeringsplan genereren. Onthoud: het plan laat de wijzigingen zien die Terraform moet doorvoeren om de gewenste staat te bereiken (in dit geval een draaiende EC2-instance). Voer uit:

$ terraform plan

Je zou iets als het volgende moeten zien:

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

We hebben het plan beoordeeld en besluiten het nu uit te voeren en de resources te provisionen. Voer in je terminal het volgende uit:

$ terraform apply

Je wordt gevraagd om de actie te bevestigen. Typ “yes” om door te gaan.

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 

 Je zou het volgende moeten zien:

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.

 Gefeliciteerd, je hebt je eerste EC2-instance op AWS geprovisioned met Terraform!

Voordelen van het gebruik van Terraform

We noemden al dat het gebruik van Terraform veel voordelen biedt, zoals consistentie en herhaalbaarheid, en minder menselijke fouten dankzij uitvoeringsplannen. 

Andere voordelen zijn onder meer:

  • Snelle provisioning: Terraform kan resources parallel aanmaken en bijwerken, wat vooral handig is om development-, test- en stagingomgevingen snel op te zetten.
  • Meer samenwerking: In combinatie met een versiebeheersysteem zoals Git is Terraform een uitstekende manier om samenwerking en transparantie rond je infrastructuur te vergroten. Wijzigingen kunnen net als applicatiecode worden beoordeeld, goedgekeurd en gevolgd.
  • Efficiënt herstel na calamiteiten: Als er iets misgaat, kan Terraform snel de volledige infrastructuur vanaf nul opnieuw opbouwen met dezelfde configuratiebestanden.
  • Community-ondersteuning: Terraform stimuleert het gebruik van modules: herbruikbare configuraties die gedeeld kunnen worden en best practices bevorderen voor infrastructuurbeheer. Terraform heeft ook een actieve community en een uitgebreid ecosysteem van providers en modules, waardoor je waarschijnlijk iets vindt dat past bij je techstack, hoe niche die ook is.

Veelvoorkomende use-cases voor Terraform

Of je nu een Data Engineer bent die pipelines bouwt of een Data Scientist die je oplossingen naar productie wil brengen, Terraform is een geweldige tool om je infrastructuurbehoeften te beheren. Dit zijn enkele van de meest voorkomende use-cases:

Multicloud-beheer

Infrastructuur beheren die meerdere cloudproviders omvat is niet altijd eenvoudig. Met Terraform kan dat met één enkele tool. Bovendien kan Terraform on-premise resources beheren, waardoor het een ideale oplossing is voor organisaties die in een hybride omgeving opereren.

CI/CD-workflows

Terraform integreert goed met CI/CD-workflows, wat betekent dat je je infrastructuur kunt uitrollen als onderdeel van je softwareleveringsproces. Je kunt ook automatisch preview-, dev-, test- of stagingomgevingen aanmaken en verwijderen wanneer dat nodig is.

Kubernetes-clusters

Terraform kan Kubernetes-clusters beheren bij verschillende cloudproviders zoals AWS (EKS), Azure (AKS) of GCP (GKE). Dit omvat het inrichten van de benodigde infrastructuur, het beheren van Kubernetes-resources binnen het cluster en het schalen van clusters op basis van werkbelasting.

Terraform vs. andere IaC-tools

Andere populaire IaC-tools zijn onder meer Ansible, Chef, Puppet en AWS CloudFormation. Elke tool heeft zijn sterke en zwakke punten. Bekijk het overzicht:

Feature Terraform Ansible Chef Puppet CloudFormation
Open source Ja Ja Ja Ja Nee
Declaratieve syntaxis Ja Nee Nee Ja Ja
Multicloud-ondersteuning Ja Ja Ja Ja Nee, alleen AWS
Statebeheer Ja Nee Nee Ja Ja
Uitvoeringsplannen Ja Nee Nee Nee Nee
Afhankelijkheidsbeheer Ja Beperkt Beperkt Ja Ja

Zoals we zien, zijn al deze tools op zichzelf krachtig, maar valt Terraform op door zijn uitgebreide featureset. Deze lijst is echter niet uitputtend en elke tool bedient net iets andere use-cases, afhankelijk van de vereisten. Zo is Ansible, met zijn procedurele karakter, zeer geschikt voor configuratiebeheer en ad-hoc taken.

Conclusie

In de afgelopen 10 jaar heeft Terraform duizenden organisaties geholpen bij het beheren van hun IT-infrastructuur. Met zijn declaratieve aanpak, automatiseringsmogelijkheden en ondersteuning voor multicloud-omgevingen is Terraform uitgegroeid tot een van de populairste IaC-tools en zal het ongetwijfeld een belangrijke speler blijven in infrastructuurbeheer naarmate cloudadoptie blijft groeien. 

Nu je de basis van Terraform begrijpt, kun je je verdiepen in geavanceerdere configuraties en realistische scenario’s. Bekijk de HashiCorp Terraform-tutorials om te leren hoe je Terraform inzet voor veelvoorkomende taken en use-cases, of bekijk onze blogpost 14 Essential Data Engineering Tools to Use in 2024 om te begrijpen hoe Terraform past in de toolkit van een Data Engineer.


Marie Fayard's photo
Author
Marie Fayard

Ik ben een productgerichte tech lead die gespecialiseerd is in het laten groeien van startups in een vroeg stadium, van het eerste prototype tot product‑market fit en verder. Ik ben eindeloos nieuwsgierig naar hoe mensen technologie gebruiken, en ik werk graag nauw samen met oprichters en multidisciplinaire teams om gedurfde ideeën tot leven te brengen. Als ik geen producten bouw, zoek ik inspiratie in nieuwe uithoeken van de wereld of ontspan ik me in de yogastudio.

Veelgestelde vragen

Is Terraform geschikt voor kleinschalige projecten of is het vooral voor enterprise-gebruik?

Terraform is een handige tool, ongeacht de grootte van je project! Of je nu 5 resources moet beheren of 1000, je zult zeker de voordelen merken.

Wat kost Terraform?

Terraform is open-source en gratis te gebruiken, maar houd er rekening mee dat je cloudprovider(s) kosten in rekening brengen voor de resources die via Terraform worden geprovisioned en beheerd.

Kan Terraform databases en andere stateful services beheren?

Ja, Terraform kan databases en andere stateful services beheren. Je kunt instances, clusters en configuraties definiëren in je IaC-bestanden.

Hoe gaat Terraform om met secrets en gevoelige informatie in configuratiebestanden?

Terraform stimuleert best practices voor het omgaan met secrets door ondersteuning voor omgevingsvariabelen, versleutelde variabelen en integraties met secret management-diensten zoals HashiCorp Vault of AWS Secrets Manager.

Onderwerpen

Leren met DataCamp

Cursus

Introductie tot Python

4 Hr
6.9M
Leer de basis van data-analyse met Python in 4 uur. Deze online cursus laat je kennismaken met de Python-interface en populaire pakketten.
Bekijk detailsRight Arrow
Begin met de cursus
Meer zienRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer zienMeer zien