Terraform Infrastructure as Code

Home Technologieën Waarmee Wij Werken Terraform Infrastructure as Code

Infrastructure as code betekent dat cloudinfrastructuur, zoals servers, databases, netwerken, load balancers, DNS-records en toegangsrechten, wordt vastgelegd en beheerd in code in plaats van met handwerk in een cloudconsole. Terraform is daarvoor het meest gebruikte gereedschap.

De voordelen zijn praktisch. Infrastructuur in code staat in versiebeheer: elke wijziging is te volgen, elke eerdere situatie terug te halen, en wijzigingen worden net als code gereviewd. Omgevingen zijn reproduceerbaar, zodat staging echt op productie lijkt. Het alternatief, handmatig klikken in een console, leidt na verloop van tijd tot drift: resources die niemand heeft gedocumenteerd, wijzigingen die niemand kan verklaren, en een omgeving die niemand meer met zekerheid kan nabouwen. Wij gebruiken Terraform voor de cloudapplicaties die wij bouwen en brengen bestaande omgevingen onder beheer. Nieuw met infrastructure as code? Lees wat is Terraform.

Wat Terraform infrastructure as code omvat

Providers en state. Veilige authenticatie bij de cloudprovider via rollen in plaats van vaste sleutels, remote state in bijvoorbeeld S3 met locking zodat twee mensen niet tegelijk wijzigen, en het importeren van bestaande resources zonder ze opnieuw aan te maken.

AWS-infrastructuur. Servers en autoscaling-groepen, een VPC met publieke en private subnets over meerdere beschikbaarheidszones, RDS-databases met back-ups en hoge beschikbaarheid, ECS of EKS voor containers, ElastiCache, SQS, SNS en EventBridge voor caching en berichten, S3 met CloudFront voor opslag en levering, en IAM-rollen met minimale rechten voor elke dienst en voor de pipeline.

Netwerk en beveiliging. Een gelaagde opzet met load balancers in de publieke laag, applicatieservers en databases in private lagen, gekoppelde VPC's voor meerdere omgevingen, en AWS WAF-regels voor rate limiting en bescherming tegen bekende aanvallen.

Secrets en configuratie. Wachtwoorden en API-sleutels in AWS Secrets Manager met rotatie, en minder gevoelige configuratie in Parameter Store, zodat niets hardcoded in code of images staat.

Modules. Herbruikbare bouwstenen, zoals een complete applicatielaag met load balancer, containerservice en beveiligingsgroepen, met duidelijke inputs, outputs en versies.

Omgevingen. Ontwikkeling, staging en productie strikt gescheiden, via workspaces of aparte mappen per omgeving, en Terragrunt waar veel omgevingen en accounts herhaling zouden opleveren.

Terraform in de pipeline

Wijzigingen aan infrastructuur lopen via de pipeline: bij elke pull request draait een terraform plan dat als commentaar laat zien wat er gaat veranderen, na goedkeuring en merge voert de pipeline de wijziging door, en tools als Checkov en tfsec scannen de configuratie op beveiligingsfouten zoals open poorten of onversleutelde opslag. Zie ook CI/CD-pipelines.

Gebruikte technologieën

Terraform en HCL, Terragrunt, de AWS-, Google Cloud- en Azure-providers, S3 en DynamoDB voor state, Terraform Cloud, Checkov en tfsec, GitHub Actions met OIDC-authenticatie, en AWS-diensten als ECS, EKS, RDS, ElastiCache, VPC, Secrets Manager en Parameter Store.

Infrastructuur die overeenkomt met de definitie

De belofte van Terraform is dat wat in productie draait, overeenkomt met wat in de repository staat. Die belofte houdt alleen stand als alle wijzigingen via Terraform lopen. Met die discipline verdwijnen de incidenten die door drift ontstaan, en wordt infrastructuur net zo controleerbaar als code.

Veelgestelde vragen over Terraform

Kunnen jullie onze bestaande cloudomgeving onder Terraform brengen?

Ja. Bestaande resources kunnen in de Terraform-state worden geïmporteerd zonder ze opnieuw aan te maken, waarna elke wijziging via code review en een plan verloopt.

Werken jullie alleen met AWS?

Met AWS werken wij het meest, maar Terraform beheert ook Google Cloud, Azure en veel andere providers, inclusief DNS- en monitoringdiensten.

Hoe voorkomen jullie fouten in productie?

Aparte state per omgeving, een plan bij elke pull request ter review, security-scans, en applies alleen via de pipeline met de juiste rechten.

Zijn de code en configuratie van ons?

Dat kan. Het eigendom van de broncode en infrastructuurconfiguratie wordt contractueel vastgelegd, en kan volledig van u zijn, inclusief documentatie.

Bekijk alle technologieën waarmee wij werken of onze software op maat.

Plan een vrijblijvend gesprek over uw infrastructuur