Więcej baz danych w AWS
RDS, Aurora i DynamoDB to główni gracze, ale AWS ma znacznie więcej usług bazodanowych. Każda jest zoptymalizowana pod konkretny typ obciążenia. Na egzaminie Cloud Practitioner musisz wiedzieć, do czego służy każda z nich i kiedy ją wybrać.
Potraktuj tę lekcję jak katalog: przy każdej usłudze wyjaśniam, do czego służy, kiedy ją wybrać i jakie słowa kluczowe na egzaminie wskazują na tę usługę.
Amazon ElastiCache
ElastiCache to zarządzane bazy danych in-memory (działające w pamięci RAM). Dwa silniki do wyboru: Redis i Memcached.
Po co baza w pamięci RAM? Bo jest ekstremalnie szybka. Dysk SSD daje milisekundy, RAM daje sub-milisekundową latencję (mikrosekundy). Idealna jako cache (pamięć podręczna) przed bazą główną.
Typowy wzorzec: aplikacja sprawdza cache (ElastiCache), jeśli dane tam są (cache hit), zwraca natychmiast. Jeśli nie ma (cache miss), pobiera z bazy głównej (np. RDS), zapisuje w cache i zwraca.
| Cecha | Redis | Memcached |
|---|---|---|
| Struktury danych | Zaawansowane (listy, sety, sorted sets, hash) | Proste (klucz-wartość) |
| Persistence (trwałość) | Tak (dane przetrwają restart) | Nie (dane znikają po restarcie) |
| Replikacja | Tak (Read Replicas) | Nie |
| Multi-AZ failover | Tak | Nie |
| Pub/Sub messaging | Tak | Nie |
| Wielowątkowy | Nie (single-threaded) | Tak (multi-threaded) |
| Kiedy wybrać? | Gdy potrzebujesz trwałości, replikacji lub zaawansowanych struktur | Gdy potrzebujesz prostego cache z wielowątkowością |
Sklep internetowy ma bazę RDS PostgreSQL z katalogiem 100,000 produktów. Strona główna wyświetla „Popularne produkty" i „Ostatnio oglądane". Za każdym razem odpytuje bazę, co powoduje 500ms latencję na stronę.
Rozwiązanie: ElastiCache Redis jako warstwa cache. Popularne produkty i sesje użytkowników (ostatnio oglądane) są cachowane w Redis. Pierwszy odczyt idzie do RDS (500ms), ale kolejne odczyty trafiają do cache (poniżej 1ms). Obciążenie RDS spada o 80%, strona ładuje się 10x szybciej.
Amazon Redshift
Redshift to hurtownia danych (data warehouse) zoptymalizowana pod analitykę. To nie jest baza do obsługi transakcji (OLTP) jak RDS. To baza do analizowania ogromnych zbiorów danych (OLAP).
Kluczowe cechy:
- Bazuje na PostgreSQL (ale nie jest standardowym PostgreSQL, nie wszystkie funkcje działają)
- Przechowuje dane kolumnowo (columnar storage), co przyspiesza zapytania analityczne
- Skaluje się do petabajtów danych
- Obsługuje zapytania SQL, więc analitycy mogą używać znanych narzędzi BI
- Redshift Spectrum pozwala odpytywać dane bezpośrednio w S3 bez ładowania ich do Redshift
- Redshift Serverless pozwala uruchomić hurtownię bez zarządzania klastrem
Amazon Neptune
Neptune to zarządzana baza grafowa (graph database). Przechowuje dane jako węzły (nodes) i krawędzie (edges/relationships) zamiast tabel.
Kiedy baza grafowa ma sens? Gdy relacje między danymi są ważniejsze niż same dane:
- Social networks - kto kogo obserwuje, wspólni znajomi, rekomendacje
- Fraud detection - powiązania między podejrzanymi transakcjami i kontami
- Knowledge graphs - grafy wiedzy (Wikipedia, rekomendacje produktów)
- Network management - mapa infrastruktury sieciowej
Amazon DocumentDB
DocumentDB to zarządzana baza dokumentowa kompatybilna z MongoDB. Przechowuje dane jako dokumenty JSON.
Dlaczego nie po prostu MongoDB na EC2? Bo DocumentDB to managed service: automatyczne backupy, patching, skalowanie storage do 64 TB, replikacja w 3 AZ. Jeśli już używasz MongoDB i chcesz managed wersję w AWS, DocumentDB jest naturalnym wyborem.
Amazon QLDB (Quantum Ledger Database)
QLDB to baza ledger (księga) z kryptograficznie weryfikowalnym dziennikiem zmian. Każda zmiana jest zapisywana w immutable (niezmienialnym) logu, a integralność danych jest zabezpieczona kryptograficznie.
Przypadki użycia:
- Systemy finansowe - historia transakcji, która nie może być zmieniona
- Supply chain - śledzenie produktu od producenta do klienta
- Rejestry - ewidencja zmian w dokumentach, licencjach, certyfikatach
Amazon Timestream
Timestream to baza do danych szeregów czasowych (time series). Zoptymalizowana do przechowywania i analizowania danych z timestampem.
Przypadki użycia:
- IoT - dane z sensorów (temperatura, wilgotność, ciśnienie) co sekundę
- DevOps monitoring - metryki aplikacji i infrastruktury
- Analityka real-time - clickstream, logi aktywności użytkowników
Timestream automatycznie przenosi stare dane z pamięci (hot storage) na dysk (cold storage), optymalizując koszty.
Amazon Keyspaces
Keyspaces to zarządzane Apache Cassandra. Serverless, kompatybilne z Cassandra Query Language (CQL).
Kiedy Keyspaces? Gdy masz istniejące obciążenia Cassandra i chcesz managed service w AWS, lub gdy potrzebujesz bazy wide-column z dużą skalowalnością.
Oto szybka ściągawka: typ obciążenia i odpowiednia usługa:
- Relacyjna (SQL, ACID) → RDS, Aurora
- Klucz-wartość, NoSQL, ogromna skala → DynamoDB
- In-memory cache → ElastiCache (Redis/Memcached)
- In-memory cache dla DynamoDB → DAX
- Data warehouse, analityka (OLAP) → Redshift
- Graf, relacje między danymi → Neptune
- Dokumenty JSON, kompatybilność z MongoDB → DocumentDB
- Immutable ledger, audit trail → QLDB
- Time series, IoT, metryki → Timestream
- Wide column, kompatybilność z Cassandra → Keyspaces
- ElastiCache (Redis/Memcached) to in-memory cache z sub-milisekundową latencją, idealny jako warstwa cache przed RDS
- Redshift to hurtownia danych (OLAP) do analityki na petabajtach, z kolumnowym storage
- Neptune to baza grafowa do silnie powiązanych danych (social networks, fraud detection)
- DocumentDB to managed MongoDB do obciążeń dokumentowych (JSON)
- QLDB to immutable ledger z kryptograficznie weryfikowalnym dziennikiem zmian
- Timestream to baza time series do IoT i metryk z automatycznym tiering storage
- Keyspaces to managed Apache Cassandra
Firma chce analizować dane sprzedażowe z ostatnich 5 lat (petabajty danych) za pomocą zapytań SQL. Jaka usługa jest najlepsza?
Aplikacja potrzebuje bazy danych do śledzenia relacji między użytkownikami w sieci społecznościowej. Który serwis wybierzesz?
System bankowy potrzebuje niezmienialnego dziennika wszystkich transakcji, kryptograficznie weryfikowalnego. Co wybierzesz?