0Pricing
Cloud & IT Cert Prep · Leçon

Scénarios d’architectures résilientes et hautement disponibles

Abordez des scénarios de basculement de bases de données Multi-AZ, de mise à l’échelle automatique lors de pics de trafic et de basculement fondé sur les contrôles d’intégrité Route 53 afin de consolider les concepts de fiabilité.

Scénarios d’architectures résilientes et hautement disponibles est une leçon Cloud & IT Cert Prep gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cloud & IT Cert Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.

Scénario 1 : Application Web Multi-AZ

Scénario : Une entreprise exploite une application Web à deux niveaux (ALB → EC2 → RDS) et souhaite éliminer tout point de défaillance unique au sein de la AWS Region. Solution : Déployez des instances EC2 dans un groupe Auto Scaling couvrant au moins 2 Availability Zones, derrière un ALB (qui est intrinsèquement Multi-AZ). Activez RDS Multi-AZ pour une réplication synchrone vers une instance de secours. Configurez des vérifications d’état sur l’ALB afin de rediriger automatiquement le trafic loin des instances défaillantes. Avec cette architecture, la perte d’une seule AZ entraîne un basculement automatique à chaque niveau.

# Create RDS with Multi-AZ enabled
aws rds create-db-instance \
  --db-instance-identifier prod-mysql \
  --db-instance-class db.t3.large \
  --engine mysql \
  --multi-az \
  --master-username admin \
  --master-user-password Pass123! \
  --allocated-storage 100

# Create ASG across 3 AZs
aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name web-asg \
  --min-size 2 --max-size 10 --desired-capacity 3 \
  --availability-zones us-east-1a us-east-1b us-east-1c \
  --target-group-arns arn:aws:elasticloadbalancing:us-east-1:123:targetgroup/web-tg/abc

Scénario 2 : Mise à l’échelle de la lecture RDS sous charge

Scénario : L’instance RDS d’une application de commerce électronique atteint ses limites de CPU aux heures de pointe en raison de requêtes d’analyse principalement orientées lecture provenant de l’équipe de business intelligence. Solution : Créez des RDS Read Replicas et dirigez les requêtes de BI vers le point de terminaison de la réplique. Les Read Replicas utilisent une réplication asynchrone : un léger retard est acceptable pour les analyses. Cela décharge l’instance RDS principale du trafic de lecture, qui est réservée aux opérations d’écriture et aux lectures de l’application. Pour les charges de travail très fortement orientées lecture, ajoutez une couche ElastiCache devant RDS pour les données fréquemment consultées.

# Create a Read Replica from the primary RDS instance
aws rds create-db-instance-read-replica \
  --db-instance-identifier prod-mysql-replica \
  --source-db-instance-identifier prod-mysql \
  --db-instance-class db.t3.large \
  --availability-zone us-east-1b

# Application code: use replica endpoint for reads
# Primary endpoint: prod-mysql.cluster.us-east-1.rds.amazonaws.com (writes)
# Replica endpoint: prod-mysql-replica.xyz.us-east-1.rds.amazonaws.com (reads)

Scénario 3 : Auto Scaling lors d’un pic de CPU

Scénario : Une API sans état s’exécute sur EC2 derrière un ALB. L’utilisation du CPU atteint 90 % pendant les heures de bureau et tombe presque à zéro la nuit. L’entreprise souhaite que son parc se mette automatiquement à l’échelle. Solution : Configurez un groupe Auto Scaling avec une politique de mise à l’échelle Target Tracking visant une utilisation moyenne du CPU de 60 %. ASG ajoute automatiquement des instances lorsque le CPU dépasse 60 % et en supprime lorsqu’il passe sous la cible. Ajoutez une action de mise à l’échelle planifiée pour préchauffer la capacité minimale avant le début des heures de bureau et éviter un ralentissement lors du pic de trafic matinal.

# Target tracking policy: scale to keep CPU at 60%
aws autoscaling put-scaling-policy \
  --auto-scaling-group-name api-asg \
  --policy-name cpu-tracking \
  --policy-type TargetTrackingScaling \
  --target-tracking-configuration '{
    "PredefinedMetricSpecification": {"PredefinedMetricType": "ASGAverageCPUUtilization"},
    "TargetValue": 60.0,
    "DisableScaleIn": false
  }'

# Scheduled action: pre-warm to 5 instances at 8 AM weekdays
aws autoscaling put-scheduled-update-group-action \
  --auto-scaling-group-name api-asg \
  --scheduled-action-name morning-scale-out \
  --recurrence '0 8 * * MON-FRI' \
  --min-size 5

Scénario 4 : Basculement Route 53 vers le site de reprise après sinistre

Scénario : Une entreprise exploite une application Web principale dans us-east-1 et souhaite basculer vers une page de maintenance statique hébergée sur S3 dans us-west-2 si l’application principale devient indisponible. Solution : Créez une vérification d’état Route 53 surveillant le point de terminaison de l’ALB principal. Créez deux enregistrements Route 53 avec une politique de routage par basculement : l’enregistrement Primary pointe vers l’ALB (associé à la vérification d’état) et l’enregistrement Secondary pointe vers le site statique S3. Si la vérification d’état échoue, Route 53 fournit automatiquement la réponse DNS de l’enregistrement secondaire.

# Create Route 53 health check for primary ALB
aws route53 create-health-check \
  --caller-reference $(date +%s) \
  --health-check-config '{
    "Type": "HTTPS",
    "FullyQualifiedDomainName": "app.example.com",
    "Port": 443,
    "RequestInterval": 30,
    "FailureThreshold": 3
  }'

# Primary failover record (associated with health check)
# Secondary failover record -> S3 static website endpoint
# Route 53 automatically switches if health check fails

Scénario 5 : Découplage avec SQS pour la résilience

Scénario : Un Backend de traitement des commandes écrit dans une Database, mais celle-ci devient parfois indisponible pendant les fenêtres de maintenance, ce qui entraîne la perte de commandes. Solution : Placez une Queue SQS entre le Frontend (qui accepte les commandes) et le Backend (qui les traite). Les commandes sont immédiatement placées dans la Queue, ce qui fournit une confirmation instantanée au client. Des workers en arrière-plan récupèrent les commandes dans la Queue et les traitent lorsque la Database est disponible. Pendant la maintenance, les commandes s’accumulent au lieu d’être supprimées, ce qui assure la résilience grâce au découplage asynchrone.

# SQS-based order decoupling pattern
# 1. Frontend: PUT order to SQS (returns 200 immediately to customer)
aws sqs send-message \
  --queue-url https://sqs.us-east-1.amazonaws.com/123/orders \
  --message-body '{"orderId": "ORD-123", "items": [...]}'

# 2. Backend worker: polls SQS when DB is available
aws sqs receive-message \
  --queue-url https://sqs.us-east-1.amazonaws.com/123/orders \
  --max-number-of-messages 10

# 3. On success: delete message from queue
# 4. On failure: visibility timeout expires -> message reappears for retry
# 5. After max retries: message goes to Dead Letter Queue (DLQ)

Scénario 6 : Pilot Light pour la reprise après sinistre

Scénario : Une entreprise a besoin d’une solution de reprise après sinistre avec un RPO de 1 heure et un RTO de 4 heures, pour un budget modéré. Solution : Mettez en œuvre une stratégie DR Pilot Light. Conservez la Database principale répliquée vers la DR Region à l’aide d’une RDS Cross-Region Read Replica. Les serveurs d’application ne fonctionnent pas dans la DR Region en fonctionnement normal : seul le « cœur » minimal (la Database) reste prêt. En cas de sinistre, promouvez la Read Replica en instance autonome et lancez les serveurs d’application à partir d’AMIs précréées avec CloudFormation. Le RTO se mesure en heures plutôt qu’en minutes, car les serveurs doivent être lancés.

# Pilot Light: replicate database to DR Region
aws rds create-db-instance-read-replica \
  --db-instance-identifier prod-mysql-dr \
  --source-db-instance-identifier prod-mysql \
  --db-instance-class db.t3.large \
  --source-region us-east-1 \
  --destination-region us-west-2

# During disaster: promote replica in us-west-2 to standalone
aws rds promote-read-replica \
  --db-instance-identifier prod-mysql-dr \
  --region us-west-2
# Then launch app servers from AMIs using CloudFormation in us-west-2

Scénario 7 : Dead-Letter Queue SQS pour les messages en échec

Scénario : Les messages d’une Queue SQS échouent à plusieurs reprises lors de leur traitement en raison d’un bogue dans la fonction Lambda consommatrice. Les messages réapparaissent sans cesse et bloquent la Queue. Solution : Configurez une Dead-Letter Queue (DLQ) sur la Queue principale. Après l’échec du traitement d’un message un nombre configurable de fois (maxReceiveCount), SQS le déplace automatiquement vers la DLQ au lieu de le distribuer indéfiniment. Cela libère la Queue principale pour les messages valides. Définissez une alarme CloudWatch sur la métrique ApproximateNumberOfMessagesVisible de la DLQ afin d’alerter l’équipe d’ingénierie lorsque des messages s’y accumulent.

# Set redrive policy to move failed messages to DLQ after 3 attempts
aws sqs set-queue-attributes \
  --queue-url https://sqs.us-east-1.amazonaws.com/123/orders \
  --attributes '{
    "RedrivePolicy": "{\"deadLetterTargetArn\": \"arn:aws:sqs:us-east-1:123:orders-dlq\", \"maxReceiveCount\": \"3\"}"
  }'

# CloudWatch alarm on DLQ depth
aws cloudwatch put-metric-alarm \
  --alarm-name orders-dlq-depth \
  --metric-name ApproximateNumberOfMessagesVisible \
  --namespace AWS/SQS \
  --dimensions Name=QueueName,Value=orders-dlq \
  --threshold 1 --comparison-operator GreaterThanOrEqualToThreshold \
  --evaluation-periods 1 --period 60 --statistic Sum

Scénario 8 : Aurora Global Database

Scénario : Une entreprise exerce ses activités aux US et en Europe. Les utilisateurs européens subissent une latence élevée lors des lectures dans la Database, car RDS se trouve dans us-east-1. Solution : Utilisez Amazon Aurora Global Database. Le cluster principal se trouve dans us-east-1 ; un cluster secondaire en lecture seule est ajouté dans eu-west-1. Aurora réplique les données vers la Region secondaire avec une latence typique inférieure à 1 seconde grâce à une réplication au niveau du stockage. Les utilisateurs européens lisent les données depuis le cluster secondaire d’eu-west-1. En cas de sinistre régional, le cluster secondaire peut être promu au rôle de cluster principal en moins d’une minute, ce qui constitue le meilleur RTO parmi les options de bases de données AWS multi-régions.

# Add a secondary region to an Aurora Global Database
aws rds create-global-cluster \
  --global-cluster-identifier prod-global \
  --source-db-cluster-identifier arn:aws:rds:us-east-1:123:cluster:prod-aurora

# Add secondary Region cluster
aws rds create-db-cluster \
  --db-cluster-identifier prod-aurora-eu \
  --engine aurora-postgresql \
  --global-cluster-identifier prod-global \
  --region eu-west-1

Scénario 9 : Service ECS avec ALB et Auto Scaling

Scénario : Un service d’API conteneurisé exécuté sur ECS Fargate doit se mettre à l’échelle en fonction de l’utilisation du CPU et résister aux défaillances d’AZ. Solution : Enregistrez le service ECS auprès d’un groupe cible d’Application Load Balancer afin de répartir le trafic entre les tâches en cours d’exécution. Placez les tâches dans plusieurs AZ en spécifiant plusieurs sous-réseaux dans la configuration du service. Configurez l’Auto Scaling du service ECS avec une politique Target Tracking basée sur l’utilisation du CPU du service ECS afin d’augmenter ou de réduire automatiquement le nombre de tâches. Si une AZ tombe en panne, ECS redémarre les tâches défaillantes dans des AZ saines.

# Create ECS Fargate service with ALB and multi-AZ placement
aws ecs create-service \
  --cluster prod-cluster \
  --service-name api-service \
  --task-definition api-task:5 \
  --desired-count 3 \
  --launch-type FARGATE \
  --network-configuration '{
    "awsvpcConfiguration": {
      "subnets": ["subnet-1a", "subnet-1b", "subnet-1c"],
      "securityGroups": ["sg-app"],
      "assignPublicIp": "DISABLED"
    }
  }' \
  --load-balancers '[{
    "targetGroupArn": "arn:...:targetgroup/api-tg/abc",
    "containerName": "api",
    "containerPort": 8080
  }]'

Scénario 10 : Basculement par vérification d’état avec Route 53

Scénario : Une entreprise exploite deux instances EC2 dans des AZ différentes, qui servent le même domaine. Elle souhaite que Route 53 cesse automatiquement d’envoyer du trafic vers une instance indisponible. Solution : Utilisez le routage pondéré Route 53 avec des poids égaux (50/50) et associez une vérification d’état du point de terminaison à chaque enregistrement. Lorsque Route 53 détecte un point de terminaison indisponible, il retire cet enregistrement des réponses DNS et envoie 100 % du trafic vers le point de terminaison sain. Lorsque l’instance récupère et que les vérifications d’état réussissent à nouveau, Route 53 rééquilibre automatiquement le trafic : aucune modification DNS manuelle n’est nécessaire.

# Route 53 weighted record with health check association
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "SetIdentifier": "instance-1a",
        "Weight": 50,
        "HealthCheckId": "hc-abc123",
        "TTL": 30,
        "ResourceRecords": [{"Value": "10.0.1.10"}]
      }
    }]
  }'

Scénario 11 : DynamoDB Global Tables pour la HA multi-régions

Scénario : Une application de jeu mobile doit permettre de lire et d’écrire les données des joueurs avec une faible latence depuis us-east-1 comme depuis ap-southeast-1. Une Table DynamoDB dans une seule Region entraîne une latence élevée pour les utilisateurs asiatiques. Solution : Activez DynamoDB Global Tables. Global Tables réplique automatiquement les données entre les Regions spécifiées grâce à une réplication multi-maître : chaque Region peut accepter des écritures. Les utilisateurs asiatiques écrivent et lisent depuis la Replica d’ap-southeast-1 avec une latence locale (environ 5 ms). Global Tables résout les conflits selon une stratégie « dernier écrivain gagnant », fondée sur les horodatages. Le RTO en cas de défaillance régionale complète est presque nul : le trafic est simplement dirigé vers la Region restante.

# Convert a DynamoDB table to a Global Table
# (table must exist in all target Regions first)
aws dynamodb create-global-table \
  --global-table-name PlayerData \
  --replication-group '[{"RegionName": "us-east-1"}, {"RegionName": "ap-southeast-1"}]'

# Add another Region to an existing Global Table
aws dynamodb update-global-table \
  --global-table-name PlayerData \
  --replica-updates '[{"Create": {"RegionName": "eu-west-1"}}]'

Vérification rapide

Vérifiez votre compréhension des concepts AWS Solutions Architect (SAA-C03) présentés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez étudié des scénarios portant sur un ASG Multi-AZ et RDS pour la HA au sein d’une Region, le routage par basculement Route 53 pour la DR inter-régions, une DLQ SQS pour isoler les messages en échec sans bloquer les Queues, ainsi qu’Aurora Global Database pour la mise à l’échelle des lectures inter-régions et le basculement avec un RTO inférieur à une minute. Nous allons maintenant aborder des scénarios d’architecture hautes performances et optimisée en termes de coûts.

Questions Fréquemment Posées

La leçon « Scénarios d’architectures résilientes et hautement disponibles » est-elle gratuite ?

Oui — le texte complet de « Scénarios d’architectures résilientes et hautement disponibles » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cloud & IT Cert Prep, passe à CoddyKit PRO. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Scénarios d’architectures résilientes et hautement disponibles » ?

Abordez des scénarios de basculement de bases de données Multi-AZ, de mise à l’échelle automatique lors de pics de trafic et de basculement fondé sur les contrôles d’intégrité Route 53 afin de consol… Tu pratiques Cloud & IT Cert Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cloud & IT Cert Prep ?

Aucune expérience préalable n'est requise. Cloud & IT Cert Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Scénarios d’architectures résilientes et hautement disponibles » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cloud & IT Cert Prep ?

Oui. Chaque leçon Cloud & IT Cert Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Scénarios d’architecture sécurisée
  2. Scénarios d’architectures résilientes et hautement disponibles
  3. Scénarios de haute performance et d’optimisation des coûts
  4. Mini-examen complet à domaines mixtes
← Retour à Cloud & IT Cert Prep