Active-active op meerdere locaties met Global Tables en Route 53
Voer gelijktijdig volledige productiecapaciteit uit in twee of meer Regions met DynamoDB Global Tables, Aurora Global Database en latency-based routing van Route 53.
Active-active op meerdere locaties met Global Tables en Route 53 is een gratis Cloud & IT Cert Prep-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cloud & IT Cert Prep. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
Multi-site active-active gedefinieerd
Multi-site active-active is het hoogste niveau van noodherstel, waarbij je applicatie tegelijkertijd op volledige productiecapaciteit in twee of meer AWS-regio's draait. In tegenstelling tot active-passive, waarbij een stand-byomgeving wacht om het over te nemen, verwerken beide regio's voortdurend live gebruikersverkeer in een active-active-opstelling. Wanneer één regio uitvalt, verwerkt de andere onmiddellijk 100% van het verkeer, zonder vertraging door omschakeling. Dit patroon vermindert ook de latentie voor wereldwijd verspreide gebruikers doordat het verkeer vanuit de dichtstbijzijnde regio wordt bediend.
# 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)Architectuur van DynamoDB Global Tables
DynamoDB Global Tables vormt de gegevensruggengraat van active-active-architecturen. Global Tables maakt replicatie met meerdere masters in meerdere regio's mogelijk: applicaties in elke regio kunnen lezen en schrijven naar een lokale DynamoDB-tabel, en wijzigingen worden binnen ongeveer 1 seconde naar alle andere regio's gerepliceerd. Je schakelt Global Tables in door op te geven in welke regio's de tabel moet bestaan. AWS handelt alle replicatie, conflictoplossing (de laatste schrijver wint) en omschakeling automatisch af.
# 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-1Aurora Global Database voor actief schrijven en lezen
Aurora Global Database biedt actief lezen maar passief schrijven. Alle secundaire regio's verwerken leesbewerkingen met een replicatieachterstand van minder dan 1 seconde, terwijl alleen de primaire regio schrijfbewerkingen accepteert. Dit is ideaal voor applicaties met veel leesbewerkingen die wereldwijd lezen met lage latentie willen combineren met een duidelijke primaire regio voor schrijven. Tijdens een regionale storing in de primaire regio kun je een secundaire regio binnen 1 minuut promoveren tot primaire regio, waardoor je een lage RTO voor de schrijffunctie bereikt. Vergelijk dit met DynamoDB Global Tables, dat actief schrijven in alle regio's ondersteunt.
# 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.comRoutering met Route 53 voor active-active
Route 53 is de verkeersregisseur voor multi-site active-active-architecturen. Gebruik routering op basis van latentie om elke gebruiker naar de regio met de laagste netwerklatentie vanaf diens locatie te sturen. Koppel gezondheidscontroles aan elk regionaal record. Wanneer een regio de gezondheidscontrole niet doorstaat, verwijdert Route 53 deze automatisch uit de DNS-antwoorden en stuurt het al het verkeer naar de overgebleven gezonde regio's. Stel de DNS-TTL in op 60 seconden of minder om de tijd te minimaliseren die gebruikers nodig hebben om over te schakelen naar de gezonde regio.
# 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}
}
}
]
}'Auto Scaling voor het opvangen van verkeer
Wanneer één regio uitvalt in een active-active-opstelling, moet de overlevende regio tweemaal (of meer) het normale verkeer verwerken. Je Auto Scaling Group moet voldoende maximale capaciteit en beleid voor opschalen hebben dat snel reageert. Configureer schalen op basis van doeltracking met het aantal ALB-verzoeken per doel, zodat de ASG automatisch instanties toevoegt wanneer het verkeer verdubbelt. Overweeg ook voorverwarming: observeer tijdens omschakelingsoefeningen hoe snel je ASG opschaalt en controleer of deze binnen je RTO-doel de vereiste capaciteit kan bereiken.
# 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
}'Sessiebeheer in active-active
In een architectuur met één regio kunnen gebruikerssessies lokaal op applicatieservers worden opgeslagen. In een multi-region active-active-opstelling kunnen gebruikers bij volgende verzoeken tussen regio's wisselen, waardoor sessies aan de serverzijde worden verbroken. Oplossingen: 1) Staatloze sessies — sla sessiegegevens op in een ondertekende JWT of cookie die elke server in elke regio kan valideren. 2) DynamoDB Global Tables voor sessies — sla sessies centraal op met toegang in milliseconden vanuit elke regio. 3) ElastiCache met Global Datastore — Redis-replicatie tussen regio's voor sessieopslag.
# 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 ALBSchrijfconflicten en oplossing
De grootste uitdaging bij active-active met schrijfbewerkingen door meerdere masters zijn schrijfconflicten. Als twee gebruikers in verschillende regio's tegelijkertijd hetzelfde record bijwerken, welke wijziging wint dan? DynamoDB Global Tables gebruikt de laatste schrijver wint, op basis van het tijdstip waarop de schrijfbewerking is uitgevoerd. Dit werkt goed voor de meeste toepassingen, maar kan leiden tot gegevensverlies bij concurrerende wijzigingen, bijvoorbeeld wanneer twee gebruikers tegelijkertijd een teller verhogen. Ontwerp je gegevensmodel zo dat verschillende regio's niet gelijktijdig naar hetzelfde item schrijven, met behulp van voorwaardelijke schrijfbewerkingen of door het eigenaarschap van gegevens per regio te verdelen.
# 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 gracefullyS3-replicatie in active-active
Gebruik voor objectopslag in active-active S3 Cross-Region Replication met bidirectionele replicatie (beschikbaar voor buckets waarvoor versiebeheer is ingeschakeld). In tegenstelling tot eenrichtings-CRR houdt bidirectionele replicatie de buckets in beide regio's synchroon: objecten die in een van beide regio's worden geschreven, worden automatisch naar de andere gerepliceerd. Dit is essentieel voor applicaties die door gebruikers geüploade bestanden naar de lokale S3-bucket schrijven, maar die bestanden wereldwijd toegankelijk moeten maken. Schakel S3 Replication Time Control (RTC) in om te garanderen dat 99,99% van de objecten binnen 15 minuten wordt gerepliceerd.
# 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 met origins in meerdere regio's
Gebruik CloudFront met origin groups om een active-active-CDN met automatische omschakeling te maken. Configureer een primaire origin (ALB in us-east-1) en een secundaire origin (ALB in eu-west-1). CloudFront schakelt automatisch over naar de secundaire origin wanneer de primaire origin 5xx-fouten retourneert. Configureer voor statische assets die vanuit S3 worden aangeboden origin groups die verwijzen naar S3-buckets in meerdere regio's met bidirectionele replicatie. Hiermee voeg je een veerkrachtlaag op CDN-niveau toe boven op je active-active-routering met 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"}]}
}]
}
}'Monitoring van de gezondheid van active-active
Active-active-architecturen vereisen robuuste monitoring om te controleren of beide regio's gezond zijn en het verkeer zoals verwacht wordt verdeeld. Belangrijke metrieken zijn: Route 53 HealthCheckPercentageHealthy per regio, DynamoDB ReplicationLatency voor de achterstand van Global Tables, ALB RequestCount per regio om de verkeersverdeling te controleren, en CloudWatch-dashboards voor meerdere accounts en regio's voor één overzicht. Stel alarmen in wanneer de replicatieachterstand je RPO-drempel overschrijdt of wanneer de verkeersverdeling ernstig uit balans raakt.
# 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-alertsWanneer active-active de juiste keuze is
Active-active is geschikt wanneer: gebruikers wereldwijd verspreid zijn en latentie naar één regio onaanvaardbaar is. De RTO vrijwel nul moet zijn — het bedrijf kan zelfs geen uitval van enkele minuten verdragen. Een hoge schrijfcapaciteit vereist dat schrijfbewerkingen over regio's worden verspreid. Wettelijke vereisten verwerking van gegevens in het eigen land voorschrijven. De kosten zijn aanzienlijk hoger dan bij andere niveaus van noodherstel. Kies active-active daarom alleen wanneer de bedrijfsvereisten en bedrijfseconomische overwegingen dit duidelijk rechtvaardigen. Voor veel belastingen is Warm Standby voldoende en veel goedkoper.
# 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)Korte controle
Test je begrip van de AWS Solutions Architect (SAA-C03)-concepten uit deze les.
Samenvatting van de les
In deze les heb je geleerd dat DynamoDB Global Tables schrijven met meerdere masters in verschillende regio's mogelijk maakt voor echte active-active, dat latentiegebaseerde routering met gezondheidscontroles in Route 53 gebruikers naar de dichtstbijzijnde gezonde regio stuurt, en dat sessiebeheer in active-active staatloos moet zijn of wereldwijd gerepliceerde opslag moet gebruiken. Active-active biedt een vrijwel nul-RTO en -RPO, maar tegen aanzienlijk hogere kosten. Hierna verkennen we de pijlers Operationele uitmuntendheid en Beveiliging van het Well-Architected Framework.
Leer Cloud & IT Cert Prep met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 150
- Lessen
- 600
Veelgestelde vragen
Is de les “Active-active op meerdere locaties met Global Tables en Route 53” gratis?
Ja — de volledige tekst van “Active-active op meerdere locaties met Global Tables en Route 53” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cloud & IT Cert Prep wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
Wat leer ik in “Active-active op meerdere locaties met Global Tables en Route 53”?
Voer gelijktijdig volledige productiecapaciteit uit in twee of meer Regions met DynamoDB Global Tables, Aurora Global Database en latency-based routing van Route 53. Je oefent met Cloud & IT Cert Prep door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Cloud & IT Cert Prep te beginnen?
Ervaring vooraf is niet nodig. Cloud & IT Cert Prep op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Active-active op meerdere locaties met Global Tables en Route 53”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Cloud & IT Cert Prep?
Ja. Elke les over Cloud & IT Cert Prep bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- RTO, RPO en DR-niveaus
- Back-up en herstel
- Pilot light en warm standby
- Active-active op meerdere locaties met Global Tables en Route 53