DynamoDB je plně spravovaná bezserverová databáze NoSQL vyvinutá společností Amazon. Mezi její hlavní výhody patří plynulé škálování, odezva v řádu milisekund, minimální provozní náročnost a snadná integrace s AWS. Používá se například při vývoji softwaru, škálování herních platforem nebo streamování videa v reálném čase.

Co je DynamoDB?

Amazon DynamoDB je bezserverová databázová služba NoSQL pro moderní aplikace jakéhokoli rozsahu, kterou od roku 2012 poskytuje AWS (Amazon Web Services). Na rozdíl od mnoha konkurentů je DynamoDB plně spravovaným řešením. Díky tomu není nutné řešit úkoly jako upgrady, aktualizace nebo škálování. Systém správy databází také nabízí širokou škálu bezpečnostních funkcí a standardů shody. DynamoDB se navíc hladce integruje s dalšími službami AWS, jako jsou Lambda nebo Amazon OpenSearch Service.

Struktura DynamoDB

Struktura databáze se vyznačuje jasnou hierarchií s tabulkami jako nejvyššími entitami, bez přísných vztahů mezi nimi, na rozdíl od relačních databází. Amazon DynamoDB ukládá data do oddílů, které se automaticky replikují. Každý oddíl se skládá ze tří uzlů, z nichž každý obsahuje kopii dat, což umožňuje snadné škálování a poskytuje redundanci v případě selhání uzlu. Vývojáři ukládají záznamy jako atributy a přiřazují jim jedinečný primární klíč. Databáze podporuje jak datové modely typu klíč-hodnota, tak modely orientované na dokumenty.

Třídy tabulek v AWS DynamoDB

Pomocí tříd tabulek lze optimalizovat výkon a nákladovou strukturu tabulek DynamoDB. Uživatelé si mohou vybrat mezi dvěma třídami a dvakrát za 30 dní mezi nimi přepínat bez výpadků, aby přizpůsobili náklady vzorcům používání.

  • DynamoDB Standard je navržen jako výchozí třída tabulek pro vysoce výkonné úlohy a tabulky s nepředvídatelným zatížením. Ve srovnání s tím se standardní tabulky vyznačují nižšími náklady na operace čtení a zápisu.
  • DynamoDB Standard Infrequent Access je optimalizován pro tabulky, u nichž je hlavním nákladovým faktorem úložiště. Standardní tabulky IA nabízejí nižší náklady na úložiště. Tato třída je také ideální pro tabulky s daty, ke kterým se přistupuje jen zřídka.

Jaké funkce nabízí DynamoDB?

DynamoDB nabízí řadu výkonných funkcí, které umožňují škálovatelné, vysoce dostupné a responzivní aplikace. Následující přehled shrnuje klíčové funkce:

  • Datové modely klíč-hodnota a dokument: Databáze disponuje flexibilním schématem, které umožňuje přiřadit jednotlivým položkám mnoho různých atributů.
  • Transakce ACID: Databáze NoSQL poskytuje transakce s atomicitou, konzistencí, izolací a trvanlivostí – známé jako ACID – pro širokou škálu aplikací. To umožňuje rozšířit škálovatelnost a výkon DynamoDB na širší škálu procesů kritických pro podnikání.
  • Globální tabulky s aktivní replikací: Globální tabulky DynamoDB jsou multiaktivní, což uživatelům umožňuje zapisovat a číst z jakékoli repliky. Kapacita se automaticky přizpůsobuje regionálním pracovním zatížením.
  • DynamoDB Streams: Tato funkce zaznamenává změny dat. Když je v tabulce vytvořena, aktualizována nebo odstraněna položka, DynamoDB Streams zaznamená událost a uloží ji na 24 hodin.
  • Sekundární indexy: DynamoDB umožňuje lokální i globální sekundární indexy, které umožňují dotazy pomocí alternativních klíčů. Volitelně je lze implementovat jako řídké indexy, aby se indexovaly pouze podsady dat.
  • Automatické rozdělení: Data jsou automaticky distribuována do více oddílů a podle potřeby škálována.
  • Bezpečnostní funkce: Databáze nabízí rozsáhlé funkce pro zajištění bezpečnosti vašich dat. Patří mezi ně podrobné řízení přístupu, šifrování v klidu, obnovení k určitému časovému bodu, zálohy na vyžádání a připojení k soukromé síti.
  • Modely kapacity: Uživatelé mají možnost vybrat si mezi režimem kapacity na vyžádání a režimem předem přidělené kapacity.
  • DynamoDB Accelerator (DAX): Jedná se o volitelnou službu pro vylepšené ukládání do mezipaměti, která zvyšuje výkon až desetinásobně.

Výhody a nevýhody Amazon DynamoDB

Služba NoSQL DynamoDB od Amazonu zaujme především následujícími vlastnostmi:

  • Automatické škálování: AWS DynamoDB dynamicky upravuje kapacitu a rozdělení tak, aby odpovídaly propustnosti, což umožňuje neomezený horizontální růst.
  • Bezserverová architektura: Systém správy databází je plně spravován. To umožňuje uživatelům soustředit se výhradně na vývoj aplikací, místo aby se museli zabývat základní infrastrukturou.
  • Vysoká dostupnost: Databáze v několika regionech a automatická replikace zajišťují dostupnost až 99,999 %.
  • Nízká latence: Databáze NoSQL poskytuje ve výchozím nastavení přístup pro čtení a zápis s latencí v řádu jednotek milisekund. S DynamoDB Accelerator lze v případě potřeby zkrátit dobu odezvy dokonce na mikrosekundy.
  • Jednoduchá integrace AWS: Hladká integrace služeb AWS, jako jsou CloudWatch nebo Kinesis, rozšiřuje funkčnost DynamoDB a umožňuje další analýzy dat.

Ačkoli výhody jasně převažují a DynamoDB patří rozhodně mezi nejlepší alternativy SQL, má tato platforma také některé slabiny. Na jedné straně nabízí databáze pouze omezené možnosti dotazování, které jsou méně komplexní než u mnoha konkurenčních nabídek. Na druhé straně těsná integrace se službami AWS ztěžuje migraci na jiné platformy. U modelů na vyžádání také existuje riziko, že špičky v poptávce mohou vést k nepředvídatelně vysokým poplatkům.

Pro jaké oblasti použití je DynamoDB vhodný?

DynamoDB byl speciálně navržen pro pracovní zatížení, kde je třeba zpracovávat, škálovat a poskytovat obrovské množství dat s velmi nízkou latencí a vysokou dostupností. Mezi typické případy použití patří:

  • Bezserverové webové aplikace a mobilní backendy, kde jsou data účtů, relace a konfigurace načítány s minimální latencí
  • Herní platformy, kde stovky tisíc nebo miliony uživatelů současně přistupují k herním serverům
  • Streamování obsahu pro globální publikum s nerovnoměrným nebo nárazovým provozem
  • Banky a finanční služby, které potřebují zpracovávat mnoho transakcí současně a v reálném čase, přičemž zároveň čelí výzvě zajistit včasnost a bezpečnost finančních transakcí
  • Aplikace IoT (IoT = Internet věcí), které zpracovávají a ukládají data ze senzorů ve velkém měřítku

Nejdůležitější alternativy k DynamoDB

Kromě DynamoDB existují i jiné databázové systémy, které mohou sloužit jako alternativa v závislosti na požadavcích, datovém modelu, škálovatelnosti a infrastruktuře. Mezi ně patří především:

  • MongoDB: Vysoká flexibilita a neomezená škálovatelnost
  • MySQL: Relacionální systém s prvotřídní dostupností
  • MariaDB: Open-source alternativa k DynamoDB
  • PostgreSQL: relační databázové řešení s podporou nerelačních datových typů
  • Firebase od Google: Vynikající alternativa, zejména pro mobilní a webové aplikace
  • Apache Cassandra: Obzvláště ideální pro velké objemy dat

Podrobnosti o výhodách jednotlivých alternativ DynamoDB jsou popsány v odkazovaném průvodci.

Přejít do hlavního menu