🏗️
infrastructure

Terraform

Outil d'Infrastructure as Code pour definir et provisionner l'infrastructure cloud.

Definition

Terraform est un outil d'Infrastructure as Code (IaC) open source cree par HashiCorp. Il permet de definir, provisionner et gerer l'infrastructure cloud de maniere declarative dans des fichiers versionnes (HCL — HashiCorp Configuration Language).

Terraform supporte plus de 3000 providers (AWS, Azure, GCP, Cloudflare, GitHub, etc.), permettant de gerer n'importe quelle ressource cloud dans un seul outil.

Pourquoi Terraform ?

Sans IaC

  • Infrastructure configuree manuellement via la console cloud
  • Pas de versionning, pas de reproductibilite
  • "Ca marchait sur mon cloud" — impossible a recréer

Avec Terraform

  • Infrastructure definie dans du code (revue, versionne, teste)
  • Reproductible sur n'importe quel environnement
  • Plan avant apply : preview des changements
  • State : Terraform sait ce qui existe et ce qui doit changer

Workflow

terraform init     # Telecharger les providers
terraform plan     # Previsualiser les changements
terraform apply    # Appliquer les changements
terraform destroy  # Supprimer toute l'infrastructure

Exemple : deployer un serveur sur AWS

# main.tf
provider "aws" {
  region = "eu-west-3"  # Paris
}

resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.micro"

  tags = {
    Name = "MonServeurWeb"
    Environment = "production"
  }
}

resource "aws_security_group" "web" {
  name = "web-sg"

  ingress {
    from_port   = 443
    to_port     = 443
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

output "server_ip" {
  value = aws_instance.web.public_ip
}

Concepts cles

State

Terraform maintient un fichier terraform.tfstate qui mappe les ressources du code aux ressources reelles dans le cloud. Le state doit etre stocke de maniere securisee (S3 + DynamoDB lock, Terraform Cloud).

Modules

Packages reutilisables de configuration Terraform :

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "5.0.0"
  cidr    = "10.0.0.0/16"
}

Variables et outputs

variable "environment" {
  type    = string
  default = "staging"
}

output "db_endpoint" {
  value     = aws_db_instance.main.endpoint
  sensitive = true
}

Terraform vs alternatives

Terraform Pulumi CloudFormation CDK
Langage HCL Python, TS, Go YAML/JSON TS, Python
Multi-cloud Oui Oui AWS only AWS only
State Fichier/Cloud Cloud AWS managed AWS managed
Maturite Tres mature En croissance Mature En croissance

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions frequentes

Terraform est-il encore le standard en 2026 ?
Oui, Terraform reste l'outil IaC le plus utilise. Pulumi gagne du terrain (code en langages reels au lieu de HCL), mais Terraform domine par son ecosysteme de providers et sa maturite.
OpenTofu ou Terraform ?
OpenTofu est le fork open source de Terraform (apres le changement de licence HashiCorp en 2023). Les deux sont compatibles. Choisissez OpenTofu si la licence open source est importante pour vous.
Comment gerer le state Terraform en equipe ?
Stockez le state dans un backend distant (S3 + DynamoDB pour le locking, ou Terraform Cloud). Ne jamais committer terraform.tfstate dans Git (contient des secrets).

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.