0Pricing
AWS Solutions Architect · Leçon

Actif-actif multisite avec Global Tables et Route 53

Exécutez simultanément la capacité de production complète dans au moins deux Régions avec DynamoDB Global Tables, Aurora Global Database et le routage selon la latence de Route 53.

Actif-actif multisite avec Global Tables et Route 53 est une leçon AWS Solutions Architect gratuite sur CoddyKit. Ceci est la leçon 4 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.

Définition du mode actif-actif sur plusieurs sites

Multi-Site Active-Active est le niveau le plus élevé de reprise après sinistre : votre application fonctionne à pleine capacité de production dans au moins deux régions AWS simultanément. Contrairement au mode actif-passif, dans lequel un environnement de secours attend de prendre le relais, les deux régions traitent en permanence le trafic réel des utilisateurs. Lorsqu’une région tombe en panne, l’autre absorbe immédiatement 100 % du trafic, sans délai de basculement. Ce modèle réduit également la latence pour les utilisateurs répartis dans le monde entier, en les servant depuis la région la plus proche.

# Active-Active traffic split (normal operation):
# us-east-1: serving ~50% of users (North America)
# eu-west-1: serving ~50% of users (Europe)

# Active-Active traffic split (us-east-1 failure):
# us-east-1: 0% (health check failed)
# eu-west-1: 100% (ASG scales up automatically)

# RTO: near-zero (DNS TTL propagation only)
# RPO: near-zero (with DynamoDB Global Tables)

Architecture de DynamoDB Global Tables

DynamoDB Global Tables constitue le socle de données des architectures actives-actives. Global Tables permet la réplication multi-maître et multi-région : les applications de n’importe quelle région peuvent lire et write dans une table DynamoDB locale, et les modifications sont répliquées vers toutes les autres régions en environ 1 seconde. Vous activez Global Tables en indiquant les régions dans lesquelles la table doit exister. AWS gère automatiquement toute la réplication, la résolution des conflits (priorité au dernier write) et le basculement.

# Create DynamoDB table and add global regions
aws dynamodb create-table \
  --table-name UserSessions \
  --attribute-definitions AttributeName=userId,AttributeType=S \
  --key-schema AttributeName=userId,KeyType=HASH \
  --billing-mode PAY_PER_REQUEST \
  --region us-east-1

# Add replica regions for Global Table
aws dynamodb update-table \
  --table-name UserSessions \
  --replica-updates '[{"Create":{"RegionName":"eu-west-1"}},{"Create":{"RegionName":"ap-southeast-1"}}]' \
  --region us-east-1

Aurora Global Database pour des lectures actives et des écritures passives

Aurora Global Database fournit des lectures actives-actives, mais des écritures actives-passives. Toutes les régions secondaires servent les lectures avec un retard de réplication inférieur à 1 seconde, tandis que seule la région Primary accepte les écritures. Cette solution convient parfaitement aux applications à forte proportion de lectures qui souhaitent bénéficier de lectures à faible latence partout dans le monde, avec une région Primary clairement définie pour les écritures. En cas de panne régionale de la région Primary, vous pouvez promouvoir une région secondaire au rôle de Primary en moins d’une minute, ce qui permet d’obtenir un RTO faible pour le niveau d’écriture. Comparez cette solution à DynamoDB Global Tables, qui prend en charge les écritures actives-actives dans toutes les régions.

# Aurora Global Database read configuration
# Primary region (us-east-1): reads + writes
# Secondary region (eu-west-1): reads only
#   ~100ms replication lag, serves EU users low-latency reads

# Application reads from local Aurora endpoint
# Application writes to primary region Aurora endpoint

# Java connection string with region routing:
# readEndpoint=eu-west-1.cluster-ro-xxx.aurora.amazonaws.com
# writeEndpoint=us-east-1.cluster-xxx.aurora.amazonaws.com

Routage Route 53 pour le mode actif-actif

Route 53 dirige le trafic des architectures actives-actives sur plusieurs sites. Utilisez le routage basé sur la latence pour envoyer chaque utilisateur vers la région présentant la latence réseau la plus faible depuis son emplacement. Associez des contrôles d’état à l’enregistrement de chaque région : lorsqu’une région échoue à son contrôle d’état, Route 53 la retire automatiquement des réponses DNS et envoie tout le trafic vers les régions saines restantes. Définissez le TTL DNS sur 60 secondes ou moins afin de réduire le temps nécessaire au basculement des utilisateurs vers la région saine.

# Route 53 latency routing with health checks
aws route53 change-resource-record-sets \
  --hosted-zone-id ZXXX \
  --change-batch '{
    "Changes": [
      {
        "Action": "UPSERT",
        "ResourceRecordSet": {
          "Name": "api.example.com",
          "Type": "A",
          "Region": "us-east-1",
          "SetIdentifier": "us-east-1",
          "HealthCheckId": "hc-us-east-1",
          "AliasTarget": {"DNSName": "alb-us-east-1.amazonaws.com", "EvaluateTargetHealth": false}
        }
      }
    ]
  }'

Mise à l’échelle automatique pour absorber le trafic

Lorsqu’une région tombe en panne dans une configuration active-active, la région survivante doit gérer deux fois (voire davantage) son trafic normal. Votre groupe de mise à l’échelle automatique doit disposer d’une capacité maximale suffisante et de politiques d’augmentation de capacité qui réagissent rapidement. Configurez le TargetTrackingScaling en fonction du nombre de requêtes ALB par cible, afin que l’ASG ajoute automatiquement des instances lorsque le trafic double. Envisagez également le préchauffage : pendant les exercices de basculement, observez la rapidité avec laquelle votre ASG augmente sa capacité et vérifiez qu’il peut atteindre la capacité requise dans le délai correspondant à votre objectif de RTO.

# ASG target tracking for request count
aws autoscaling put-scaling-policy \
  --auto-scaling-group-name app-asg-eu-west-1 \
  --policy-name scale-on-requests \
  --policy-type TargetTrackingScaling \
  --target-tracking-configuration '{
    "TargetValue": 1000,
    "PredefinedMetricSpecification": {
      "PredefinedMetricType": "ALBRequestCountPerTarget",
      "ResourceLabel": "app/my-alb/xxx/targetgroup/my-tg/yyy"
    },
    "ScaleInCooldown": 60,
    "ScaleOutCooldown": 30
  }'

Gestion des sessions en mode actif-actif

Dans une architecture à une seule région, les sessions utilisateur peuvent être stockées localement sur les serveurs d’application. Dans une architecture active-active multirégion, les utilisateurs peuvent passer d’une région à l’autre lors de requêtes successives, ce qui interrompt les sessions côté serveur. Solutions : 1) sessions sans état — stockez les données de session dans un JWT signé ou un cookie que n’importe quel serveur, dans n’importe quelle région, peut valider. 2) DynamoDB Global Tables pour les sessions — stockez les sessions de manière centralisée, avec un accès en quelques millisecondes depuis n’importe quelle région. 3) ElastiCache avec Global Datastore — utilisez la réplication Redis entre les régions pour le stockage des sessions.

# DynamoDB Global Table for session storage
# Session item structure:
{
  'sessionId': 'sess-abc123',
  'userId': 'usr-456',
  'data': {'cart': [...], 'preferences': {}},
  'expiresAt': 1750000000,
  'lastUpdatedRegion': 'us-east-1'
}

# Application reads from local region DynamoDB
# Writes replicate to all regions within ~1 second
# No sticky sessions needed on the ALB

Conflits d’écriture et résolution

Le principal défi du mode actif-actif avec des écritures multi-maîtres réside dans les conflits d’écriture. Si deux utilisateurs de régions différentes modifient simultanément le même enregistrement, quelle modification doit l’emporter ? DynamoDB Global Tables applique la règle de la priorité au dernier write, en fonction de l’horodatage de l’écriture. Cette approche fonctionne bien dans la plupart des cas, mais peut entraîner une perte de données en cas de mises à jour concurrentes (par exemple, lorsque deux utilisateurs incrémentent simultanément un compteur). Concevez votre modèle de données de façon à éviter les écritures simultanées dans le même élément depuis différentes régions, en utilisant des écritures conditionnelles ou en répartissant la propriété des données par région.

# Avoid conflicts with conditional writes
aws dynamodb update-item \
  --table-name UserProfiles \
  --key '{"userId":{"S":"usr-123"}}' \
  --update-expression 'SET profileVersion = profileVersion + :inc, username = :name' \
  --condition-expression 'profileVersion = :expectedVersion' \
  --expression-attribute-values '{
    ":inc":{"N":"1"},
    ":name":{"S":"newname"},
    ":expectedVersion":{"N":"5"}
  }'
# If another region already updated version, this fails gracefully

Réplication S3 en mode actif-actif

Pour le stockage d’objets en mode actif-actif, utilisez la réplication interrégionale S3 avec réplication bidirectionnelle (disponible pour les buckets dont la gestion des versions est activée). Contrairement à la CRR unidirectionnelle, la réplication bidirectionnelle maintient les deux buckets régionaux synchronisés : les objets écrits dans l’une ou l’autre région sont automatiquement répliqués dans l’autre. Cette configuration est essentielle pour les applications qui écrivent les fichiers importés par les utilisateurs dans le bucket S3 de leur région locale, mais qui doivent rendre ces fichiers accessibles partout dans le monde. Activez le Replication Time Control (RTC) de S3 pour garantir que 99,99 % des objets sont répliqués en moins de 15 minutes.

# Bidirectional S3 replication
# Bucket A (us-east-1) replicates to Bucket B (eu-west-1)
# Bucket B (eu-west-1) replicates to Bucket A (us-east-1)

# Enable S3 RTC for guaranteed replication time
aws s3api put-bucket-replication \
  --bucket us-east-1-uploads \
  --replication-configuration '{
    "Rules": [{
      "Status": "Enabled",
      "ReplicationTime": {"Status": "Enabled", "Time": {"Minutes": 15}},
      "Metrics": {"Status": "Enabled", "EventThreshold": {"Minutes": 15}},
      "Destination": {"Bucket": "arn:aws:s3:::eu-west-1-uploads"}
    }]
  }'

CloudFront avec des origines multirégions

Utilisez CloudFront avec des groupes d’origines pour créer un CDN actif-actif avec basculement automatique. Configurez une origine Primary (ALB dans us-east-1) et une origine Secondary (ALB dans eu-west-1). CloudFront bascule automatiquement vers l’origine Secondary lorsque l’origine Primary renvoie des erreurs 5xx. Pour les ressources statiques servies depuis S3, configurez des groupes d’origines pointant vers des buckets S3 situés dans plusieurs régions et utilisant une réplication bidirectionnelle. Vous ajoutez ainsi une couche de résilience au niveau du CDN à votre routage actif-actif Route 53.

# CloudFront origin group for multi-region failover
aws cloudfront create-distribution \
  --distribution-config '{
    "Origins": {
      "Quantity": 2,
      "Items": [
        {"Id": "us-east-1", "DomainName": "alb-us-east-1.amazonaws.com"},
        {"Id": "eu-west-1", "DomainName": "alb-eu-west-1.amazonaws.com"}
      ]
    },
    "OriginGroups": {
      "Items": [{
        "Id": "multi-region-group",
        "FailoverCriteria": {"StatusCodes": {"Items": [500,502,503,504]}},
        "Members": {"Items": [{"OriginId": "us-east-1"},{"OriginId": "eu-west-1"}]}
      }]
    }
  }'

Surveillance de l’état du mode actif-actif

Les architectures actives-actives nécessitent une surveillance robuste afin de vérifier que les deux régions sont saines et que le trafic est réparti comme prévu. Métriques clés : Route 53 HealthCheckPercentageHealthy par région, DynamoDB ReplicationLatency pour le retard de Global Tables, ALB RequestCount par région afin de vérifier la répartition du trafic, et tableaux de bord CloudWatch intercomptes et interrégions pour disposer d’une vue unifiée. Définissez des alarmes lorsque le retard de réplication dépasse votre seuil de RPO ou lorsque la répartition du trafic devient fortement déséquilibrée.

# CloudWatch alarm for DynamoDB Global Table replication lag
aws cloudwatch put-metric-alarm \
  --alarm-name 'GlobalTable-ReplicationLag-eu-west-1' \
  --metric-name ReplicationLatency \
  --namespace AWS/DynamoDB \
  --dimensions Name=TableName,Value=UserSessions Name=ReceivingRegion,Value=eu-west-1 \
  --period 60 \
  --evaluation-periods 3 \
  --threshold 5000 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:sns:us-east-1:123:ops-alerts

Quand choisir le mode actif-actif

Le mode actif-actif est adapté lorsque : les utilisateurs sont répartis dans le monde entier et qu’une latence vers une seule région est inacceptable. Le RTO doit être proche de zéro : l’entreprise ne peut tolérer même quelques minutes d’interruption. Un débit d’écriture élevé nécessite de répartir les écritures entre plusieurs régions. Des exigences réglementaires imposent que les données soient traitées dans le pays concerné. Le coût est nettement supérieur à celui des autres niveaux de DR ; choisissez donc le mode actif-actif uniquement lorsque les exigences métier et les considérations économiques le justifient clairement. Pour de nombreuses charges de travail, Warm Standby suffit et coûte beaucoup moins cher.

# Active-Active justification checklist:
# [ ] Users in 2+ continents with latency SLAs
# [ ] RTO requirement < 5 minutes
# [ ] Revenue impact of downtime justifies 2x+ cost
# [ ] Data must remain within specific regions (regulations)
# [ ] Write throughput exceeds single-region capacity

# If fewer than 2-3 boxes checked:
# Consider Warm Standby instead (lower cost, adequate RTO)

Vérification rapide

Testez votre compréhension des concepts AWS Solutions Architect (SAA-C03) abordés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que DynamoDB Global Tables permet les écritures multi-maîtres entre les régions pour un véritable mode actif-actif, que le routage Route 53 fondé sur la latence et les contrôles d’état dirigent les utilisateurs vers la région saine la plus proche, et que la gestion des sessions doit être sans état ou utiliser un stockage répliqué à l’échelle mondiale en mode actif-actif. Le mode actif-actif fournit un RTO et un RPO proches de zéro, mais à un coût nettement plus élevé. Nous allons maintenant étudier les piliers Excellence opérationnelle et Security du Well-Architected Framework.

Questions Fréquemment Posées

La leçon « Actif-actif multisite avec Global Tables et Route 53 » est-elle gratuite ?

Oui — le texte complet de « Actif-actif multisite avec Global Tables et Route 53 » 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 « Actif-actif multisite avec Global Tables et Route 53 » ?

Exécutez simultanément la capacité de production complète dans au moins deux Régions avec DynamoDB Global Tables, Aurora Global Database et le routage selon la latence de Route 53. 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 4 sur 4.

Combien de temps prend la leçon « Actif-actif multisite avec Global Tables et Route 53 » ?

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. Niveaux RTO, RPO et DR
  2. Sauvegarde et restauration
  3. Veilleuse et secours à chaud
  4. Actif-actif multisite avec Global Tables et Route 53
← Retour à AWS Solutions Architect