0Pricing
Cloud & IT Cert Prep · Lekcja

Wzorce Multi-AZ dla usług stanowych

Stosować Multi-AZ w RDS, ElastiCache, EFS i ELB, aby wyeliminować pojedyncze punkty awarii w obrębie Regionu.

Wzorce Multi-AZ dla usług stanowych to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 2 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 usługi stanowe wymagają wielu stref AZ

Usługi stanowe — bazy danych, pamięci podręczne i systemy plików — są najtrudniejszymi komponentami do zapewnienia wysokiej dostępności, ponieważ przechowują dane, które muszą przetrwać awarie. Jeśli baza danych działająca w jednej strefie AZ ulegnie awarii, cała aplikacja traci swój magazyn danych. Odpowiedzią AWS są wdrożenia Multi-AZ, w których usługa utrzymuje synchroniczną lub niemal synchroniczną replikę w drugiej strefie dostępności, która może szybko przejąć działanie po awarii węzła głównego.

RDS Multi-AZ: synchroniczna replika zapasowa

RDS Multi-AZ utrzymuje synchroniczną replikę zapasową w innej strefie AZ. Każdy zapis w węźle głównym jest replikowany synchronicznie przed potwierdzeniem powodzenia operacji — oznacza to brak utraty danych (RPO=0), ale niewielki wzrost opóźnienia zapisu. Gdy węzeł główny ulegnie awarii, RDS automatycznie aktualizuje punkt końcowy DNS, aby wskazywał replikę zapasową; trwa to 60–120 sekund. Aplikacja musi jedynie ponownie połączyć się z tym samym punktem końcowym — nie są wymagane żadne zmiany w kodzie.

# 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

Architektura Aurora Multi-AZ

Amazon Aurora idzie o krok dalej niż Multi-AZ dzięki współdzielonej rozproszonej warstwie pamięci masowej, która automatycznie replikuje dane między trzema strefami AZ, tworząc sześć kopii. Instancje Aurora są bezstanowe — odczytują dane z tej współdzielonej pamięci masowej i zapisują je w niej. Gdy główna instancja Aurora obsługująca zapis ulegnie awarii, replika odczytu w innej strefie AZ zostaje awansowana do roli instancji zapisującej w czasie krótszym niż 30 sekund. Jest to szybsze niż przełączanie awaryjne RDS Multi-AZ, a dane są zawsze spójne między strefami AZ bez konieczności jawnej replikacji do instancji zapasowej.

# 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

Replikacja ElastiCache Multi-AZ

ElastiCache for Redis obsługuje Multi-AZ za pomocą grup replikacji. Węzeł główny przyjmuje operacje zapisu i asynchronicznie replikuje dane do replik odczytu w innych strefach AZ. Gdy węzeł główny ulegnie awarii, ElastiCache automatycznie awansuje jedną z replik do roli węzła głównego. W przypadku funkcji Redis cluster mode enabled dane są dzielone na fragmenty między wiele grup węzłów, z których każda ma własny węzeł główny i repliki rozmieszczone w różnych strefach AZ — zapewnia to zarówno wysoką dostępność, jak i skalowanie poziome.

# 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: natywna obsługa Multi-AZ

Amazon Elastic File System (EFS) natywnie obsługuje Multi-AZ — jest usługą regionalną, która przechowuje dane nadmiarowo w wielu strefach AZ w obrębie regionu. Należy utworzyć cele montowania w podsieci każdej strefy AZ, a instancje EC2 w dowolnej strefie AZ mogą zamontować system plików za pośrednictwem lokalnego celu montowania. Nie jest wymagana ręczna konfiguracja Multi-AZ. EFS zapewnia współdzieloną pamięć plikową POSIX, do której wiele instancji w różnych strefach AZ może uzyskiwać jednoczesny dostęp.

# 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

Równoważenie między strefami w Elastic Load Balancer

Elastic Load Balancers same obsługują Multi-AZ — ALB i NLB wdrażają węzły load balancera w każdej określonej strefie AZ. Przy włączonej funkcji cross-zone load balancing (domyślnej dla ALB) każdy węzeł load balancera rozdziela ruch równomiernie między wszystkie zarejestrowane cele we wszystkich strefach AZ, a nie tylko w swojej strefie. Dzięki temu nawet jeśli wszystkie instancje w jednej strefie AZ ulegną awarii, load balancer nadal obsługuje ruch za pośrednictwem instancji w pozostałych strefach AZ.

# 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

Wzorzec NAT Gateway Multi-AZ

Częstym błędem jest wdrożenie pojedynczego NAT Gateway w jednej strefie AZ, gdy podsieci prywatne w innych strefach AZ kierują przez niego ruch. Jeśli ta strefa AZ ulegnie awarii, wszystkie instancje prywatne tracą dostęp do Internetu. Prawidłowy wzorzec Multi-AZ polega na wdrożeniu jednej bramy NAT na strefę AZ i skonfigurowaniu prywatnej tablicy routingu każdej strefy AZ tak, aby kierowała trasę 0.0.0.0/0 przez własną bramę NAT. Eliminuje to bramę NAT jako pojedynczy punkt awarii między strefami AZ i zmniejsza koszty transferu danych między strefami 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 domyślnie

DynamoDB to w pełni zarządzana usługa, która automatycznie replikuje dane między trzema strefami AZ w obrębie regionu — nie trzeba ręcznie konfigurować Multi-AZ. Każdy zapis jest trwale przechowywany we wszystkich trzech strefach AZ, zanim zostanie zwrócony wynik powodzenia. DynamoDB od razu zapewnia faktyczną odporność na awarie na poziomie strefy AZ. Dlatego DynamoDB jest często zalecaną bazą danych, gdy pytanie egzaminacyjne kładzie nacisk na wysoką dostępność przy minimalnym nakładzie pracy operacyjnej.

RDS Proxy — szybsza obsługa połączeń

Podczas przełączania awaryjnego RDS Multi-AZ aplikacje utrzymujące trwałe połączenia z bazą danych mogą napotykać błędy, ponieważ zmienia się punkt końcowy. RDS Proxy działa między aplikacją a RDS i utrzymuje pulę połączeń z bazą danych. Podczas przełączania awaryjnego RDS Proxy automatycznie kieruje połączenia do nowej instancji głównej — zmniejszając wpływ przełączenia z 60–120 sekund do mniej niż 30 sekund w aplikacjach korzystających z punktu końcowego proxy. RDS Proxy pomaga także funkcjom Lambda, które tworzą wiele krótkotrwałych połączeń.

# 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

Tryby replikacji danych: synchroniczny i asynchroniczny

Zrozumienie trybów replikacji ma kluczowe znaczenie przy wyborze wzorców Multi-AZ. Replikacja synchroniczna (RDS Multi-AZ, EFS) zapewnia RPO=0, ponieważ każdy zapis jest potwierdzany w obu strefach AZ, zanim zostanie zwrócony wynik powodzenia. Kompromisem jest nieco większe opóźnienie zapisu. Replikacja asynchroniczna (repliki ElastiCache Redis, repliki odczytu RDS) zapewnia mniejsze opóźnienie zapisu, ale dopuszcza niewielkie opóźnienie replikacji — oznacza to, że w przypadku awarii instancji głównej przed ukończeniem replikacji część danych może zostać utracona.

# 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

Testowanie przełączania awaryjnego Multi-AZ

Należy regularnie testować przełączanie awaryjne Multi-AZ, aby zweryfikować założenia dotyczące RTO. W przypadku RDS można wywołać przełączenie awaryjne za pomocą opcji Reboot with failover w konsoli lub interfejsu CLI. Należy monitorować w CloudWatch metrykę FailedSQLServerAgentJobsCount oraz obserwować dzienniki aplikacji, aby sprawdzić, czy aplikacja pomyślnie nawiązuje połączenie ponownie. Należy udokumentować rzeczywisty czas przełączenia awaryjnego — może on różnić się od wartości podanych w dokumentacji AWS w zależności od klasy instancji i obciążenia.

# 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

Szybkie 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: RDS Multi-AZ korzysta z replikacji synchronicznej i automatycznego przełączania DNS, Aurora korzysta ze współdzielonej warstwy pamięci masowej w trzech strefach AZ, co przyspiesza przełączanie awaryjne, a EFS i DynamoDB natywnie obsługują Multi-AZ bez ręcznej konfiguracji. Należy wdrożyć jedną bramę NAT na strefę AZ, aby uniknąć pojedynczych punktów awarii między strefami AZ. W następnej części omówimy wzorce multi-region active-active i active-passive.

Często zadawane pytania

Czy lekcja „Wzorce Multi-AZ dla usług stanowych” jest bezpłatna?

Tak — pełny tekst „Wzorce Multi-AZ dla usług stanowych” 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 „Wzorce Multi-AZ dla usług stanowych”?

Stosować Multi-AZ w RDS, ElastiCache, EFS i ELB, aby wyeliminować pojedyncze punkty awarii w obrębie Regionu. Ć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 2 z 4.

Ile czasu zajmuje lekcja „Wzorce Multi-AZ dla usług stanowych”?

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

  1. Wysoka dostępność a tolerancja błędów: definicje i kompromisy
  2. Wzorce Multi-AZ dla usług stanowych
  3. Aktywna-aktywna i aktywna-pasywna architektura wieloregionowa
  4. Kontrole stanu, wyłączniki i logika ponawiania
← Powrót do Cloud & IT Cert Prep