Amazon DocumentDB: Alternativa k MongoDB pro rozsáhlé nasazení
S nárůstem počtu uživatelů, kteří se potýkají s výzvami při provozování MongoDB ve velkém měřítku, přišel Amazon s řešením v podobě služby DocumentDB.
DocumentDB umožňuje snadné škálování dat od 10 GB až do 64 TB díky automatickému škálování. Podívejme se, jak to funguje.
Co je DocumentDB?
AWS DocumentDB je modernizovaná varianta dřívější verze MongoDB 3.6. Společnost Amazon reagovala na potřebu navrhnout vlastní řešení pro zpracování rozsáhlých objemů dat a kritické pracovní zátěže. Je důležité zmínit, že DocumentDB nevyužívá žádný zdrojový kód MongoDB a jedná se o proprietární implementaci Amazonu.
DocumentDB, stejně jako MongoDB, je databázový systém orientovaný na dokumenty. AWS DocumentDB spadá do kategorie NoSQL databází. Typicky se dokumenty ukládají ve formátu JSON a jsou indexovány v tomto formátu. Amazon DocumentDB je tak řešením, které je sice kompatibilní s MongoDB, ale jedná se o nezávislou implementaci.
Před hlubším zkoumáním Amazon DocumentDB je zásadní pochopit koncept NoSQL databází a důvody jejich rostoucí popularity.
Co je NoSQL databáze?
NoSQL databáze nepoužívají vzájemně propojené tabulky, jak je tomu u tradičních relačních databází (odtud název „Not only SQL“). Nejčastěji se jedná o dokumentové a grafové databáze. Tyto databáze jsou schopny zpracovat obrovské objemy dat a vysokou zátěž od velkého množství uživatelů.
Vývojáři volí NoSQL databáze primárně pro jejich výkon, nikoli pro samotné úložiště dat. Data v NoSQL databázích jsou semistrukturovaná a polymorfní, což umožňuje snadnou manipulaci s velkým množstvím nestrukturovaných informací.
Kromě vyšší konzistence ve srovnání s relačními databázemi se NoSQL databáze lépe škálují a vyžadují méně systémových prostředků. Na rozdíl od SQL databází, NoSQL databáze umožňují stohování a bezschematický přístup umožňuje flexibilní datové struktury.
S rostoucím počtem vývojářů, kteří využívají veřejná cloudová prostředí, se požadavky na škálovatelnost a geografickou distribuci dat staly klíčovými, což jsou vlastnosti, které MongoDB nabízí.
NoSQL databáze jsou široce využívány v různých odvětvích, například ve financích a zdravotnictví. Mezi konkrétní případy použití patří ukládání dat z internetu věcí (IoT), jako jsou naměřené hodnoty z chytrých odpadkových košů.
Proč vznikl DocumentDB?
Amazon se rozhodl vyvinout DocumentDB jako reakci na problémy, které měli uživatelé s provozováním MongoDB v rozsáhlém měřítku. Amazon byl přesvědčen, že stávající řešení, včetně MongoDB Atlas, nedokáží dostatečně uspokojit potřeby jejich zákazníků, a proto přišel s vlastním řešením.
Například DocumentDB umožňuje automatické škálování databáze z 10 GB až na 64 TB, což uživatelům ušetří starosti. Před příchodem DocumentDB bylo obtížné efektivně pracovat s takovými objemy dat.
Řešení Amazonu zahrnuje i vestavěnou ochranu proti chybám. Úložiště je automaticky rozděleno na 10GB části, které jsou rozmístěny na mnoha discích. Každých 10 GB je navíc šestkrát replikováno ve třech zónách dostupnosti, což zajišťuje zálohování.
I při ztrátě až dvou kopií dat a tří dokumentů je zachována dostupnost pro čtení, aniž by došlo k ovlivnění dostupnosti pro zápis. Systém má také samoregenerační schopnosti. Bloky dat a disky jsou průběžně kontrolovány a případné chyby jsou automaticky opravovány.
Jelikož je služba hostovaná Amazonem, splňuje většinu bezpečnostních standardů, včetně PCI DSS a ISO 9001. Splňuje také SOC 1, SOC 2, SOC 3 a HIPAA.
Výhody DocumentDB
1. Kompatibilita s MongoDB
Amazon DocumentDB je kompatibilní s ovladači MongoDB verzí 3.6 a 4.0, což umožňuje zákazníkům používat stávající aplikace, ovladače a nástroje s minimálními změnami.
Služba využívá rozhraní Apache 2.0 open source MongoDB 3.6 a 4.0 API pro simulaci chování MongoDB serveru, a tím zajišťuje vysoký výkon, škálovatelnost a dostupnost, které kritické aplikace vyžadují.
2. Monitorování
Amazon DocumentDB poskytuje integrovanou analytiku prostřednictvím Amazon CloudWatch. Pomocí AWS Management Console můžete sledovat výkon clusteru v různých metrikách, jako je výpočetní výkon, využití paměti, propustnost dotazů, počty operací MongoDB a aktivní připojení.
3. Latence
Amazon DocumentDB efektivně pracuje s JSON dokumenty, podporuje různé datové typy a umožňuje rychlé indexování. Díky architektuře využívající in-memory zpracování dokáže služba rychle vyhodnocovat dotazy i nad rozsáhlými dokumenty.
4. Řízení přístupu
Amazon DocumentDB podporuje řízení přístupu na základě rolí (RBAC) s vestavěnými i uživatelsky definovanými rolemi. RBAC umožňuje omezit uživatelské oprávnění a tím zvýšit bezpečnost systému.
V rámci AWS Identity and Access Management (IAM) můžete spravovat, co mohou uživatelé a skupiny IAM provádět s prostředky Amazon DocumentDB, včetně clusterů, instancí, snímků a skupin parametrů. Můžete také označovat své zdroje a definovat pravidla pro uživatele a skupiny IAM.
5. Šifrování
Databáze Amazon DocumentDB mohou být šifrovány pomocí služby AWS Key Management Service (KMS).
Šifrování se vztahuje na data uložená v základním úložišti, automatické zálohy, snímky a repliky v rámci clusteru. Spojení mezi klienty a Amazon DocumentDB jsou automaticky šifrována pomocí TLS.
6. Certifikace shody
Amazon DocumentDB byl vyvinut s důrazem na nejvyšší bezpečnostní standardy. Služba je kompatibilní s PCI DSS, ISO 9001, 27001, 27017 a 27018, SOC 1, 2 a 3 a HIPAA.
7. Globální klastry s vysokou dostupností
Amazon DocumentDB Global Clusters umožňují globální čtení dat a obnovu po havárii. Duplikace dat probíhá až v pěti lokalitách AWS s minimálním dopadem na výkon.
8. Nasazení Multi-AZ s replikami
Amazon DocumentDB umožňuje vytvářet až 15 replik ve třech zónách dostupnosti a automaticky přepne na repliku v případě výpadku jedné z instancí. V případě selhání se Amazon DocumentDB automaticky pokusí vytvořit novou instanci.
9. Úložiště odolné vůči chybám a se samoregeneračními schopnostmi
Úložný prostor je šestkrát zreplikován ve třech zónách dostupnosti. Amazon DocumentDB tak nabízí úložiště, které je odolné vůči chybám a dokáže zvládnout ztrátu dat až dvou kopií, aniž by došlo k omezení dostupnosti pro zápis. Úložiště Amazon DocumentDB navíc automaticky nahrazuje poškozené bloky dat a disky.
Časté otázky ohledně AWS DocumentDB
Je AWS DocumentDB ekvivalentní MongoDB?
Amazon DocumentDB je plně spravovaná databázová služba, která je kompatibilní s MongoDB. Je navržena tak, aby byla rychlá, škálovatelná a snadno použitelná pro pracovní zátěže, které používají MongoDB.
Amazon DocumentDB umožňuje ukládat JSON data jako dokumenty a poskytuje efektivní mechanismy pro ukládání, vyhledávání a indexování dat.
Zákazníci mohou zdarma využívat AWS Database Migration Service (DMS) po dobu šesti měsíců pro rychlý a jednoduchý přenos lokálních nebo Amazon Elastic Cloud (EC2) MongoDB databází do AWS. To umožňuje téměř nulový výpadek během migrace.
Jak funguje Amazon DocumentDB?
Amazon DocumentDB pracuje s Apache 2.0 open-source MongoDB 3.6 a 4.0 API. Díky tomu je možné využívat stávající ovladače, aplikace a nástroje, které jsou kompatibilní s MongoDB s minimálními změnami.
Jak se škáluje Amazon DocumentDB?
Amazon DocumentDB je cloudová databáze, která umožňuje škálování od 10 GB až do 64 TB v krocích po 10 GB. Výpočetní i úložnou kapacitu je možné škálovat vertikálně i horizontálně, a to přidáním replikových instancí (až 15) pro vyšší propustnost čtení.
Z pohledu designu, co jsou hlavní aspekty Amazon DocumentDB?
Amazon DocumentDB byl navržen od základu s ohledem na cloudové prostředí. To znamená, že je snadno škálovatelný pro zátěže, které používají JSON.
Důležitým aspektem je oddělení úložiště a zpracování, což umožňuje každému komponentu nezávisle se škálovat. DocumentDB má distribuovaný systém úložiště, který je odolný vůči chybám a má samoregenerační schopnosti. Každý databázový cluster může ukládat až 64 TB dat, aniž by je bylo nutné dělit.
Závěr
DocumentDB představuje jedinou plně spravovanou službu od Amazonu, která je kompatibilní s MongoDB. Podle Amazonu nabízí DocumentDB dvakrát vyšší propustnost ve srovnání se stávajícími řešeními MongoDB. Alternativou k DocumentDB by bylo spravovat databázi na EC2/EBS, což je mnohem náročnější.
Pokud hledáte spolehlivé a plně spravované řešení, zvažte DocumentDB. Dalším argumentem pro volbu DocumentDB je možnost ponechat veškerou infrastrukturu v rámci ekosystému AWS.