Amazon DocumentDB
Database Cloud Practitioner Solutions Architect Associate

Amazon DocumentDB

Amazon DocumentDB (with MongoDB compatibility)

W pełni zarządzana baza dokumentowa kompatybilna z MongoDB. Przechowuj dokumenty JSON z elastycznym schematem, skaluj storage do 128 TB i korzystaj z do 15 replik do odczytu.

Amazon DocumentDB to szybka, skalowalna i wysoko dostępna baza dokumentowa, w pełni zarządzana przez AWS, kompatybilna z API i narzędziami MongoDB. Przechowuje dane jako dokumenty JSON z elastycznym schematem - nie musisz definiować struktury z góry, każdy dokument może mieć inne pola.

DocumentDB oddziela compute od storage - storage automatycznie rośnie do 128 TB bez przestojów. Możesz mieć do 15 replik do odczytu i korzystać z Global Clusters do replikacji między regionami. Jeśli używasz MongoDB i chcesz pozbyć się zarządzania infrastrukturą - DocumentDB to naturalna migracja.

Czy wiesz, ze...

Amazon DocumentDB nie używa pod spodem silnika MongoDB - AWS zbudował własny silnik bazy dokumentowej od zera, zaprojektowany specjalnie dla chmury. Warstwa storage jest oparta na tej samej technologii co Amazon Aurora, co daje 6-krotną replikację danych w 3 Availability Zones. Dzięki temu DocumentDB oferuje trwałość 99.999999999% (11 dziewiątek).

Pro Tip

Przy migracji z MongoDB do DocumentDB użyj AWS Database Migration Service (DMS) do replikacji danych w czasie rzeczywistym - zero downtime. Pamiętaj, że DocumentDB nie obsługuje 100% API MongoDB - sprawdź listę nieobsługiwanych funkcji (np. brak server-side JavaScript). Zawsze testuj aplikację na DocumentDB przed migracją produkcyjną.

Amazon DocumentDB to zarzadzana baza dokumentowa kompatybilna z MongoDB. Architektura oddziela compute (instancje) od storage (rozproszony wolumen). Tworzysz klaster z primary instancja (read/write) i do 15 replik (read), a storage automatycznie rosnie do 128 TB.

1

Tworzenie klastra DocumentDB

Klaster sklada sie z cluster endpoint (write), reader endpoint (read, load balanced) i instance endpoints. Wybierasz typ instancji (db.r5, db.r6g - memory optimized) i liczbe replik. Storage jest automatyczny - zaczyna od 10 GB i rosnie w przyrostach 10 GB do 128 TB bez przestojow.

2

Kompatybilnosc z MongoDB

DocumentDB implementuje protokol MongoDB 3.6, 4.0 i 5.0. Istniejace aplikacje MongoDB lacza sie standardowym connection stringiem (mongodb://). Obsluguje: CRUD, agregacje, indexy (compound, geospatial, text), transakcje ACID, change streams. Nie obsluguje: server-side JavaScript, $where, map-reduce. Wieksznosc aplikacji MongoDB dziala bez zmian.

3

Rozproszony storage (cluster volume)

Dane sa replikowane 6 razy w 3 Availability Zones. Zapis jest potwierdzony po zapisie do 4 z 6 kopii (quorum write). Odczyt wymaga 3 z 6 kopii (quorum read). System toleruje utrate calej AZ bez utraty danych i bez przerwy w dzialaniu. Storage jest automatycznie szyfrowany AES-256.

4

Repliki odczytowe i failover

Do 15 replik w roznych AZ obsluguje ruch odczytowy. Reader endpoint automatycznie rozklada odczyty miedzy dostepne repliki. Kazda replika ma priorytet failover (0-15). Przy awarii primary, replika z najwyzszym priorytetem zostaje promowana na nowa primary w ok. 30 sekund.

5

Change streams - reaguj na zmiany danych

Change streams umozliwiaja subskrypcje na zmiany (insert, update, delete) w kolekcji, bazie lub calym klastrze. Zmiany sa dostarczane w kolejnosci z gwarancja at-least-once delivery. Idealny do: synchronizacji z Elasticsearch, triggerowania Lambda, CDC (Change Data Capture) do data lake. Retencja change stream to 7 dni.

6

Backupy i Point-in-Time Recovery

Automatyczne ciycle backupy (retencja 1-35 dni) z point-in-time recovery do dowolnej sekundy w oknie retencji. Backupy sa inkrementalne i nie wplywaja na wydajnosc klastra. Mozesz klonowac klaster (szybka kopia bez kopiowania danych - copy-on-write) do testow lub analityki w minuty.

Wskazowki do produkcyjnego uzycia DocumentDB - od migracji z MongoDB po optymalizacje zapytan i kosztow.

Migracja z MongoDB - uzyj DMS lub mongodump/mongorestore

Dla migracji offline: mongodump z MongoDB, mongorestore do DocumentDB. Dla migracji online z minimalnym downtime: AWS DMS z CDC (Change Data Capture) - replikuje dane i nadaza z biezacymi zmianami. Przed migracja uruchom Amazon DocumentDB Compatibility Tool na swoim kodzie, aby wykryc nieobslugiwane operacje.

Zaawansowany

Indeksy - fundamentalny element wydajnosci

DocumentDB bez odpowiednich indeksow skanuje cala kolekcje (collection scan). Monitoruj wolne zapytania: db.setProfilingLevel(1, 100) loguje zapytania >100ms. Uzywaj explain() do analizy query plan. Twierdzenie: kazde zapytanie produkcyjne powinno uzywac indeksu. Compound index (A, B, C) obsluguje zapytania na A, (A,B), (A,B,C) ale nie (B,C).

Zaawansowany

Elastic Clusters - skalowanie horyzontalne

DocumentDB Elastic Clusters (od 2023) oferuja sharding - dzielenie danych miedzy wiele nodow po shard key. Obsluza miliony odczytow/zapisow na sekunde i petabajty danych. Wybor shard key jest krytyczny - musi rownomiernie dystrybulowac dane. Unikaj monotonicznych kluczy (timestamp, auto-increment) jako shard key.

Zaawansowany

Polaczenia - uzyj connection pooling

DocumentDB ma limit polaczen zalezny od typu instancji (np. db.r5.large = 1700). Aplikacja powinna uzywac connection pooling (domyslny pool w driverze MongoDB to 100). Monitoruj metryki DatabaseConnections i DatabaseConnectionsMax. Dla Lambda: uzywaj globalnego klienta poza handlerem, ustaw maxPoolSize=1 i serverSelectionTimeoutMS=5000.

Poczatkujacy

Optymalizacja kosztow - dobor instancji i replik

DocumentDB nalicza opaty za instancje (per godzina), storage (per GB), I/O (per milion). Dla dev/test uzyj db.t3.medium (burstable). Dla produkcji db.r6g.large (Graviton, 10% tanszy). Jesli wieksznosc to odczyty, dodaj repliki zamiast wiekszej primary. Rozwaaz DocumentDB Serverless dla zmiennego obciazenia - platisz za rzeczywiste zuzycie.

Poczatkujacy

Screenshoty z AWS Console

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

Do czego sluzy Amazon DocumentDB?

01

Zarządzanie profilami użytkowników

Przechowuj profile z różnymi polami dla każdego użytkownika. Elastyczny schemat JSON idealny do danych, które zmieniają się w czasie.

02

Katalogi produktów

Produkty mają różne atrybuty - buty mają rozmiar, laptopy mają RAM. Dokumenty JSON naturalnie modelują takie dane bez pustych kolumn.

03

Systemy zarządzania treścią (CMS)

Artykuły, komentarze, metadane - wszystko jako zagnieżdżone dokumenty JSON. Szybkie zapytania po dowolnych polach z indeksowaniem.

04

Aplikacje mobilne i IoT

Backend dla aplikacji generujących dane o różnej strukturze. Łatwa integracja z AWS Lambda i API Gateway.

Co musisz wiedziec?

Dokument JSON

Podstawowa jednostka danych w DocumentDB. Zagnieżdżona struktura klucz-wartość. Dokumenty w jednej kolekcji mogą mieć różne pola (elastyczny schemat).

Kolekcja (Collection)

Grupa dokumentów - odpowiednik tabeli w relacyjnej bazie danych. Nie wymaga zdefiniowania schematu z góry.

Kompatybilność z MongoDB

DocumentDB obsługuje API MongoDB 3.6, 4.0 i 5.0. Istniejące sterowniki i narzędzia MongoDB (mongosh, Compass) działają bez zmian.

Elastic Clusters

Tryb shardowania (partycjonowania) danych na wiele węzłów. Pozwala skalować do milionów odczytów/zapisów na sekundę i petabajtów danych.

Global Clusters

Replikacja bazy do maksymalnie 5 regionów AWS z opóźnieniem poniżej sekundy. Zapewnia disaster recovery i niskie latencje dla globalnych użytkowników.

Change Streams

Strumień zmian w czasie rzeczywistym. Reaguj na wstawienia, aktualizacje i usunięcia dokumentów - idealne do triggerów i synchronizacji.

Architektura: Platforma content management na DocumentDB

Architektura systemu CMS z DocumentDB jako glowna baza dokumentow. Elastyczny schemat dokumentowy idealnie pasuje do zroznicowanych typow tresci, a change streams napedzaja real-time synchronizacje.

Redaktorzy / API Tworza i edytuja tresci przez CMS lub REST API
HTTPS
Application Load Balancer
Application Load Balancer Rozdziela ruch do instancji aplikacji CMS
MongoDB protocol
Amazon DocumentDB
Amazon DocumentDB Klaster Multi-AZ, primary + 2 repliki, elastyczny schemat dokumentow
CDC events
Change Stream + Lambda
Change Stream + Lambda Reaguje na zmiany dokumentow, aktualizuje cache i indeks wyszukiwania
Index update
Amazon OpenSearch
Amazon OpenSearch Full-text search po tresciach CMS, synchronizowany przez change streams
Uzywaj DocumentDB clone do tworzenia srodowisk testowych z produkcyjnymi danymi - klonowanie jest niemal natychmiastowe i nie obciaza produkcji (copy-on-write).
Ustaw TTL index na kolekcjach z danymi tymczasowymi (sesje, cache) - DocumentDB automatycznie usunie wygasle dokumenty bez dodatkowej logiki aplikacji.
Reader endpoint z readPreference=secondaryPreferred odciaza primary od ciezkiego ruchu odczytowego, zostawiajac zasoby na zapisy.

Ile kosztuje Amazon DocumentDB?

Instancje On-Demand

Płacisz za godzinę działania instancji. Cena zależy od typu instancji (CPU, RAM).

db.r6g.large: ~$0.277/godz. (~$202/mies.) w eu-west-1

Storage i I/O

Storage rośnie automatycznie. Opłata za GB przechowywanych danych i milion operacji I/O.

Storage: ~$0.10/GB/mies., I/O: ~$0.20/milion żądań

Elastic Clusters

Płacisz za vCPU-godz. i storage GB/mies. Skalujesz compute i storage niezależnie.

~$0.1306/vCPU-godz., storage: ~$0.10/GB/mies.

Backup

Automatyczne backupy (do 35 dni retencji) są bezpłatne do rozmiaru bazy. Dodatkowy storage backupów jest płatny.

Dodatkowy backup: ~$0.021/GB/mies.

Przyklady AWS CLI

Utwórz klaster DocumentDB

Tworzy nowy klaster bazy dokumentowej

aws docdb create-db-cluster \
 --db-cluster-identifier moj-docdb \
 --engine docdb \
 --engine-version 5.0.0 \
 --master-username admin \
 --master-user-password MojeSilneHaslo123!

Dodaj instancję do klastra

Tworzy instancję w klastrze DocumentDB

aws docdb create-db-instance \
 --db-instance-identifier moj-docdb-inst1 \
 --db-cluster-identifier moj-docdb \
 --db-instance-class db.r6g.large \
 --engine docdb

Sprawdź status klastrów

Lista klastrów DocumentDB z ich statusem

aws docdb describe-db-clusters \
 --query "DBClusters[].{ID:DBClusterIdentifier,Status:Status,Endpoint:Endpoint,Engine:EngineVersion}" \
 --output table

Utwórz snapshot

Ręczny snapshot bazy DocumentDB

aws docdb create-db-cluster-snapshot \
 --db-cluster-identifier moj-docdb \
 --db-cluster-snapshot-identifier moj-docdb-snap-2024

Quiz: Amazon DocumentDB

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

Twoj wynik: 0 / 4

1. Z jakim silnikiem baz danych jest kompatybilny Amazon DocumentDB?

2. Jaki jest maksymalny rozmiar storage w klastrze DocumentDB?

3. Ile replik do odczytu może mieć klaster DocumentDB?

4. Co to są Elastic Clusters w DocumentDB?

Chcesz poznac Amazon DocumentDB w praktyce?

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

Zacznij darmowy kurs Wszystkie serwisy