Amazon MemoryDB
Database Cloud Practitioner Solutions Architect Associate

Amazon MemoryDB

Amazon MemoryDB for Redis

Trwała baza in-memory kompatybilna z Redis. Mikrosekundowe odczyty, jednomilisekundowe zapisy i pełna trwałość danych - używaj jako główną bazę danych, nie tylko cache.

Amazon MemoryDB for Redis to w pełni zarządzana, trwała baza danych in-memory kompatybilna z Redis. W przeciwieństwie do ElastiCache (który jest cache), MemoryDB przechowuje dane trwale - dzięki replikacji Multi-AZ i transaction log. Możesz go używać jako główną bazę danych, a nie tylko warstwę cache.

MemoryDB oferuje mikrosekundowe opóźnienia odczytów i jednomilisekundowe zapisy. Jest w pełni kompatybilny z Redis - istniejące aplikacje i sterowniki Redis działają bez zmian. Idealny gdy potrzebujesz zarówno ekstremalnej wydajności, jak i trwałości danych.

Czy wiesz, ze...

Amazon MemoryDB powstał, bo wielu klientów AWS używało ElastiCache jako "głównej bazy danych" mimo braku gwarancji trwałości. AWS zaprojektował MemoryDB od zera z trwałym transaction log, zachowując kompatybilność z Redis. Rezultat: ta sama wydajność in-memory (mikrosekundy), ale z trwałością porównywalną do tradycyjnych baz danych. To jedyna usługa Redis w chmurze oferująca jednocześnie trwałość Multi-AZ i mikrosekundowe odczyty.

Pro Tip

Jeśli używasz ElastiCache + RDS razem (cache + baza danych), rozważ zamianę obu na sam MemoryDB. Upraszczasz architekturę (jedna baza zamiast dwóch), eliminujesz problem cache invalidation i zyskujesz lepszą wydajność. Ale pamiętaj - MemoryDB przechowuje wszystko w RAM, więc koszt za GB jest wyższy niż RDS. Sprawdź czy Twoje dane zmieszczą się w budżecie.

Amazon MemoryDB for Redis to w pelni zarzadzana, trwala baza danych in-memory kompatybilna z Redis. W przeciwienstwie do ElastiCache, MemoryDB gwarantuje trwalosc danych dzieki rozproszonemu logowi transakcyjnemu w wielu Availability Zones. Laczy mikrosekundowe odczyty z pelna trwaloscia.

1

Tworzenie klastra MemoryDB

Klaster sklada sie z shardow (1-500), kazdy shard ma primary node i do 5 replik. Wybierasz typ instancji (db.r6g, db.r7g - memory optimized, Graviton). Definiujesz subnet group (subnety w roznych AZ) i security group. Caly klaster jest w jednym VPC.

2

Trwalosc przez Multi-AZ Transaction Log

Kazdy zapis jest synchronicznie replikowany do rozproszonego transaction logu w wielu AZ przed potwierdzeniem klientowi. To gwarantuje, ze dane przezyja awarie noda, calej AZ, a nawet restart calego klastra. W przeciwienstwie do ElastiCache (ktory jest cache i moze stracic dane), MemoryDB jest trwala baza danych.

3

Wydajnosc odczytow i zapisow

Odczyty z primary i replik maja latency ponizej 500 mikrosekund. Zapisy sa nieco wolniejsze (single-digit milisekundy) ze wzgledu na synchroniczna replikacje do transaction logu. Throughput skaluje sie liniowo z liczba shardow - dodajesz shardy online bez downtime. Kazdy shard obsluguje do 25,000 requests/s.

4

Kompatybilnosc z Redis

MemoryDB implementuje Redis 6.2 i 7.0. Obsluguje wszystkie struktury danych Redis: strings, hashes, lists, sets, sorted sets, streams, HyperLogLog. Obsluguje klasterowy tryb Redis (hash sloty, MOVED redirects). Istniejace aplikacje Redis lacza sie bez zmian w kodzie - wystarczy zmienic endpoint.

5

Snapshoty i odtwarzanie

Automatyczne dzienne snapshoty (retencja 1-35 dni) plus snapshoty on-demand. Snapshot to pelny obraz danych w formacie RDB. Mozesz odtworzyc klaster z snapshota do dowolnego punktu w czasie. Snapshoty moga byc kopiowane miedzy regionami. Eksport snapshota do S3 umozliwia analize offline.

6

Skalowanie i resharding online

Skalowanie horyzontalne: dodajesz shardy (scale out) lub usuwasz (scale in) bez downtime. Dane sa automatycznie rebalansowane miedzy shardami. Skalowanie wertykalne: zmieniasz typ instancji (np. z r6g.large na r6g.xlarge) z rolling update - repliki sa aktualizowane najpierw, potem failover primary.

Praktyczne wskazowki do uzycia MemoryDB - od wyboru miedzy MemoryDB a ElastiCache po wzorce architektoniczne i optymalizacje.

MemoryDB vs ElastiCache - kiedy co wybrac

ElastiCache: cache warstwy (dane moga byc odtworzone ze zrodla), najnizsza mozliwa latency, koszt nizszy. MemoryDB: primary database (dane musza przetrwac awarie), sesje uzytkownikow, koszyk zakupowy, leaderboardy, real-time inventory. Regula: jezeli utrata danych wymaga przebudowy ze zrodla - ElastiCache. Jezeli utrata danych = utrata danych biznesowych - MemoryDB.

Poczatkujacy

Redis Streams jako trwaly message broker

MemoryDB z Redis Streams to trwaly broker wiadomosci z mikrosekundowa latency. XADD dodaje wiadomosci, XREADGROUP obsluguje consumer groups z potwierdzeniami (XACK). W przeciwienstwie do ElastiCache, wiadomosci w MemoryDB przezyja restart nodow. Idealny do event sourcing, real-time analytics i communication miedzy mikroserwisami.

Zaawansowany

Dobor rozmiaru instancji - RAM to klucz

MemoryDB trzyma 100% danych w RAM. Oblicz: rozmiar danych * 1.5 (overhead Redis) * 1.2 (bufor na peak). Dla 10 GB danych potrzebujesz min. 18 GB RAM. Monitoruj metryki BytesUsedForMemoryDB i DatabaseMemoryUsagePercentage. Powyzej 80% uzycia RAM - skaluj (wiecej shardow lub wieksze instancje).

Poczatkujacy

Wzorzec session store z TTL

MemoryDB jako session store: SET session:{id} {data} EX 3600 (wygasniecie po godzinie). Trwalosc gwarantuje, ze sesje przezyja restart infrastruktury. Uzywaj hash type dla zlozonych sesji: HSET session:{id} field value. Monitoruj eviction metryki - jezeli widzisz evictions, potrzebujesz wiecej RAM.

Poczatkujacy

Migracja z samodzielnego Redis do MemoryDB

Uzyj snapshota RDB: BGSAVE na istniejacym Redis, upload RDB do S3, stworz klaster MemoryDB z seed z S3. Dla migracji online: skonfiguruj istniejacy Redis jako source i uzyj replikacji do MemoryDB. Po synchronizacji przejdz na nowy endpoint. Testuj kompatybilnosc komend - MemoryDB nie obsluguje niektorych administracyjnych komend Redis.

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon MemoryDB bezposrednio w konsoli AWS.

Do czego sluzy Amazon MemoryDB?

01

Sesje użytkowników i koszyki

Przechowuj sesje i koszyki zakupowe z mikrosekundowym dostępem. Dane są trwałe - nie znikną po awarii węzła, w przeciwieństwie do zwykłego cache.

02

Leaderboardy i rankingi w czasie rzeczywistym

Sorted Sets w Redis idealnie modelują rankingi. MemoryDB daje pewność, że wyniki nie znikną - trwałe przechowywanie z wydajnością in-memory.

03

Kolejki i strumieniowanie zdarzeń

Redis Streams jako trwała kolejka wiadomości z mikrosekundowymi opóźnieniami. Alternatywa dla SQS gdy liczy się minimalne latency.

04

Baza danych dla mikroserwisów

Użyj MemoryDB jako główną bazę dla mikroserwisów wymagających ultra-niskich opóźnień. Struktury danych Redis (hashes, lists, sets) zastępują tabele SQL.

Co musisz wiedziec?

Trwałość (Durability)

MemoryDB zapisuje każdą operację do rozproszonego transaction log w wielu AZ. Dane przetrwają awarię węzła, restarty, a nawet awarię całej AZ.

Multi-AZ Transaction Log

Dziennik transakcji replikowany synchronicznie do wielu Availability Zones. Gwarantuje trwałość danych bez utraty wydajności.

Cluster Mode

Tryb, w którym dane są partycjonowane (shardowane) na wiele węzłów. Pozwala skalować pojemność i przepustowość horyzontalnie.

Kompatybilność z Redis

MemoryDB obsługuje API Redis - te same komendy, struktury danych i sterowniki. Migracja z Redis lub ElastiCache jest bezproblemowa.

Snapshot

Pełna kopia danych w danym momencie, przechowywana w S3. Możesz tworzyć snapshoty ręcznie lub automatycznie (daily backup).

Architektura: Real-time leaderboard i sesje z MemoryDB

Architektura aplikacji gamingowej z MemoryDB jako trwala baza danych in-memory. Sorted sets obsluguja rankingi z mikrosekundowa latency, a trwalosc gwarantuje, ze wyniki graczy nigdy nie zostana utracone.

Gracze (Mobile/Web) Wysylaja wyniki gier i sprawdzaja rankingi
HTTPS REST
API Gateway + Lambda
API Gateway + Lambda Serverless API obslugujace requesty graczy, autentykacja JWT
Redis protocol
Amazon MemoryDB
Amazon MemoryDB Sorted sets na rankingi, hashes na sesje, streams na eventy, trwalosc Multi-AZ
Player profiles
Amazon DynamoDB
Amazon DynamoDB Trwaly storage profili graczy i historii gier
Ranking events
Amazon SNS
Amazon SNS Push notyfikacje o zmianach pozycji w rankingu
ZADD leaderboard:{game} {score} {player_id} i ZREVRANGE leaderboard:{game} 0 99 WITHSCORES daje top-100 graczy w mikrosekundach - niemozliwe do osiagniecia z tradycyjna baza.
Uzyj osobnych shardow dla roznych gier/regionow - hash tag {game:region} w kluczu kieruje powiazane dane na ten sam shard, umozliwiajac atomowe operacje.
Monitoruj ReplicationLag - powyzej 1 sekundy oznacza, ze repliki nie nadazaja i odczyty moga byc nieaktualne.

Ile kosztuje Amazon MemoryDB?

Węzły On-Demand

Płacisz za godzinę działania węzła. Cena zależy od typu instancji (ilość pamięci i CPU).

db.r6g.large (13.07 GB): ~$0.335/godz. (~$245/mies.)

Dane zapisane

Opłata za GB danych przechowywanych w MemoryDB (poza kosztem węzła).

~$0.20/GB/mies. za dane w transaction log

Snapshot storage

Snapshoty do rozmiaru pamięci klastra są bezpłatne. Dodatkowy storage jest płatny.

Dodatkowy snapshot: ~$0.085/GB/mies.

Transfer danych

Transfer w ramach tego samego AZ jest bezpłatny. Transfer między AZ i do internetu jest płatny.

Między AZ: ~$0.01/GB, do internetu: od $0.09/GB

Przyklady AWS CLI

Utwórz klaster MemoryDB

Tworzy nowy klaster MemoryDB z 2 shardami

aws memorydb create-cluster \
 --cluster-name moj-memorydb \
 --node-type db.r6g.large \
 --num-shards 2 \
 --num-replicas-per-shard 1 \
 --acl-name open-access \
 --subnet-group-name moja-subnet-group

Sprawdź status klastra

Lista klastrów MemoryDB z ich statusem

aws memorydb describe-clusters \
 --query "Clusters[].{Name:Name,Status:Status,Shards:NumberOfShards,NodeType:NodeType}" \
 --output table

Utwórz snapshot

Ręczny snapshot klastra MemoryDB

aws memorydb create-snapshot \
 --cluster-name moj-memorydb \
 --snapshot-name moj-memorydb-snap-2024

Zaktualizuj klaster

Zmień typ węzła klastra (vertical scaling)

aws memorydb update-cluster \
 --cluster-name moj-memorydb \
 --node-type db.r6g.xlarge

Quiz: Amazon MemoryDB

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 4

1. Czym MemoryDB różni się od ElastiCache for Redis?

2. Jakie opóźnienia odczytów oferuje MemoryDB?

3. Czy MemoryDB może zastąpić tradycyjną bazę danych?

4. Co to jest Cluster Mode w MemoryDB?

Chcesz poznac Amazon MemoryDB w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon MemoryDB krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy