W odpowiedzi na dynamiczny wzrost liczby użytkowników, którzy napotykali trudności z efektywnym uruchomieniem MongoDB w dużych skalach, Amazon wprowadził na rynek innowacyjne rozwiązanie – DocumentDB.
Dzięki automatycznemu skalowaniu danych, DocumentDB umożliwia płynne rozszerzanie przestrzeni dyskowej od 10 GB aż do 64 TB. Przyjrzyjmy się bliżej mechanizmom, które to umożliwiają.
Czym jest baza danych dokumentów?
AWS DocumentDB to zaawansowana implementacja, bazująca na wcześniejszej wersji MongoDB 3.6. Firma Amazon, dostrzegając potrzebę stworzenia rozwiązania dostosowanego do obsługi ogromnych zbiorów danych i zadań o krytycznym znaczeniu, opracowała DocumentDB. Warto podkreślić, że DocumentDB nie wykorzystuje oryginalnego kodu źródłowego MongoDB, co czyni go autorskim projektem Amazona.
DocumentDB, podobnie jak MongoDB, to silnik służący do przechowywania danych w formie dokumentów. AWS DocumentDB klasyfikowana jest jako baza danych NoSQL. Silniki baz danych dokumentów zazwyczaj operują w formacie JSON, co oznacza, że indeksują struktury danych w tym formacie. Amazon DocumentDB stanowi odpowiedź AWS na MongoDB, jednak jest od niego niezależna.
Zanim przejdziemy do szczegółów Amazon DocumentDB, warto zrozumieć koncepcję baz danych NoSQL i powody ich rosnącej popularności.
Czym jest baza danych NoSQL?
Bazy danych NoSQL charakteryzują się brakiem powiązań między tabelami, co odróżnia je od tradycyjnych relacyjnych baz danych SQL. Najczęściej stosowanymi formatami w NoSQL są dokumenty i wykresy. Bazy NoSQL są zdolne do efektywnego przetwarzania dużych ilości danych i wysokiego obciążenia użytkowników.
Deweloperzy wykorzystują bazy NoSQL głównie z uwagi na ich wydajność, a nie tylko funkcję przechowywania. Dane w NoSQL są częściowo ustrukturyzowane, polimorficzne i umożliwiają łatwe przechowywanie rozległych zbiorów danych nieustrukturyzowanych.
Bazy danych NoSQL cechują się wyższą spójnością w porównaniu do relacyjnych baz danych, są również łatwiejsze do skalowania i wymagają mniejszych zasobów. W przeciwieństwie do baz SQL, bazy NoSQL można swobodnie łączyć w stosy. Schemat baz danych NoSQL umożliwia różnorodną strukturę elementów bazy.
Wzrost popularności publicznych chmur obliczeniowych sprawia, że coraz więcej programistów przenosi swoje aplikacje i dane do chmury. Kluczowe wymagania to elastyczność skalowania i inteligentna lokalizacja geograficzna danych. To właśnie te cechy wyróżniają MongoDB.
Bazy danych NoSQL znajdują zastosowanie w wielu firmach na całym świecie. Szczególnie popularne są w sektorach finansowym i medycznym, na przykład do przechowywania danych z urządzeń IoT, takich jak inteligentna kuweta dla kotów.
Co przyczyniło się do powstania DocumentDB?
Inicjatywa stworzenia DocumentDB wynikła z problemów, jakie wielu użytkowników miało z efektywnym skalowaniem MongoDB. Amazon uznał, że żadne z dostępnych rozwiązań, w tym MongoDB Atlas, nie adresuje w pełni potrzeb ich klientów, co skłoniło ich do opracowania własnego rozwiązania.
DocumentDB umożliwia na przykład automatyczne skalowanie bazy danych z 10 GB do 64 TB, eliminując potrzebę ręcznej ingerencji. W przeszłości zarządzanie tak dużą ilością danych było znacznie bardziej skomplikowane.
Rozwiązanie Amazona oferuje również wbudowaną odporność na awarie. Dane są automatycznie dzielone na fragmenty o pojemności 10 GB, rozproszone na wielu dyskach. Każdy z tych fragmentów jest replikowany sześć razy w trzech strefach dostępności, co zapewnia dodatkowe bezpieczeństwo i dostępność.
Dzięki temu rozwiązaniu, utrata dwóch kopii danych nie wpływa na dostępność zapisu, a utrata trzech kopii nie wpływa na dostępność odczytu. System ma również zdolność do samonaprawy, w ramach której bloki danych i dyski są monitorowane pod kątem błędów i automatycznie naprawiane.
Zarządzanie usługą przez Amazon oznacza, że większość kwestii administracyjnych jest załatwiana automatycznie. Usługa spełnia liczne standardy, w tym PCI DSS i ISO 9001, a także wymogi SOC 1, SOC 2, SOC 3 i HIPAA.
Zalety DocumentDB
#1. Kompatybilność z MongoDB
Amazon DocumentDB jest w pełni kompatybilny ze sterownikami MongoDB w wersjach 3.6 i 4.0. Klienci mogą korzystać z tych samych aplikacji, sterowników i narzędzi, co w przypadku MongoDB.
Amazon DocumentDB wykorzystuje interfejsy API MongoDB 3.6 i 4.0 open source (Apache 2.0), aby symulować serwer MongoDB. To gwarantuje wydajność, skalowalność i dostępność niezbędną dla aplikacji MongoDB o krytycznym znaczeniu.
#2. Monitorowanie
Amazon DocumentDB oferuje monitoring za pomocą Amazon CloudWatch, umożliwiając analizę pracy serwerów baz danych w chmurze. Poprzez konsolę zarządzania AWS można śledzić wydajność klastra, w tym zużycie zasobów obliczeniowych i pamięci, przepustowość zapytań, liczbę operacji MongoDB i liczbę aktywnych połączeń.
#3. Opóźnienia
Amazon DocumentDB obsługuje dokumenty JSON, różnorodne typy danych i szybkie indeksowanie. Architektura oparta na pamięci umożliwia błyskawiczną ocenę zapytań dotyczących nawet bardzo dużych dokumentów.
#4. Kontrola dostępu
Amazon DocumentDB oferuje kontrolę dostępu opartą na rolach (RBAC), z wbudowanymi i definiowanymi rolami. RBAC pozwala na wdrażanie zasady najmniejszych uprawnień, ograniczając zakres działań, jakie mogą podejmować poszczególni użytkownicy.
W ramach usługi AWS Identity and Access Management (IAM) można precyzyjnie zarządzać uprawnieniami użytkowników i grup AWS IAM w odniesieniu do zasobów Amazon DocumentDB, takich jak klastry, instancje, migawki i grupy parametrów. Dodatkowo można tagować zasoby i regulować uprawnienia użytkowników i grup.
#5. Szyfrowanie
Bazy danych Amazon DocumentDB można szyfrować za pomocą usługi zarządzania kluczami AWS (KMS).
Dane w podstawowej warstwie magazynowej są chronione, podobnie jak automatyczne kopie zapasowe, migawki i repliki w klastrze. Szyfrowanie Amazon DocumentDB zapewnia ochronę danych, a połączenia klient-Amazon DocumentDB są automatycznie szyfrowane za pomocą TLS.
#6. Certyfikaty zgodności
Amazon DocumentDB spełnia najwyższe standardy bezpieczeństwa, ułatwiając klientom spełnienie ich własnych wymagań regulacyjnych. Usługa jest zgodna z PCI DSS, ISO 9001, 27001, 27017 i 27018, SOC 1, 2 i 3 oraz HIPAA.
7. Globalne klastry o wysokiej dostępności
Globalne klastry Amazon DocumentDB oferują możliwość globalnego odczytu i odzyskiwania danych po awarii. Usługa replikuje dane w maksymalnie pięciu lokalizacjach AWS, minimalizując wpływ na wydajność.
#8. Wdrożenia Multi-AZ z replikami
Dzięki możliwości posiadania do 15 replik w trzech strefach dostępności, Amazon DocumentDB automatycznie przełącza instancje w przypadku awarii jednej z nich. W takiej sytuacji, usługa automatycznie uruchamia nową instancję.
#9. Odporność na awarie i samonaprawa
Wolumen pamięci masowej jest replikowany sześciokrotnie w trzech strefach dostępności (AZ). Amazon DocumentDB oferuje pamięć odporną na awarie, która jest w stanie zarządzać utratą do dwóch kopii danych bez wpływu na dostępność zapisu. Dodatkowo, pamięć masowa Amazon DocumentDB ma mechanizm samonaprawy, automatycznie zastępując uszkodzone bloki danych i dyski.
Najczęściej zadawane pytania dotyczące bazy dokumentów AWS
Czy AWS DocumentDB jest identyczny z MongoDB?
Amazon DocumentDB to w pełni zarządzana usługa bazy danych dokumentów, kompatybilna z MongoDB, która oferuje szybkość, skalowalność i pełne zarządzanie. Jest dedykowana do obsługi obciążeń MongoDB.
Amazon DocumentDB przechowuje dane w formacie JSON, działając jako baza danych dokumentów, umożliwiając łatwe przechowywanie, wyszukiwanie i indeksowanie danych.
Klienci mogą bezpłatnie korzystać z usługi AWS Database Migration Service (DMS) przez sześć miesięcy, aby szybko i łatwo przenieść swoje lokalne bazy danych lub bazy MongoDB z Amazon Elastic Cloud (EC2) do usługi AWS Database Migration Service (DMS) z minimalnym czasem przestoju.
Jak działa Amazon DocumentDB?
Amazon DocumentDB opiera się na interfejsach API MongoDB 3.6 i 4.0 open source Apache 2.0, działając jako baza danych dokumentów. Dzięki temu, można korzystać z tych samych sterowników, aplikacji i narzędzi MongoDB z niewielkimi lub zerowymi zmianami.
Jak skaluje się Amazon DocumentDB?
Amazon DocumentDB to baza danych zaprojektowana do pracy w skali internetowej, oferująca skalowalność od 10 GB do 64 TB z przyrostem co 10 GB. Pojemność pamięci masowej i obliczeniową usługi Amazon DocumentDB można skalować zarówno w pionie, jak i w poziomie poprzez dodawanie dodatkowych instancji replik do klastra (do 15), co pozwala na zwiększenie przepustowości odczytu.
Jakie są kluczowe cechy Amazon DocumentDB?
Amazon DocumentDB został zbudowany od podstaw w oparciu o architekturę chmurową. Został zaprojektowany do łatwego skalowania obciążeń w formacie JSON.
Kluczowym aspektem projektu DocumentDB jest oddzielenie warstwy przechowywania od warstwy przetwarzania, umożliwiając niezależny rozwój każdego z nich. DocumentDB posiada system pamięci masowej, który jest rozproszony, odporny na awarie i posiada mechanizmy samonaprawy. Każdy klaster bazy danych może przechowywać do 64 TB danych bez konieczności dzielenia.
Podsumowanie
DocumentDB to unikalna, w pełni zarządzana usługa kompatybilna z MongoDB, oferowana przez Amazon. Amazon zapewnia, że DocumentDB charakteryzuje się dwukrotnie większą przepustowością niż dostępne rozwiązania MongoDB. Alternatywą mogłoby być zarządzanie bazami danych w środowisku EC2/EBS, co jednak stanowi spore wyzwanie.
Jeśli wymagana jest gwarancja wysokiej wydajności i bezpieczeństwa danych, DocumentDB stanowi doskonałe rozwiązanie. Inną istotną zaletą jest możliwość utrzymania wszystkich usług w ramach ekosystemu AWS.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.