• 1. déploiement d’une application Node.js sur AWS Fargate avec Terraform

  • 1.1. Prérequis

  • 1.2. Créer le Dockerfile

  • 1.3. Initialiser Terraform

  • 1.4. Déployer le registre ECR

  • 1.5. Définir le cluster et la tâche Fargate

  • 1.6. Créer le service Fargate

  • 1.7. Déploiement et mises à jour

  • 1.8. Bonnes pratiques performance et coûts

  • 1.9. Conclusion

déploiement d’une application Node.js sur AWS Fargate avec Terraform : guide complet

Image de déploiement d’une application Node.js sur AWS Fargate avec Terraform : guide complet

déploiement d’une application Node.js sur AWS Fargate avec Terraform

Pour scaler sans gestion de serveurs et garantir une haute disponibilité, AWS Fargate couplé à Terraform offre un déploiement automatisé et reproductible de vos conteneurs Node.js. Ce guide détaillé vous accompagnera pas à pas, afin de passer du Dockerfile au service Fargate opérationnel, tout en maîtrisant coûts et performances.

Prérequis

  • Un compte AWS avec accès IAM autorisé à ECS, ECR et VPC
  • Terraform v1.5+ installé (cf. Terraform pour plus de détails)
  • Docker installé et configuré localement (Docker)
  • Code source Node.js (Express, Fastify…)

1. Créer le Dockerfile

# Dockerfile  
FROM node:18-alpine  
WORKDIR /app  
COPY package*.json ./  
RUN npm ci --only=production  
COPY . .  
EXPOSE 3000  
CMD [ "node", "src/index.js" ]

Ce conteneur pèse ~50 Mo, démarrage en ~200 ms, idéal pour Fargate.

2. Initialiser Terraform

# main.tf  
terraform {  
  required_providers {  
    aws = { source = "hashicorp/aws" version = "~> 5.0" }  
  }  
  backend "s3" {  
    bucket = "mon-terraform-state"  
    key    = "ecs/fargate.tfstate"  
    region = "eu-west-3"  
  }  
}  
  
provider "aws" {  
  region = "eu-west-3"  
}

L’état Terraform est externalisé pour le travail collaboratif.

3. Déployer le registre ECR

resource "aws_ecr_repository" "app" {  
  name                 = "nodejs-app"  
  image_scanning_configuration {  
    scan_on_push = true  
  }  
  lifecycle_policy {  
    policy = <

4. Définir le cluster et la tâche Fargate

resource "aws_ecs_cluster" "cluster" {  
  name = "cluster-nodejs"  
}  
  
resource "aws_ecs_task_definition" "task" {  
  family                   = "nodejs-task"  
  network_mode             = "awsvpc"  
  requires_compatibilities = ["FARGATE"]  
  cpu                      = "512"  
  memory                   = "1024"  
  execution_role_arn       = aws_iam_role.ecs_exec.arn  
  container_definitions    = jsonencode([{  
    name      = "app"  
    image     = "${aws_ecr_repository.app.repository_url}:latest"  
    portMappings = [{ containerPort = 3000, protocol = "tcp" }]  
  }])  
}

5. Créer le service Fargate

resource "aws_ecs_service" "service" {  
  name            = "nodejs-service"  
  cluster         = aws_ecs_cluster.cluster.id  
  task_definition = aws_ecs_task_definition.task.arn  
  launch_type     = "FARGATE"  
  network_configuration {  
    subnets         = ["subnet-123", "subnet-456"]  
    security_groups = ["sg-789"]  
    assign_public_ip = true  
  }  
  desired_count = 2  
  wait_for_steady_state = true  
}

6. Déploiement et mises à jour

$ terraform init  
$ terraform plan -out plan.tfplan  
$ terraform apply plan.tfplan

Une fois validé, Terraform crée VPC, cluster, registre ECR, puis déploie vos conteneurs en moins de 3 minutes.

Bonnes pratiques performance et coûts

  • Configurer l’Auto Scaling (ECS Service Auto Scaling) pour ajuster desired_count selon le CPU (métriques CloudWatch : CPU > 70 %).
  • Utiliser Spot Fargate pour réduire jusqu’à 40 % vos coûts d’exécution.
  • Activer le logging CloudWatch au niveau du conteneur pour diagnostiquer rapidement.
  • Séparer staging et prod dans des workspaces Terraform distincts.

Conclusion

En combinant Terraform et AWS Fargate, vous obtenez un pipeline IaC robuste, un coût maîtrisé et un déploiement sans interruption. Vos équipes gagnent en agilité et se concentrent sur le code, pas l’infra.

Besoin d’un accompagnement sur votre infrastructure cloud ? Contactez nos experts pour un audit personnalisé.

Image de Les 10 plateformes no-code à connaître pour lancer votre projet en 2025

Les 10 plateformes no-code à connaître pour lancer votre projet en 2025

Découvrez les 10 plateformes no-code incontournables pour lancer votre site, appli ou outil interne en 2025 sans taper une seule ligne de code
Image de aws annonce une baisse de prix généralisée de ses services cloud : opportunités pour les PME

aws annonce une baisse de prix généralisée de ses services cloud : opportunités pour les PME

Découvrez comment la récente baisse de tarifs AWS (EC2, S3, EBS…) peut réduire vos coûts cloud de 10% et booster l’innovation des PME
Image de pourquoi adopter un erp cloud pour optimiser la gestion de votre pme

pourquoi adopter un erp cloud pour optimiser la gestion de votre pme

Découvrez comment un ERP cloud peut simplifier la gestion de votre PME, réduire vos coûts et booster la croissance grâce à un déploiement agile et sécurisé
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Femme en chemise jaune