Aller au contenu principal

Infrastructure as Code avec Terraform : les fondamentaux

· 2 minutes de lecture
Hamed El Ghoul
Ingénieur Cloud & Plateformes @ InSkillOps

Provisionner son infrastructure à la main ne passe pas à l'échelle et n'est pas reproductible. Terraform décrit votre infrastructure sous forme de code déclaratif, versionnable et rejouable.

Le vocabulaire de base

  • Provider : le plugin qui parle à une plateforme (AWS, Azure, GCP…).
  • Resource : un objet géré (une VM, un bucket, un réseau…).
  • State : le fichier qui mémorise l'état réel de l'infrastructure.

Une première configuration

terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}

provider "aws" {
region = var.region
}

resource "aws_s3_bucket" "assets" {
bucket = "inskillops-assets-demo"
tags = {
Environment = "demo"
}
}

Et le fichier de variables :

variable "region" {
type = string
default = "eu-west-3"
}

Le workflow init / plan / apply

terraform init     # télécharge les providers
terraform plan # affiche les changements prévus
terraform apply # applique les changements

Le plan est votre meilleur allié : il montre exactement ce qui va être créé, modifié ou détruit avant toute action.

Bonnes pratiques

  • Stockez le state à distance (backend S3 + verrou DynamoDB, Terraform Cloud…) pour le travail en équipe.
  • Ne modifiez jamais l'infrastructure à la main en parallèle de Terraform.
  • Découpez en modules réutilisables et séparez les environnements.
  • Versionnez tout dans Git et faites relire les plan en revue de code.

Terraform est la porte d'entrée de l'IaC. On construit une infrastructure cloud complète étape par étape dans le parcours dédié.