Skip to content
Learni
Voir tous les tutoriels
Infrastructure

Comment configurer Cloud Load Balancing avec Terraform en 2026

18 minINTERMEDIATE
Read in English

Introduction

Le Cloud Load Balancing est essentiel pour distribuer le trafic sur plusieurs serveurs, garantir la haute disponibilité et améliorer les performances. En 2026, les entreprises exigent des architectures résilientes face aux pics de charge. Ce tutoriel vous montre comment déployer un Application Load Balancer (ALB) sur AWS avec Terraform. Vous apprendrez à créer VPC, sous-réseaux, groupes de sécurité, cibles et le load balancer lui-même. Chaque étape inclut du code prêt à l'emploi. L'approche IaC assure la reproductibilité et la gestion de version de votre infrastructure.

Prérequis

  • Terraform 1.8+
  • Compte AWS avec permissions IAM
  • Connaissances de base en AWS (VPC, EC2)
  • AWS CLI configuré

Configuration du provider et variables

providers.tf
terraform {
  required_version = ">= 1.8"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = var.aws_region
}

variable "aws_region" {
  description = "Région AWS"
  default     = "eu-west-3"
}

Ce fichier initialise Terraform et configure le provider AWS. Il définit la région par défaut pour garantir que toutes les ressources sont créées dans la même zone.

Création du VPC et sous-réseaux

vpc.tf
resource "aws_vpc" "main" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_hostnames = true
  tags = { Name = "lb-vpc" }
}

resource "aws_subnet" "public" {
  count             = 2
  vpc_id            = aws_vpc.main.id
  cidr_block        = "10.0.${count.index}.0/24"
  availability_zone = data.aws_availability_zones.available.names[count.index]
  tags = { Name = "public-${count.index}" }
}

data "aws_availability_zones" "available" {}

Nous créons un VPC avec deux sous-réseaux publics dans des zones de disponibilité distinctes pour assurer la redondance du load balancer.

Groupes de sécurité

security.tf
resource "aws_security_group" "alb" {
  name   = "alb-sg"
  vpc_id = aws_vpc.main.id

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

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

Le security group autorise le trafic HTTP entrant sur le port 80 depuis n'importe quelle source et permet tout trafic sortant, configuration minimale pour un ALB public.

Target Group et instances

targets.tf
resource "aws_lb_target_group" "app" {
  name     = "app-tg"
  port     = 80
  protocol = "HTTP"
  vpc_id   = aws_vpc.main.id

  health_check {
    path                = "/health"
    interval            = 30
    healthy_threshold   = 2
    unhealthy_threshold = 2
  }
}

Le Target Group définit le port et le protocole des instances cibles ainsi que les vérifications de santé essentielles pour retirer automatiquement les instances défaillantes.

Déploiement du Load Balancer

alb.tf
resource "aws_lb" "main" {
  name               = "app-alb"
  internal           = false
  load_balancer_type = "application"
  security_groups    = [aws_security_group.alb.id]
  subnets            = aws_subnet.public[*].id

  enable_deletion_protection = false
}

resource "aws_lb_listener" "http" {
  load_balancer_arn = aws_lb.main.arn
  port              = 80
  protocol          = "HTTP"

  default_action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.app.arn
  }
}

Ce code déploie l'ALB public, l'attache aux sous-réseaux et crée un listener HTTP qui route tout le trafic vers le Target Group configuré.

Bonnes pratiques

  • Utilisez des sous-réseaux dans au moins deux AZ pour la haute disponibilité
  • Activez l'access logging sur le load balancer
  • Configurez des health checks adaptés à votre application
  • Séparez les environnements avec des workspaces Terraform
  • Versionnez systématiquement votre code IaC

Erreurs courantes à éviter

  • Oublier d'associer des sous-réseaux dans plusieurs zones de disponibilité
  • Configurer des security groups trop permissifs
  • Ignorer les health checks personnalisés
  • Ne pas activer la protection contre la suppression en production

Pour aller plus loin

Découvrez nos formations avancées sur l'infrastructure cloud et Terraform sur Learni Group.