У зв’язку зі збільшенням кількості користувачів, які відчувають труднощі з масштабуванням MongoDB, компанія Amazon представила DocumentDB – спеціалізоване рішення для баз даних.
DocumentDB пропонує можливість гнучкого масштабування обсягу даних від 10 ГБ до 64 ТБ завдяки автоматизованим механізмам. Давайте розглянемо докладніше, як це працює.
Що являє собою DocumentDB?
AWS DocumentDB – це модернізована версія MongoDB, що базується на версії 3.6. Amazon розробила це рішення для обробки великих обсягів даних та критично важливих робочих навантажень. Важливо зазначити, що DocumentDB не використовує оригінальний код MongoDB, а є власною розробкою Amazon.
Подібно до MongoDB, DocumentDB є системою для зберігання документів. AWS DocumentDB є NoSQL базою даних, де дані зазвичай зберігаються у форматі JSON, що дозволяє індексувати JSON-структури. Amazon DocumentDB – це альтернатива MongoDB від AWS, але з унікальним підходом.
Перш ніж заглиблюватися в деталі Amazon DocumentDB, важливо зрозуміти, що таке NoSQL і чому ці бази даних набувають все більшої популярності.
Що таке NoSQL бази даних?
NoSQL бази даних відрізняються від реляційних баз даних тим, що вони не використовують таблиці зі зв’язками. Замість цього вони фокусуються на обробці документів та графіків. Такі бази даних можуть ефективно працювати з великими обсягами даних та високими навантаженнями користувачів.
Розробники використовують NoSQL бази даних для підвищення продуктивності, а не тільки для зберігання. Дані NoSQL є напівструктурованими, гнучкими та легко обробляють великі обсяги неструктурованих даних.
NoSQL бази даних пропонують більшу гнучкість та масштабованість порівняно з реляційними базами даних, а також вимагають менше ресурсів. На відміну від SQL баз даних, NoSQL бази даних можна легко нарощувати. Безсхемна структура NoSQL дозволяє використовувати різні структури для елементів бази даних.
Все більше розробників віддають перевагу розміщенню програм та даних у публічних хмарних середовищах, що вимагає легкості розгортання та розумної географічної локалізації даних. Саме ці потреби задовольняє MongoDB.
NoSQL бази даних використовуються в різних галузях, включаючи фінанси та охорону здоров’я, а також для зберігання даних IoT, наприклад, від розумних пристроїв.
Які причини появи DocumentDB?
Amazon створив DocumentDB через численні проблеми, з якими стикалися користувачі при масштабуванні MongoDB. Amazon зрозумів, що існуючі рішення, включно з MongoDB Atlas, не повністю задовольняють потреби їхніх клієнтів, і розробив власне рішення.
Наприклад, DocumentDB автоматично масштабує базу даних від 10 ГБ до 64 ТБ, що робить процес управління даними значно простішим. Раніше розробка таких масштабів була складним завданням.
Рішення від Amazon також має вбудовану відмовостійкість. Воно автоматично розділяє сховище на сегменти по 10 ГБ, розподілені між різними дисками. Кожен сегмент дублюється шість разів у трьох зонах доступності для створення резервних копій.
Система може витримати втрату двох копій даних без впливу на можливість запису, а також втрату трьох копій без впливу на можливість читання. DocumentDB також має функцію самовідновлення, яка автоматично перевіряє та виправляє помилки блоків даних та дисків.
Оскільки 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 імітує сервер MongoDB, використовуючи API MongoDB 3.6 та 4.0 Apache 2.0 з відкритим вихідним кодом. Це забезпечує продуктивність, масштабованість та доступність, необхідні для критично важливих програм MongoDB.
#2. Моніторинг
Amazon DocumentDB інтегрується з Amazon CloudWatch для забезпечення аналітики серверів хмарних баз даних. За допомогою консолі керування AWS можна відстежувати продуктивність кластера, зокрема обчислювальні ресурси та пам’ять. Також доступні дані про пропускну здатність запитів, кількість операцій MongoDB та активні з’єднання.
#3. Затримка
Amazon DocumentDB підтримує JSON-документи, різні типи даних та швидке індексування. Архітектура з використанням пам’яті дозволяє сервісу швидко обробляти запити до великих обсягів документів.
#4. Управління доступом
Amazon DocumentDB підтримує RBAC (управління доступом на основі ролей) з вбудованими та налаштованими ролями. RBAC дозволяє застосовувати принцип найменших привілеїв, обмежуючи можливості користувачів.
У рамках AWS Identity and Access Management (IAM), ви можете контролювати, які дії користувачі та групи AWS IAM можуть виконувати з ресурсами Amazon DocumentDB, включаючи кластери, екземпляри, знімки та групи параметрів. Ви також можете позначати ресурси Amazon DocumentDB тегами та керувати користувачами та групами IAM.
#5. Шифрування
Ви можете використовувати службу керування ключами AWS (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 забезпечують глобальне читання та аварійне відновлення. Вони реплікують ваші дані на п’яти сайтах AWS з мінімальним впливом на продуктивність.
#8. Розгортання в кількох зонах доступності з репліками
Amazon DocumentDB дозволяє створювати до 15 реплік у трьох зонах доступності, автоматично замінюючи екземпляри у випадку збою. У випадку відмови, Amazon DocumentDB автоматично створить новий екземпляр.
#9. Відмовостійке та самовідновлюване сховище
Об’єм сховища копіюється шість разів у три зони доступності (AZ). Amazon DocumentDB пропонує відмовостійке сховище, що дозволяє керувати втратою до двох копій даних без впливу на доступність запису. Сховище Amazon DocumentDB також є самовідновлюваним, замінюючи несправні блоки даних та диски.
Поширені запитання щодо AWS DocumentDB
Чи є AWS DocumentDB аналогом MongoDB?
Amazon DocumentDB, сумісний з MongoDB, є швидкою, масштабованою та повністю керованою службою баз даних документів, яка може використовуватись з робочими навантаженнями MongoDB. Це дозволяє легко зберігати, шукати та індексувати JSON-дані.
Клієнти можуть безкоштовно використовувати AWS Database Migration Service (DMS) протягом шести місяців для швидкої та легкої міграції локальних баз даних або нереляційних баз даних MongoDB з Amazon Elastic Cloud (EC2) до AWS DMS практично без простоїв.
Як працює Amazon DocumentDB?
Amazon DocumentDB взаємодіє з API MongoDB 3.6 та 4.0 з відкритим кодом Apache 2.0 як база даних документів. Це дозволяє використовувати ті ж драйвери, програми та інструменти MongoDB з Amazon DocumentDB з невеликими змінами або без них.
Як масштабується Amazon DocumentDB?
Amazon DocumentDB – це база даних веб-масштабу, яка може масштабуватися від 10 ГБ до 64 ТБ з кроком 10 ГБ. Обсяг зберігання та обчислювальну потужність Amazon DocumentDB можна масштабувати як вертикально, так і горизонтально (для збільшення пропускної здатності читання), додаючи до 15 екземплярів реплік до кластера.
Який головний принцип дизайну Amazon DocumentDB?
Основна ідея Amazon DocumentDB – це хмарна архітектура, розроблена з нуля. Це дозволяє легко масштабувати робочі навантаження JSON.
Важливою частиною дизайну DocumentDB є розділення сховища та обробки для забезпечення незалежного розвитку кожного компонента. DocumentDB має розподілену, відмовостійку та самовідновлювальну систему зберігання. Кожен кластер бази даних може зберігати до 64 ТБ даних без поділу.
Висновок
DocumentDB – це єдина керована служба Amazon, сумісна з MongoDB. Amazon стверджує, що DocumentDB має вдвічі більшу пропускну здатність, ніж доступні зараз рішення MongoDB. Альтернативою було б керування базами даних на EC2/EBS, що є складнішим завданням.
Якщо вам потрібні гарантії масштабованості та надійності, виберіть DocumentDB. Ще однією причиною є зберігання всіх даних в екосистемі AWS.