1. Scalabilité verticale vs Scalabilité horizontale

  • Scalabilité verticale (Scale-Up) : Augmenter la puissance d’un serveur existant (passer de 4 à 16 vCPUs). Cette approche a une limite physique et impose généralement un arrêt temporaire du serveur.
  • Scalabilité horizontale (Scale-Out) : Ajouter dynamiquement des machines identiques en parallèle pour absorber la charge, puis les détruire dès le retour au calme. C’est l’essence même du Cloud Computing.

2. Architecture d’un groupe d’Auto Scaling (ASG)

Un groupe d’Auto Scaling repose sur trois piliers fondamentaux :

  1. Launch Template (Modèle de lancement) : Décrit l’image de base (AMI), le type d’instance (ex: t4g.medium), les clés SSH, les Security Groups et le script User Data à déployer.
  2. Paramètres de dimensionnement : Capacité minimale (ex: 2 serveurs pour garantir la présence multi-AZ), capacité désirée (ex: 3) et capacité maximale (ex: 10 pour limiter les dépenses).
  3. Politiques d’ajustement (Scaling Policies) : Règles déclenchant l’ajout ou le retrait d’instances.

3. Types de politiques de scalabilité

# Exemple : Suivi d'une cible de métrique (Target Tracking Scaling Policy)
# Maintient l'utilisation moyenne du processeur du groupe à 60%
aws autoscaling put-scaling-policy --auto-scaling-group-name asg-web-prod 
    --policy-name maintenir-cpu-60 
    --policy-type TargetTrackingScaling 
    --target-tracking-configuration '{
        "PredefinedMetricSpecification": {
            "PredefinedMetricType": "ASGAverageCPUUtilization"
        },
        "TargetValue": 60.0
    }'

4. Scalabilité prédictive et planification horaire

Pour les services présentant des habitudes de trafic récurrentes (ex: plateforme bancaire ou portail d’enseignement avec un pic d’affluence chaque matin à 08h00), la scalabilité planifiée ou prédictive (basée sur l’analyse historique du trafic par Machine Learning) provisionne les serveurs en avance de phase, évitant ainsi toute latence au moment du rush.

Période de stabilisation (Cooldown) : Un délai tampon (souvent fixé à 300 secondes) est appliqué après chaque ajout d’instance pour laisser au nouveau serveur le temps de charger ses caches et soulager le groupe avant de décider d’un éventuel nouvel ajout.