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.
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).
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.
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.
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.
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.
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.
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.
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.
ZaawansowanyIndeksy - 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).
ZaawansowanyElastic 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.
ZaawansowanyPolaczenia - 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.
PoczatkujacyOptymalizacja 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.
PoczatkujacyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon DocumentDB bezposrednio w konsoli AWS.
Do czego sluzy Amazon DocumentDB?
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.
Katalogi produktów
Produkty mają różne atrybuty - buty mają rozmiar, laptopy mają RAM. Dokumenty JSON naturalnie modelują takie dane bez pustych kolumn.
Systemy zarządzania treścią (CMS)
Artykuły, komentarze, metadane - wszystko jako zagnieżdżone dokumenty JSON. Szybkie zapytania po dowolnych polach z indeksowaniem.
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.
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.
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?
Czesto uzywane razem z Amazon DocumentDB
Chcesz poznac Amazon DocumentDB w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon DocumentDB krok po kroku. Teoria + praktyka od zera.