0Pricing
AWS Solutions Architect · Leçon

Modèles Multi-AZ pour les services avec état

Appliquez Multi-AZ à RDS, ElastiCache, EFS et ELB afin d’éliminer les points uniques de défaillance au sein d’une Région.

Modèles Multi-AZ pour les services avec état est une leçon AWS Solutions Architect 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 AWS Solutions Architect, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AWS Solutions Architect comprend 4 leçons au total.

Pourquoi les services avec état ont besoin du Multi-AZ

Les services avec état — bases de données, caches, systèmes de fichiers — sont les composants les plus difficiles à rendre hautement disponibles, car ils contiennent des données qui doivent survivre aux pannes. Si une base de données située dans une seule AZ tombe en panne, toute votre application perd son magasin de données. La réponse d’AWS consiste à utiliser des déploiements Multi-AZ, dans lesquels le service conserve un réplica synchrone ou quasi synchrone dans une deuxième zone de disponibilité, capable de prendre rapidement le relais lorsque le serveur principal tombe en panne.

Réplica de secours synchrone RDS Multi-AZ

RDS Multi-AZ conserve un réplica de secours synchrone dans une AZ différente. Chaque écriture effectuée sur le serveur principal est répliquée de manière synchrone avant la confirmation de sa réussite — cela signifie une perte de données nulle (RPO=0), mais entraîne une légère augmentation de la latence d’écriture. Lorsque le serveur principal tombe en panne, RDS met automatiquement à jour le point de terminaison DNS pour qu’il pointe vers le serveur de secours en 60 à 120 secondes. Votre application doit uniquement se reconnecter au même point de terminaison ; aucune modification du code n’est nécessaire.

# Enable Multi-AZ on existing RDS instance
aws rds modify-db-instance \
  --db-instance-identifier mydb \
  --multi-az \
  --apply-immediately

# RDS endpoint stays the same after failover
# Application reconnects to same DNS name

Architecture Multi-AZ d’Aurora

Amazon Aurora va plus loin avec Multi-AZ grâce à une couche de stockage distribuée partagée qui réplique automatiquement les données dans trois AZ, en six copies. Les instances Aurora sont sans état : elles lisent et écrivent dans ce stockage partagé. Lorsque le Writer Aurora PRIMARY tombe en panne, une Read Replica située dans une autre AZ est promue au rôle de Writer en moins de 30 secondes. Cette opération est plus rapide que le basculement Multi-AZ de RDS, et les données restent toujours cohérentes entre les AZ sans réplication explicite vers une instance Standby.

# Aurora cluster endpoint automatically handles failover
# Writer endpoint: mydb.cluster-xxx.us-east-1.rds.amazonaws.com
# Reader endpoint: mydb.cluster-ro-xxx.us-east-1.rds.amazonaws.com

# Failover time: typically under 30 seconds

Réplication Multi-AZ d’ElastiCache

ElastiCache for Redis prend en charge Multi-AZ grâce aux groupes de réplication. Un nœud PRIMARY accepte les écritures et les réplique de manière Asynchronous vers des Replicas de lecture situées dans d’autres AZ. Lorsque le nœud PRIMARY tombe en panne, ElastiCache promeut automatiquement une Replica au rôle de PRIMARY. Pour Redis avec le mode cluster Enabled, les données sont réparties entre plusieurs groupes de nœuds, chacun possédant son propre PRIMARY et ses Replicas dans différentes AZ ; cela fournit à la fois la HA et la montée en charge horizontale.

# Create Redis replication group with Multi-AZ
aws elasticache create-replication-group \
  --replication-group-id my-redis \
  --replication-group-description 'Multi-AZ Redis' \
  --num-cache-clusters 3 \
  --cache-node-type cache.r6g.large \
  --multi-az-enabled \
  --automatic-failover-enabled

EFS : Multi-AZ par nature

Amazon Elastic File System (EFS) est Multi-AZ par nature : il s’agit d’un service régional qui stocke les données de manière redondante dans plusieurs AZ au sein d’une région. Vous créez des cibles de montage dans le sous-réseau de chaque AZ, et les instances EC2 de n’importe quelle AZ peuvent monter le système de fichiers via leur cible de montage locale. Aucune configuration Multi-AZ manuelle n’est nécessaire. EFS fournit un stockage de fichiers partagé POSIX auquel plusieurs instances réparties dans différentes AZ peuvent accéder simultanément.

# Mount EFS from EC2 in any AZ
# Mount target is created per AZ automatically
sudo mount -t efs -o tls fs-12345678:/ /mnt/efs

# Or use EFS mount helper
sudo mount -t efs fs-12345678 /mnt/efs

Équilibrage de charge Cross-Zone avec Elastic Load Balancer

Les Elastic Load Balancers sont eux-mêmes Multi-AZ : ALB et NLB déploient des nœuds d’équilibrage de charge dans chaque AZ que vous indiquez. Avec l’équilibrage de charge Cross-Zone Enabled (valeur par défaut pour ALB), chaque nœud d’équilibrage de charge répartit le trafic de manière uniforme entre toutes les cibles enregistrées dans toutes les AZ, et pas uniquement dans sa propre AZ. Ainsi, même si toutes les instances d’une AZ tombent en panne, l’équilibreur de charge continue de servir le trafic via les instances des AZ restantes.

# ALB automatically created in multiple AZs
aws elbv2 create-load-balancer \
  --name my-alb \
  --subnets subnet-AZ1 subnet-AZ2 subnet-AZ3 \
  --security-groups sg-12345

# Cross-zone load balancing is ON by default for ALB

Modèle Multi-AZ avec NAT Gateway

Une erreur courante consiste à déployer un seul NAT Gateway dans une AZ, tandis que les sous-réseaux privés des autres AZ y acheminent leur trafic. Si cette AZ tombe en panne, toutes les instances privées perdent leur accès à Internet. Le modèle Multi-AZ correct consiste à déployer un NAT Gateway par AZ et à configurer la table de routage privée de chaque AZ pour acheminer 0.0.0.0/0 via son propre NAT Gateway. Cela élimine le NAT Gateway comme SPOF inter-AZ et réduit les coûts de transfert de données inter-AZ.

# Create NAT Gateway in each AZ
aws ec2 create-nat-gateway \
  --subnet-id subnet-public-AZ1 \
  --allocation-id eipalloc-AZ1

aws ec2 create-nat-gateway \
  --subnet-id subnet-public-AZ2 \
  --allocation-id eipalloc-AZ2

# Each AZ's private route table points to its own NAT GW

DynamoDB Multi-AZ par défaut

DynamoDB est un service entièrement géré qui réplique automatiquement les données dans trois AZ d’une région ; vous ne configurez pas Multi-AZ manuellement. Chaque écriture est stockée de manière durable dans les trois AZ avant que le succès ne soit renvoyé. DynamoDB est donc tolérant aux pannes au niveau des AZ dès sa mise en service. C’est pourquoi DynamoDB est souvent la base de données recommandée lorsque la question d’examen met l’accent sur la haute disponibilité avec une charge opérationnelle minimale.

RDS Proxy pour gérer plus rapidement les Connections

Lors d’un basculement Multi-AZ de RDS, les Applications qui maintiennent des Connections persistantes peuvent rencontrer des erreurs lorsque l’Endpoint change. RDS Proxy se place entre votre Application et RDS et maintient un pool de Connections vers la base de données. Pendant le basculement, RDS Proxy réachemine automatiquement les requêtes vers le nouveau PRIMARY, ce qui réduit l’impact du basculement de 60 à 120 secondes à moins de 30 secondes pour les Applications utilisant l’Endpoint du proxy. RDS Proxy est également utile avec les fonctions Lambda qui créent de nombreuses Connections de courte durée.

# Application connects to RDS Proxy endpoint
# Proxy endpoint: myproxy.proxy-xxx.us-east-1.rds.amazonaws.com

# RDS Proxy handles:
# - Connection pooling
# - Failover routing
# - IAM authentication
# - Secrets Manager integration

Modes de réplication des données : Synchronous ou Asynchronous

Comprendre les modes de réplication est essentiel pour choisir les modèles Multi-AZ. La réplication Synchronous (RDS Multi-AZ, EFS) garantit un RPO=0, car chaque écriture est confirmée dans les deux AZ avant le renvoi du succès. En contrepartie, la latence d’écriture est légèrement plus élevée. La réplication Asynchronous (Replicas Redis d’ElastiCache, RDS Read Replicas) offre une latence d’écriture plus faible, mais accepte un léger retard de réplication ; certaines données peuvent donc être perdues si le PRIMARY tombe en panne avant la fin de la réplication.

# Synchronous replication: RPO = 0, higher write latency
# Used by: RDS Multi-AZ, Aurora storage layer

# Asynchronous replication: RPO > 0 (replication lag)
# Used by: RDS Read Replicas, ElastiCache Redis replicas
# Replication lag can be monitored:
# aws cloudwatch get-metric-statistics \
#   --namespace AWS/RDS --metric-name ReplicaLag

Tester le basculement Multi-AZ

Vous devez tester régulièrement le basculement Multi-AZ afin de valider vos hypothèses de RTO. Pour RDS, vous pouvez déclencher un basculement à l’aide de l’option Reboot with failover de la console ou du CLI. Surveillez CloudWatch pour la métrique FailedSQLServerAgentJobsCount et consultez les journaux de votre Application afin de vérifier qu’elle se reconnecte correctement. Documentez la durée réelle du basculement : elle peut différer de celle indiquée dans la documentation AWS selon la classe de votre instance et votre charge de travail.

# Trigger RDS Multi-AZ failover test
aws rds reboot-db-instance \
  --db-instance-identifier mydb \
  --force-failover

# Monitor failover in CloudWatch
aws cloudwatch get-metric-statistics \
  --namespace AWS/RDS \
  --metric-name DatabaseConnections \
  --dimensions Name=DBInstanceIdentifier,Value=mydb

Vérification rapide

Évaluez 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 appris que RDS Multi-AZ utilise une réplication Synchronous avec un basculement DNS automatique, qu’Aurora utilise une couche de stockage partagée dans trois AZ pour accélérer le basculement, et qu’EFS et DynamoDB sont intrinsèquement Multi-AZ, sans configuration manuelle. Déployez un NAT Gateway par AZ pour éviter les SPOF inter-AZ. Nous allons maintenant étudier les modèles multi-régions Active-Active et Active-Passive.

Questions Fréquemment Posées

La leçon « Modèles Multi-AZ pour les services avec état » est-elle gratuite ?

Oui — le texte complet de « Modèles Multi-AZ pour les services avec état » 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 AWS Solutions Architect, passe à CoddyKit PRO. Le cours AWS Solutions Architect comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Modèles Multi-AZ pour les services avec état » ?

Appliquez Multi-AZ à RDS, ElastiCache, EFS et ELB afin d’éliminer les points uniques de défaillance au sein d’une Région. Tu pratiques AWS Solutions Architect 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 AWS Solutions Architect ?

Aucune expérience préalable n'est requise. AWS Solutions Architect 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 « Modèles Multi-AZ pour les services avec état » ?

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 AWS Solutions Architect ?

Oui. Chaque leçon AWS Solutions Architect 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. HA ou tolérance aux pannes : définitions et compromis
  2. Modèles Multi-AZ pour les services avec état
  3. Actif-actif et actif-passif multi-Régions
  4. Contrôles d’intégrité, disjoncteurs et logique de nouvelle tentative
← Retour à AWS Solutions Architect