Multi-Region Active-Active og Active-Passive
Dirigér trafik til flere Regions samtidigt med Route 53-latensrouting, eller skift over til en varm standby med failover baseret på tilstandstjek
Multi-Region Active-Active og Active-Passive er en gratis AWS Solutions Architect-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i AWS Solutions Architect, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. AWS Solutions Architect-kurset indeholder 4 lektioner i alt.
Hvorfor arkitektur på tværs af flere regioner?
Multi-AZ beskytter mod fejl i en enkelt AZ, men en hel AWS-region kan blive utilgængelig under katastrofer i stor skala, større driftsforstyrrelser eller på grund af regulatoriske krav. Arkitekturer på tværs af flere regioner håndterer dette ved at køre arbejdsbelastninger i to eller flere geografisk adskilte regioner. Der er to hovedmønstre: aktiv-passiv (én region betjener trafikken, mens en anden venter som standby) og aktiv-aktiv (begge regioner betjener trafik samtidigt).
Aktiv-passiv: Mønsteret med varm standby
I en aktiv-passiv opsætning på tværs af flere regioner håndterer den primære region al produktionstrafik. Den sekundære region kører en nedskaleret, men funktionel kopi, som holdes varm og klar. Data replikeres løbende fra den primære til den sekundære region. Når den primære region svigter, aktiverer du den sekundære region med Route 53-failoverdirigering. Dette mønster er billigere end aktiv-aktiv, men har en højere RTO (tiden til at aktivere og skalere standby-miljøet).
# Route 53 failover routing configuration
# Primary record: us-east-1 ALB (primary)
# Secondary record: us-west-2 ALB (failover)
aws route53 change-resource-record-sets \
--hosted-zone-id Z123 \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"Failover": "PRIMARY",
"HealthCheckId": "hc-primary"
}
}]
}'Aktiv-aktiv: Trafik i begge regioner
I en aktiv-aktiv-opsætning betjener begge regioner produktionstrafik samtidigt. Route 53 fordeler med latensbaseret dirigering eller vægtet dirigering brugerne til den nærmeste eller mest egnede region. Når en region svigter, registrerer Route 53-sundhedstjek fejlen og dirigerer al trafik til den sunde region. Aktiv-aktiv giver den bedste RTO (næsten nul), reducerer ventetiden for globalt distribuerede brugere og øger gennemløbet ved at fordele belastningen på tværs af regioner.
# Route 53 latency-based routing for active-active
aws route53 change-resource-record-sets \
--hosted-zone-id Z123 \
--change-batch '{
"Changes": [
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"Region": "us-east-1",
"SetIdentifier": "us-east-1",
"HealthCheckId": "hc-use1",
"AliasTarget": {"DNSName": "alb-use1.amazonaws.com"}
}
}
]
}'Datareplikering på tværs af regioner
Den største udfordring ved en arkitektur på tværs af flere regioner er at holde data konsistente mellem regionerne. Vigtige værktøjer: S3 Cross-Region Replication (CRR) replikerer S3-objekter asynkront til en bucket i en anden region. DynamoDB Global Tables leverer replikering med flere mastere på tværs af flere regioner med eventual consistency. Aurora Global Database replikerer fra én primær region til op til fem sekundære regioner med under 1 sekunds forsinkelse. Hver replikationsmekanisme har forskellige garantier for konsistens og egenskaber for forsinkelse.
# Enable S3 Cross-Region Replication
aws s3api put-bucket-replication \
--bucket source-bucket-us-east-1 \
--replication-configuration '{
"Role": "arn:aws:iam::123:role/replication-role",
"Rules": [{
"Status": "Enabled",
"Destination": {
"Bucket": "arn:aws:s3:::dest-bucket-us-west-2"
}
}]
}'DynamoDB Global Tables til aktiv-aktiv
DynamoDB Global Tables muliggør ægte aktiv-aktiv-replikering med flere regioner og flere mastere. Din applikation kan skrive til DynamoDB i enhver region, og ændringerne replikeres typisk til alle andre regioner inden for 1 sekund. Konfliktløsning bruger seneste skrivning vinder baseret på tidsstempler. Det gør Global Tables velegnet til globalt distribuerede applikationer som ranglister i spil, brugerprofiler og sessionslagre, hvor læsninger og skrivninger med lav forsinkelse lokalt er afgørende.
# Create DynamoDB Global Table
aws dynamodb create-global-table \
--global-table-name UserProfiles \
--replication-group \
RegionName=us-east-1 \
RegionName=eu-west-1 \
RegionName=ap-southeast-1
# Applications in each region write to local DynamoDB
# Replication is automatic and bi-directionalAurora Global Database
Aurora Global Database spænder over flere AWS-regioner, hvor én primær region håndterer skrivninger, og op til fem sekundære regioner håndterer læsninger med under 1 sekunds replikationsforsinkelse. Til katastrofeberedskab kan du forfremme en sekundær region til primær på under 1 minut, hvilket gør løsningen velegnet til aktiv-passiv med en ambitiøs RTO. De sekundære regioner kan også betjene læsetrafik med lav forsinkelse, hvilket giver et hybridmønster med aktiv-aktiv for læsninger og aktiv-passiv for skrivninger.
# Create Aurora Global Database
aws rds create-global-cluster \
--global-cluster-identifier my-global-db \
--engine aurora-postgresql \
--engine-version 14.5
# Add secondary region
aws rds create-db-cluster \
--db-cluster-identifier secondary-cluster \
--global-cluster-identifier my-global-db \
--engine aurora-postgresql \
--region eu-west-1Route 53-sundhedstjek til failover
Failover på tværs af flere regioner afhænger af Route 53-sundhedstjek til at registrere regionale fejl. Sundhedstjek kan overvåge et slutpunkt (HTTP/HTTPS/TCP), en CloudWatch-alarm eller være beregnet ud fra andre sundhedstjek. Route 53 forespørger løbende dine slutpunkter fra flere placeringer over hele verden. Når et tjek mislykkes, holder Route 53 automatisk op med at returnere posterne for den pågældende region og omdirigerer trafikken til sunde regioner inden for DNS TTL-perioden.
# Create Route 53 health check
aws route53 create-health-check \
--caller-reference unique-ref-001 \
--health-check-config '{
"Type": "HTTPS",
"FullyQualifiedDomainName": "app.us-east-1.example.com",
"Port": 443,
"ResourcePath": "/health",
"RequestInterval": 30,
"FailureThreshold": 3
}'Global Accelerator til aktiv-aktiv
AWS Global Accelerator leverer to statiske Anycast-IP-adresser, der dirigerer trafik gennem AWS's globale netværk til det optimale slutpunkt. I modsætning til Route 53-DNS-failover, som afhænger af TTL, registrerer Global Accelerator fejl i slutpunkter inden for 1-3 sekunder og omdirigerer straks trafikken — meget hurtigere end DNS-spredning. Brug Global Accelerator, når du har brug for failover på under et sekund, konsistente IP-adresser til hvidlistning, eller når TTL-baseret DNS-dirigering er for langsom til din RTO.
# Create Global Accelerator
aws globalaccelerator create-accelerator \
--name my-accelerator \
--ip-address-type IPV4
# Add endpoints in multiple regions
aws globalaccelerator create-endpoint-group \
--listener-arn arn:aws:globalaccelerator::123:accelerator/xxx/listener/yyy \
--endpoint-group-region us-east-1 \
--endpoint-configurations EndpointId=alb-us-east-1-arn,Weight=100Konfliktløsning i aktiv-aktiv
Aktiv-aktiv-arkitekturer på tværs af flere regioner står over for en grundlæggende udfordring: skrivekonflikter. Hvis to regioner opdaterer den samme post samtidigt, hvilken opdatering vinder så? DynamoDB Global Tables bruger seneste skrivning vinder. Strategier til konfliktløsning på applikationsniveau omfatter: event sourcing (tilføjelsesbaserede logge med CRDT-fletning), versionering (afvis skrivninger med forældede versionsnumre) eller partitionerede skrivninger (hver region ejer et shard af dataene og skriver kun til sit eget shard). Design din datamodel, så skrivekonflikter på tværs af regioner minimeres.
# DynamoDB conditional write to prevent conflicts
aws dynamodb update-item \
--table-name Orders \
--key '{"orderId":{"S":"ord-123"}}' \
--update-expression 'SET #s = :newStatus' \
--condition-expression '#v = :expectedVersion' \
--expression-attribute-names '{"#s":"status","#v":"version"}' \
--expression-attribute-values '{":newStatus":{"S":"shipped"},":expectedVersion":{"N":"1"}}'Omkostninger og driftsmæssig kompleksitet
Arkitekturer på tværs af flere regioner øger omkostningerne og kompleksiteten betydeligt. Du betaler for ressourcer i flere regioner, omkostninger til datareplikering (dataoverførsel på tværs af regioner), omkostninger til sundhedstjek og har ofte brug for dublerede driftsværktøjer i hver region. Aktiv-passiv er mere omkostningseffektivt, fordi standby-miljøet kører med reduceret kapacitet. Aktiv-aktiv er dyrest, men giver den bedste brugeroplevelse og RTO. Afvej altid omkostningerne mod forretningsværdien af yderligere regional robusthed.
# Key costs in multi-region architecture:
# - EC2/RDS in each region: full compute costs
# - Cross-region data transfer: ~$0.02/GB
# - Route 53 health checks: ~$0.50/check/month
# - Global Accelerator: $0.025/hour + data transfer
# - DynamoDB Global Table replication: per-write charges per region
# - Aurora Global Database: storage replicated to all regionsVælg det rigtige mønster på tværs af flere regioner
Vælg dit mønster på tværs af flere regioner ud fra forretningskravene: Hvis RTO > 1 time, og omkostningerne har højeste prioritet, skal du bruge Backup og gendannelse til en anden region. Hvis RTO er minutter, skal du bruge aktiv-passiv med varm standby. Hvis RTO < 1 minut, og brugerne er globalt distribuerede, skal du bruge aktiv-aktiv. Tag højde for regulatoriske krav — nogle brancher kræver, at data forbliver i bestemte regioner, hvilket kan begrænse dine muligheder for replikering. Dokumentér din arkitekturbeslutning med en tydelig beskrivelse af afvejningerne.
# Decision matrix:
# RTO > 1 hour, RPO > 1 hour: Backup & Restore
# RTO ~minutes, RPO ~minutes: Active-Passive (Warm Standby)
# RTO < 1 minute, RPO ~0: Active-Active
# Key services for each:
# Backup & Restore: AWS Backup + S3 CRR
# Active-Passive: Aurora Global DB + Route 53 failover
# Active-Active: DynamoDB Global Tables + Global AcceleratorHurtigt tjek
Test din forståelse af begreberne fra AWS Solutions Architect (SAA-C03) i denne lektion.
Opsummering af lektionen
I denne lektion har du lært, at aktiv-passiv kører en standby-region, der aktiveres ved fejl, at aktiv-aktiv betjener trafik fra flere regioner samtidigt, og at DynamoDB Global Tables og Aurora Global Database er centrale tjenester til datareplikering på tværs af flere regioner. Route 53-sundhedstjek og Global Accelerator håndterer beslutninger om trafikdirigering. Nu ser vi nærmere på sundhedstjek, kredsløbsafbrydere og logik til nye forsøg.
Lær AWS Solutions Architect med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Multi-Region Active-Active og Active-Passive” gratis?
Ja — alle 3 lektioner i læringssporet AWS Solutions Architect, inklusive “Multi-Region Active-Active og Active-Passive”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. AWS Solutions Architect-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Multi-Region Active-Active og Active-Passive”?
Dirigér trafik til flere Regions samtidigt med Route 53-latensrouting, eller skift over til en varm standby med failover baseret på tilstandstjek Du øver dig i AWS Solutions Architect med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på AWS Solutions Architect?
Der kræves ingen tidligere erfaring. AWS Solutions Architect på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Multi-Region Active-Active og Active-Passive”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne AWS Solutions Architect-lektion?
Ja. Alle AWS Solutions Architect-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Høj tilgængelighed kontra fejltolerance: Definitioner og afvejninger
- Multi-AZ-mønstre for tilstandsholdende tjenester
- Multi-Region Active-Active og Active-Passive
- Tilstandstjek, circuit breakers og retry-logik