Aktywna-aktywna i aktywna-pasywna architektura wieloregionowa
Kierować ruch jednocześnie do wielu Regionów za pomocą routingu Route 53 opartego na opóźnieniu lub przełączać go na gotowy serwer zapasowy dzięki przełączaniu awaryjnemu z kontrolą stanu.
Aktywna-aktywna i aktywna-pasywna architektura wieloregionowa to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Dlaczego architektura multi-region?
Multi-AZ chroni przed awariami pojedynczej strefy AZ, ale cały region AWS może stać się niedostępny podczas katastrof na dużą skalę, poważnych awarii lub w wyniku wymogów regulacyjnych. Architektury multi-region rozwiązują ten problem, uruchamiając obciążenia w co najmniej dwóch geograficznie oddzielonych regionach. Istnieją dwa główne wzorce: active-passive (jeden region obsługuje ruch, a drugi oczekuje w trybie gotowości) oraz active-active (oba regiony jednocześnie obsługują ruch).
Active-passive: wzorzec gorącej rezerwy
W konfiguracji multi-region typu active-passive region główny obsługuje cały ruch produkcyjny. Region pomocniczy uruchamia pomniejszoną, ale funkcjonalną kopię środowiska, która pozostaje aktywna i gotowa do użycia. Dane są stale replikowane z regionu głównego do pomocniczego. Gdy region główny ulegnie awarii, region pomocniczy jest aktywowany za pomocą routingu przełączania awaryjnego Route 53. Ten wzorzec jest tańszy niż active-active, ale zapewnia wyższe RTO (czas potrzebny na aktywację i skalowanie środowiska zapasowego).
# 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"
}
}]
}'Active-active: ruch w obu regionach
W konfiguracji active-active oba regiony jednocześnie obsługują ruch produkcyjny. Route 53 z routingiem opartym na opóźnieniach lub routingiem ważonym kieruje użytkowników do najbliższego lub najbardziej odpowiedniego regionu. Gdy jeden region ulegnie awarii, kontrole stanu Route 53 wykrywają awarię i kierują cały ruch do zdrowego regionu. Active-active zapewnia najlepsze RTO (niemal zerowe), zmniejsza opóźnienia dla użytkowników rozproszonych globalnie i zwiększa przepustowość dzięki rozłożeniu obciążenia między regiony.
# 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"}
}
}
]
}'Replikacja danych między regionami
Najtrudniejszą częścią architektury multi-region jest utrzymanie spójności danych między regionami. Najważniejsze narzędzia to: S3 Cross-Region Replication (CRR), które asynchronicznie replikuje obiekty S3 do zasobnika w innym regionie; DynamoDB Global Tables, które zapewniają replikację multi-master między regionami z eventual consistency; oraz Aurora Global Database, która replikuje dane z jednego regionu głównego do maksymalnie pięciu regionów pomocniczych z opóźnieniem poniżej 1 sekundy. Każdy mechanizm replikacji ma inne gwarancje spójności i charakterystykę opóźnień.
# 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 dla active-active
DynamoDB Global Tables umożliwia prawdziwą replikację active-active, multi-region i multi-master. Aplikacja może zapisywać dane w DynamoDB w dowolnym regionie, a zmiany są zazwyczaj replikowane do wszystkich pozostałych regionów w ciągu 1 sekundy. Rozwiązywanie konfliktów odbywa się zgodnie z zasadą last-writer-wins, na podstawie znaczników czasu. Dzięki temu Global Tables idealnie nadaje się do globalnie rozproszonych aplikacji, takich jak rankingi gier, profile użytkowników i magazyny sesji, w których kluczowe znaczenie mają odczyty i zapisy z małym opóźnieniem lokalnym.
# 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 obejmuje wiele regionów AWS: jeden region główny obsługuje zapisy, a maksymalnie pięć regionów pomocniczych obsługuje odczyty przy opóźnieniu replikacji poniżej 1 sekundy. Na potrzeby DR można awansować region pomocniczy do roli głównego w czasie krótszym niż 1 minuta, dzięki czemu rozwiązanie nadaje się do konfiguracji active-passive z rygorystycznym RTO. Regiony pomocnicze mogą także obsługiwać odczyty z małym opóźnieniem, co tworzy hybrydowy wzorzec active-active dla odczytów i active-passive dla zapisów.
# 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-1Kontrole stanu Route 53 na potrzeby przełączania awaryjnego
Przełączanie awaryjne multi-region opiera się na kontrolach stanu Route 53, które wykrywają awarie regionów. Kontrole stanu mogą monitorować punkt końcowy (HTTP/HTTPS/TCP), alarm CloudWatch albo być obliczane na podstawie innych kontroli stanu. Route 53 nieprzerwanie odpyta Państwa punkty końcowe z wielu lokalizacji na całym świecie. Gdy kontrola zakończy się niepowodzeniem, Route 53 automatycznie przestaje zwracać rekordy tego regionu i w czasie określonym przez TTL DNS przekierowuje ruch do zdrowych regionów.
# 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 dla active-active
AWS Global Accelerator udostępnia dwa statyczne adresy IP Anycast, które kierują ruch przez globalną sieć AWS do optymalnego punktu końcowego. W przeciwieństwie do przełączania awaryjnego DNS w Route 53, które zależy od TTL, Global Accelerator wykrywa awarie punktów końcowych w ciągu 1–3 sekund i natychmiast przekierowuje ruch — znacznie szybciej niż propagacja DNS. Należy użyć Global Accelerator, gdy wymagane jest przełączanie awaryjne w czasie poniżej sekundy, stałe adresy IP na potrzeby białych list lub gdy routing oparty na TTL DNS jest zbyt wolny dla zakładanego 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=100Rozwiązywanie konfliktów w active-active
Architektury multi-region active-active mierzą się z fundamentalnym wyzwaniem: konfliktami zapisów. Jeśli dwa regiony jednocześnie zaktualizują ten sam rekord, która aktualizacja powinna zwyciężyć? DynamoDB Global Tables korzysta z zasady last-writer-wins. Strategie rozwiązywania konfliktów na poziomie aplikacji obejmują: event sourcing (dzienniki tylko do dopisywania z łączeniem CRDT), wersjonowanie (odrzucanie zapisów z nieaktualnymi numerami wersji) lub zapisy partycjonowane (każdy region jest właścicielem fragmentu danych i zapisuje wyłącznie w swoim fragmencie). Należy projektować model danych tak, aby minimalizować konflikty zapisów między regionami.
# 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"}}'Koszty i złożoność operacyjna
Architektury multi-region znacząco zwiększają koszty i złożoność. Płacą Państwo za zasoby w wielu regionach, koszty replikacji danych (transfer danych między regionami), koszty kontroli stanu, a często także za powielone narzędzia operacyjne w każdym regionie. Active-passive jest bardziej opłacalne, ponieważ środowisko zapasowe działa ze zmniejszoną przepustowością. Active-active kosztuje najwięcej, ale zapewnia najlepsze doświadczenia użytkowników i RTO. Zawsze należy zestawić koszt z wartością biznesową dodatkowej odporności regionalnej.
# 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 regionsWybór właściwego wzorca multi-region
Wzorzec multi-region należy wybrać na podstawie wymagań biznesowych: jeśli RTO > 1 godzina, a priorytetem jest koszt, należy użyć Backup and Restore w innym regionie. Jeśli RTO wynosi minuty, należy użyć active-passive z gorącą rezerwą. Jeśli RTO < 1 minuta, a użytkownicy są rozproszeni globalnie, należy użyć active-active. Należy uwzględnić wymagania regulacyjne — niektóre branże wymagają przechowywania danych w określonych regionach, co może ograniczać dostępne opcje replikacji. Decyzję architektoniczną należy udokumentować, wyraźnie opisując kompromisy.
# 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 AcceleratorSzybkie sprawdzenie
Sprawdź swoją wiedzę na temat zagadnień AWS Solutions Architect (SAA-C03) z tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo następujące zagadnienia: active-passive uruchamia region zapasowy po wystąpieniu awarii, active-active jednocześnie obsługuje ruch z wielu regionów, a DynamoDB Global Tables i Aurora Global Database to kluczowe usługi replikacji danych między regionami. Kontrole stanu Route 53 i Global Accelerator obsługują decyzje dotyczące routingu ruchu. W następnej części omówimy kontrole stanu, circuit breakers i logikę ponawiania prób.
Często zadawane pytania
Czy lekcja „Aktywna-aktywna i aktywna-pasywna architektura wieloregionowa” jest bezpłatna?
Tak — pełny tekst „Aktywna-aktywna i aktywna-pasywna architektura wieloregionowa” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Co nauczysz się w „Aktywna-aktywna i aktywna-pasywna architektura wieloregionowa”?
Kierować ruch jednocześnie do wielu Regionów za pomocą routingu Route 53 opartego na opóźnieniu lub przełączać go na gotowy serwer zapasowy dzięki przełączaniu awaryjnemu z kontrolą stanu. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?
Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Aktywna-aktywna i aktywna-pasywna architektura wieloregionowa”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?
Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wysoka dostępność a tolerancja błędów: definicje i kompromisy
- Wzorce Multi-AZ dla usług stanowych
- Aktywna-aktywna i aktywna-pasywna architektura wieloregionowa
- Kontrole stanu, wyłączniki i logika ponawiania