Водич за увод у АВС ДоцументДБ

Услед све већег броја корисника који су наилазили на потешкоће при скалирању MongoDB-а, компанија Amazon је развила DocumentDB као одговор на ове изазове.

DocumentDB омогућава једноставно скалирање капацитета складиштења, од 10GB до 64TB, уз аутоматско прилагођавање. У наставку ћемо истражити како то функционише.

Шта је DocumentDB?

AWS DocumentDB је унапређена верзија MongoDB-а, базирана на верзији 3.6. Amazon је препознао потребу за сопственим решењем које би могло да се носи са великим количинама података и захтевним радним оптерећењима. Важно је напоменути да DocumentDB не користи изворни код MongoDB-а, већ је у питању Amazon-ова засебна имплементација.

Попут MongoDB-а, DocumentDB представља складиште докумената. AWS DocumentDB је NoSQL база података, која за складиштење користи JSON формат. То значи да индексира JSON структуре података. Amazon DocumentDB је, дакле, решење које је AWS осмислио као алтернативу MongoDB-у, али са сопственим карактеристикама.

Пре него што детаљније анализирамо Amazon DocumentDB, кључно је разумети NoSQL концепт и разлоге његове растуће популарности.

Шта је NoSQL база података?

NoSQL базе података се разликују од релационих база података по томе што не користе међусобно повезане табеле („не само SQL“). Уместо тога, најчешће користе документе или графове. Оне су способне да обрађују огромне количине података и велики број корисничких захтева.

Програмери често користе NoSQL базе података првенствено због њихових перформанси, а не само складиштења. NoSQL подаци су полуструктурирани и полиморфни, што им омогућава да лако чувају огромне количине неструктурираних података.

Поред веће конзистентности у односу на релационе базе, NoSQL базе података су лакше за скалирање и захтевају мање ресурса. За разлику од SQL база, NoSQL базе могу бити хијерархијски организоване. Такође, NoSQL базе без шема омогућавају различите структуре података.

Све већи број програмера одлучује се за хостовање апликација и података у јавним облацима. Кључни захтеви су скалирање и интелигентна гео-локација података, што су карактеристике које MongoDB поседује.

NoSQL базе података се користе у различитим индустријама. На пример, финансијски и здравствени подаци представљају значајне примене, као и чување података из IoT уређаја.

Шта је довело до настанка DocumentDB-а?

Amazon је развио DocumentDB након што је велики број корисника наишао на проблеме при скалирању MongoDB-а. Сматрали су да постојећа решења, укључујући MongoDB Atlas, нису адекватна, и зато су развили сопствено решење.

На пример, DocumentDB омогућава аутоматско повећање капацитета базе података са 10GB на 64TB, без потребе за ручним интервенцијама. Пре DocumentDB-а, развој база са оваквим захтевима је био компликован.

Amazon-ово решење такође има уграђену толеранцију на грешке. Подаци се аутоматски деле на делове од 10GB, који су распоређени на више дискова. Сваки од ових делова се реплицира шест пута у три зоне доступности, ради сигурности.

Чак и у случају губитка две копије података, доступност за упис се неће смањити, а губитак до три копије неће утицати на доступност за читање. Систем такође поседује капацитет самоопоравка, где се блокови података и дискови аутоматски проверавају и поправљају.

Будући да је услуга хостована од стране Amazon-а, велики део регулаторних питања је аутоматски покривен. DocumentDB испуњава бројне стандарде, укључујући PCI DSS и ISO 9001. Такође је у складу са SOC 1, SOC 2, SOC 3 и HIPAA.

Предности DocumentDB-а

#1. MongoDB компатибилност

Amazon DocumentDB је компатибилан са MongoDB 3.6 и 4.0 драјверима. Корисници могу користити већину постојећих апликација, драјвера и алата са Amazon DocumentDB.

Amazon DocumentDB користи Apache 2.0 open-source MongoDB 3.6 и 4.0 API-је за симулацију MongoDB сервера. Ово омогућава постизање високих перформанси, скалабилности и доступности које су потребне за захтевне MongoDB апликације.

#2. Мониторинг

Amazon DocumentDB пружа аналитику преко Amazon CloudWatch-а за праћење сервера база података у облаку. Користећи AWS управљачку конзолу, корисници могу пратити перформансе кластера у различитим аспектима, попут процесорске моћи и меморије. Такође се прате проток упита, број MongoDB операција и активне везе.

#3. Латентност

Amazon DocumentDB подржава JSON документе, различите типове података и брзу индексацију. Архитектура у меморији омогућава сервису да брзо обрађује упите над великим документима.

#4. Контрола приступа

Amazon DocumentDB подржава RBAC (Role-Based Access Control) са уграђеним и дефинисаним улогама. RBAC омогућава имплементацију принципа најмање привилегија, ограничавајући шта корисници могу да раде.

У оквиру управљања AWS идентитетом и приступом (IAM), корисници могу контролисати шта AWS IAM корисници и групе могу да раде са Amazon DocumentDB ресурсима, укључујући кластере, инстанце, снимке и групе параметара. Такође је могуће означити ресурсе и управљати IAM корисницима и групама.

#5. Шифровање

Користећи AWS Key Management Service (KMS), можете шифровати своје Amazon DocumentDB базе података.

Подаци у основном складишту су заштићени, као и аутоматизоване резервне копије, снимци и реплике у кластеру, користећи Amazon DocumentDB шифровање. Комуникација између клијента и Amazon DocumentDB-а је аутоматски шифрована коришћењем TLS протокола.

#6. Сертификати о усклађености

Amazon DocumentDB је развијен у складу са највишим безбедносним стандардима како би помогао корисницима да испуне сопствене регулаторне и усклађене захтеве. DocumentDB је усклађен са PCI DSS, ISO 9001, 27001, 27017 и 27018, SOC 1, 2 и 3 и HIPAA.

#7. Глобални кластери са високом доступношћу

Amazon DocumentDB Global Clusters омогућавају глобално читање и опоравак од катастрофа. Подаци се реплицирају на до пет AWS локација уз минимални утицај на перформансе.

#8. Multi-AZ имплементације са репликама

Са до 15 реплика у три зоне доступности, Amazon DocumentDB аутоматски пребацује инстанце у случају квара. У случају грешке, Amazon DocumentDB ће покушати да креира нову инстанцу.

#9. Отпорно на грешке и самоопорављајуће складиште

Волумен меморије се копира шест пута у три зоне доступности. Amazon DocumentDB нуди складиште отпорно на грешке, које може да поднесе губитак података до две копије без утицаја на доступност за писање. Такође, складиште се самоопоравља заменом неуспелих блокова података и дискова.

AWS DocumentDB – Најчешћа питања

Да ли је AWS DocumentDB исто што и MongoDB?

Amazon DocumentDB, са MongoDB компатибилношћу, је услуга база података докумената којом се у потпуности управља. Она је брза, скалабилна и може се користити са MongoDB радним оптерећењима.

JSON подаци се могу чувати у Amazon DocumentDB као база података докумената. Подаци се могу лако складиштити, претраживати и индексирати.

Корисници могу бесплатно користити AWS услугу миграције база података (DMS) шест месеци, за брзу и једноставну миграцију својих локалних или Amazon Elastic Cloud (EC2) MongoDB база података у AWS Database Migration Service (DMS), са минималним прекидом рада.

Како функционише Amazon DocumentDB?

Amazon DocumentDB ради са Apache 2.0 open-source MongoDB 3.6 и 4.0 API-јима. Зато се могу користити исти MongoDB драјвери, апликације и алати са малим или без измена.

Како се Amazon DocumentDB скалира?

Amazon DocumentDB је веб-скала база података, која се може скалирати од 10GB до 64TB у корацима од 10GB. Капацитет складиштења и процесорске моћи се може скалирати вертикално и хоризонтално (за већи проток читања) додавањем додатних реплика инстанци (до 15) у кластер.

Које су главне ствари у вези са дизајном Amazon DocumentDB-а?

Amazon DocumentDB је изграђен од самог почетка са архитектуром прилагођеном облаку. То значи да се JSON радна оптерећења могу лако скалирати.

Важан део дизајна DocumentDB-а је раздвајање складиштења и процесирања, што омогућава да сваки елемент расте независно. DocumentDB има дистрибуиран, отпоран на грешке и самоопорављајући систем складиштења. Сваки кластер базе података може да ускладишти до 64TB података без раздвајања.

Закључак

DocumentDB је једина Amazon-ова MongoDB компатибилна услуга којом се управља. Amazon наводи да DocumentDB има дупло већи проток у односу на тренутно доступна MongoDB решења. Алтернатива би било ручно управљање базама података на EC2/EBS, што је компликованије.

Ако су вам потребне гаранције које пружа DocumentDB, можете се определити за њега или остати при MongoDB-у. Још један разлог за одабир DocumentDB-а је и чување свега у AWS екосистему.