AWSDockerCloudDevOps

AWS ECS Fargate : déployer des conteneurs sans gérer de serveurs

29 juillet 2026 · Sphinx-Digital

ECS Fargate supprime la charge de gestion des instances EC2 : vous définissez vos conteneurs, AWS les fait tourner. Pas de patching, pas de dimensionnement de cluster, pas de nœuds à administrer.

Task Definition : spécifier votre conteneur

{
  "family": "myapp",
  "networkMode": "awsvpc",
  "requiresCompatibilities": ["FARGATE"],
  "cpu": "512",
  "memory": "1024",
  "executionRoleArn": "arn:aws:iam::123456789:role/ecsTaskExecutionRole",
  "taskRoleArn": "arn:aws:iam::123456789:role/ecsTaskRole",
  "containerDefinitions": [{
    "name": "api",
    "image": "123456789.dkr.ecr.eu-west-1.amazonaws.com/myapp:latest",
    "portMappings": [{"containerPort": 8080}],
    "environment": [{"name": "ENV", "value": "production"}],
    "secrets": [{
      "name": "DB_PASSWORD",
      "valueFrom": "arn:aws:secretsmanager:eu-west-1:123456789:secret:myapp/db"
    }],
    "logConfiguration": {
      "logDriver": "awslogs",
      "options": {
        "awslogs-group": "/ecs/myapp",
        "awslogs-region": "eu-west-1",
        "awslogs-stream-prefix": "api"
      }
    }
  }]
}

Service ECS : maintenir N tâches en vie

resource "aws_ecs_service" "api" {
  name            = "myapp-api"
  cluster         = aws_ecs_cluster.main.id
  task_definition = aws_ecs_task_definition.api.arn
  desired_count   = 3
  launch_type     = "FARGATE"

  network_configuration {
    subnets          = var.private_subnet_ids
    security_groups  = [aws_security_group.ecs.id]
    assign_public_ip = false
  }

  load_balancer {
    target_group_arn = aws_lb_target_group.api.arn
    container_name   = "api"
    container_port   = 8080
  }

  deployment_controller {
    type = "CODE_DEPLOY"   # déploiement bleu/vert
  }
}

Déploiement bleu/vert avec CodeDeploy

Le déploiement bleu/vert démarre une nouvelle version en parallèle, la valide, puis bascule le trafic — zéro interruption et rollback instantané si un problème survient.

# Via CLI après push d'une nouvelle image
aws deploy create-deployment \
  --application-name myapp \
  --deployment-group-name production \
  --revision revisionType=AppSpecContent,...

Notre formation AWS couvre ECS Fargate avec des ateliers Terraform complets.