Як порівнюють реляційні бази даних AWS

Протягом тривалого часу реляційні бази даних вважалися стандартним вибором для різноманітних програмних рішень, як великих, так і малих компаній.

Сьогодні ситуація значно змінилася завдяки розширенню доступності баз даних NoSQL, баз даних у пам’яті, а також озер даних. Однак, коли виникає потреба перенести існуючі локальні бази даних у хмарне середовище, реляційна база даних, як цільове рішення, залишається найпростішим і найочевиднішим варіантом для міграції.

Давайте детальніше розглянемо деякі з баз даних, які можуть бути частиною такого переходу:

  • Oracle
  • Aurora
  • Microsoft SQL Server
  • MySQL та PostgreSQL
  • MariaDB

Я поясню їхні відмінності, переваги та недоліки, наведу приклади реального використання та поділюся власним баченням щодо вибору оптимальної бази даних для конкретних потреб.

AWS Oracle DB

Джерело: aws.amazon.com

Oracle DB беззаперечно є однією з найпоширеніших комерційних баз даних протягом останніх десятиліть. Коли компаніям потрібні були надійні та високопродуктивні рішення для зберігання даних, Oracle DB часто була першим вибором, і на це було багато вагомих причин.

Відмінності

Oracle – це надійна та багатофункціональна платформа, яка може задовольнити потреби широкого спектру установок і вимог. З часом вона стала провідним рішенням для тих, хто шукає найвищого рівня надійності, масштабованості та керованості в умовах локальної апаратної інфраструктури.

Основні переваги

Ось деякі ключові переваги, які ви отримуєте, обираючи таку зрілу систему баз даних, як Oracle:

✅ Відмінна підтримка та можливості ефективного резервного копіювання та відновлення даних.

✅ Широкий набір опцій для налаштування продуктивності бази даних навіть після її впровадження. Підтримка та обслуговування на цій платформі легко налаштовуються та є високоефективними.

✅ Гнучкість налаштування. Oracle DB підтримує величезну кількість функцій, надаючи системним інтеграторам багато можливостей для створення надійних систем із саме тими функціями, які потрібні їхній платформі (тригери, розділи, підрозділи, автоматизовані послідовності первинних ключів, представлення, знімки, обмеження даних, унікальні ключі, складені ключі, зовнішні ключі, складені індекси тощо). Вона підтримує практично все.

✅ Зручне адміністрування. Спеціалізовані адміністративні консолі та інформаційні панелі, а також різноманітні інструменти, розроблені Oracle для адміністраторів, доступні для негайного використання.

✅ Підтримка багатокористувацького середовища. Якщо потрібно одночасно підтримувати тисячі активних користувачів, Oracle є надійним рішенням.

Основні недоліки

Oracle DB дуже гнучка у вертикальному масштабуванні продуктивності, але менш ефективна у горизонтальному. Це означає, що ви можете легко оновити процесор, збільшити пам’ять та дисковий простір у кластері бази даних.

Проте, якщо обсяг ваших даних різко зросте протягом короткого періоду часу, що часто трапляється з даними у хмарі, вузькі місця продуктивності стануть більш помітними, і їх буде складніше усунути. Розподіл даних між кількома кластерами та очікування їх динамічного зростання стануть ключовими вимогами в майбутньому. У цьому випадку Oracle DB може виявитися більш обмежуючим фактором, ніж допоміжним.

Ще одним потенційним недоліком є вартість. Oracle DB підтримує багато функцій, але значна їх частина має свою ціну, особливо якщо у вас є кілька кластерів і потрібно покращити фізичну продуктивність. Це означає, що програмне налаштування моделі даних може бути недостатнім. Для отримання додаткових адміністративних інструментів та функцій потрібна корпоративна ліцензія, що ще більше збільшить і без того значні витрати.

Крім того, Oracle DB не є нативною службою AWS DB, а це означає, що ви не отримаєте повної підтримки від AWS. Вам потрібно буде зосередитися на підтримці Oracle, а це може означати вирішення проблем Oracle та AWS паралельно з двома різними командами підтримки.

Коли обрати

Вибір хмарного аналога Oracle DB є природним рішенням, якщо ваше поточне локальне рішення вже використовує Oracle DB. Це також спростить міграцію та перехід на хмарне рішення.

Тому, обирайте AWS Oracle DB у випадках, коли:

  • Ви очікуєте, що хмарна база даних підтримуватиме ті ж процеси та функції, що й локальний варіант, у найближчому майбутньому.
  • Ви не плануєте швидку інтеграцію бази даних із великою кількістю нативних сервісів AWS.
  • Ви не очікуєте значного зростання обсягу даних протягом короткого часу.
  • Вам потрібна підтримка широкого спектру функціональних можливостей. Тобто, під час переходу в хмару важливо не втратити деякі з функцій, які використовуються зараз.
  • Ваша система повинна одночасно підтримувати сотні або більше активних користувачів.

Приклади використання

  • Великі телекомунікаційні системи для білінгу, CRM та даних проміжного програмного забезпечення.
  • Спеціалізовані реалізації баз даних для автомобільних систем, інтегрованих з різними спеціальними інструментами або інструментами сторонніх постачальників.
  • Пакетні системні рішення для банківської сфери, де Oracle є фіксованою частиною пакетного рішення від постачальника, а згодом інтегруються додаткові спеціальні компоненти бази даних в одну комплексну реалізацію.

AWS Aurora DB

Джерело: aws.amazon.com

Багато в чому Aurora є протилежністю Oracle, хоча і є реляційною базою даних.

Відмінності

Aurora DB – це нативна служба баз даних AWS. AWS надає їй повну підтримку, постійно розвиває її та тісно інтегрує з усією екосистемою сервісів AWS.

Aurora DB ще не досягла такого рівня різноманітності функціональних можливостей, який має Oracle. Проте, вона була створена в хмарі (на відміну від Oracle). Оскільки AWS продовжує розвивати Aurora, різниця у функціональності в майбутньому може бути меншою, ніж сьогодні.

У багатьох аспектах Aurora вже перевершує Oracle, особливо щодо інтеграції з іншими хмарними сервісами AWS. І оскільки Amazon створив Aurora з урахуванням хмарної екосистеми, вона готова до значного збільшення обсягів даних та їх зростання з часом. Горизонтальне масштабування є її сильною стороною.

Основні переваги

Основними перевагами Aurora DB я б назвав:

✅ Дуже гнучка можливість розширення екземплярів копій бази даних тільки для читання, які можна створити за лічені секунди. Ці екземпляри спільно використовують одні й ті самі журнали БД основної бази даних, з якої вони походять. Це означає, що створення нової бази даних тільки для читання не потребує синхронізації всіх даних, це відбувається автоматично шляхом спільного використання наявних.

✅ Готовність до збільшення обсягу даних. Горизонтальне масштабування є важливим аспектом Aurora DB. Додавання нових кластерів і розширення можливостей масштабування в різних зонах доступності відбувається дуже просто. Aurora ефективно обробляє великі обсяги даних.

✅ Можливість вибору між серверним або безсерверним режимом Aurora DB. Деякі функції можуть бути відсутні в безсерверному режимі. Проте, ви отримуєте більшу гнучкість та оптимізуєте витрати, вибираючи безсерверний режим.

✅ Автоматичне резервне копіювання та легке відновлення на певний момент часу. Aurora DB може виконувати щоденне резервне копіювання, а відновлення повної бази даних до будь-якої точки часу є набагато простішим. Ви отримуєте усі переваги хмарного середовища, такі як завжди доступний вільний простір, швидкі внутрішні операції AWS та спеціалізовану функцію Aurora DB, розроблену для швидкого відновлення та мінімізації часу простою.

✅ Підтримка механізму баз даних MySQL або PostgreSQL, дозволяє вибрати той, який вам більше підходить.

Основні недоліки

  • Незважаючи на те, що Aurora, можливо, є найбагатофункціональнішою нативною реляційною базою даних в AWS, вона все ще відстає від Oracle за цим показником. Це зрозуміло, Oracle мала більше часу для розробки цих функцій. Факт залишається фактом: з кожним випуском Aurora DB стає все потужнішою і наближається до рівня Oracle.
  • Немає локального аналога Aurora DB. Ви можете стверджувати, що старі бази даних MySQL або PostgreSQL дуже схожі, і з точки зору сумісності вони дійсно такі. Проте, вони не є повним еквівалентом. Це означає, що міграція буде не такою простою. Потрібно буде налаштувати та впровадити процеси міграції, щоб забезпечити передачу даних з локальної системи та їх збереження в базі даних Aurora у правильному форматі моделі даних.
  • Різні обмеження AWS, особливо жорсткі, можуть ускладнити вибір цієї бази даних. Дуже ймовірно, що ви зможете їх обійти, але для деяких випадків можуть знадобитися серйозні інвестиції в рефакторинг, що може збільшити загальні витрати на міграцію порівняно з іншою цільовою базою даних.

Коли обрати

У двох словах, вибір Aurora DB як основної реляційної бази даних на платформі AWS ніколи не є поганим рішенням, особливо якщо:

  • Ви створюєте хмарну систему з нуля на основі реляційної бази даних.
  • Ви очікуєте найвищого рівня сумісності та інтеграції з якомога більшою кількістю нативних служб AWS.
  • Ви очікуєте значного зростання обсягу ваших даних протягом короткого часу.
  • Ви плануєте запустити декілька додаткових проектів перевірки концепції (POC), де можна скористатися усіма перевагами безсерверної версії реляційної бази даних.

Приклади використання

  • Безсерверна платформа для аналізу великих обсягів даних зображень інфраструктури.
  • Використання моделей машинного навчання для обробки даних з озера даних та створення бізнес-прогнозів.
  • Netflix використовує Aurora DB для швидкого паралельного виконання запитів до даних свого каталогу.

AWS Microsoft SQL DB

Джерело: aws.amazon.com

Ця база даних певною мірою схожа на Oracle. Вона також була створена задовго до того, як хмара стала популярною, і є багато локальних користувачів, які планують перейти в хмару, використовуючи MS SQL як джерело.

Відмінності

Незважаючи на цю схожість, MS SQL DB використовувалась значно менше, ніж Oracle DB.

Принаймні, судячи з мого особистого досвіду. Я брав участь у багатьох проектах з Oracle протягом останніх двох десятиліть, але лише в кількох випадках, де була задіяна MS SQL. І, відверто кажучи, мені не дуже подобалося працювати з нею, як з Oracle DB.

У будь-якому випадку, я визнаю, що велика частина компаній використовує MS SQL DB як основну базу даних, що є єдиним джерелом достовірної інформації.

Основні переваги

Основні переваги, які має MS SQL DB:

✅ Гарна інтеграція з іншими сервісами та програмним забезпеченням Microsoft, якщо це важливо для вашого бізнесу.

✅ Легке налаштування за допомогою спеціальних розширень коду, переважно у формі модулів коду Javascript. Це може бути корисно, коли ви маєте справу зі складними бізнес-процесами та завданнями, які обробляються через базу даних.

✅ Досить проста в адмініструванні (принаймні, порівняно з Oracle DB).

✅ Можливо, вона краще підходить для хмарної екосистеми Azure, оскільки там вважається нативною системою реляційних баз даних і є більш сумісною з іншими хмарними сервісами.

Основні недоліки

  • Як і у випадку з Oracle DB, будучи нерідною базою даних в хмарі AWS, вся підтримка та вирішення проблем мають здійснюватися через окремі виділені групи підтримки MS SQL.
  • Менша різноманітність функцій порівняно з Oracle DB або Aurora DB.
  • Не підходить для великої кількості активних користувачів.
  • Горизонтальне масштабування є ще більшою проблемою, ніж у випадку з Oracle DB.

Коли обрати

MS SQL DB найкраще підходить, якщо ви хочете перенести існуючу локальну MS SQL базу даних у хмару з мінімальними перешкодами. Також, якщо ви не очікуєте значної інтеграції з іншими хмарними сервісами AWS.

MS SQL DB буде працювати в хмарі AWS як повністю керована база даних з необмеженим сховищем та розширеними параметрами для горизонтальної масштабованості та високої доступності порівняно з локальною альтернативою.

Приклади використання

  • Виступає в якості середньої платформи для індивідуальної інтеграції різних систем баз даних (може бути навіть іншого типу, наприклад, Oracle DB).
  • Різноманітні проекти меншого масштабу, де вартість рішення бази даних є важливим фактором, а бюджет обмежений (і не дозволяє обрати повноцінне рішення Oracle DB).

AWS MySQL і PostgreSQL DB

Джерело: aws.amazon.com

Ці бази даних є відкритими за походженням (хоча зараз придбані великими компаніями), що дає їм як переваги, так і недоліки.

Вони також не такі багаті на функції, як інші альтернативи, особливо у нативній формі. І хоча ви все ще можете використовувати їх обидві в інфраструктурі AWS у такому вигляді, я сумніваюся, що це має занадто великий практичний сенс.

Відмінності

Під час міграції локальної бази даних (будь то MySQL або PostgreSQL) до хмари AWS, ви можете просто використовувати Aurora з механізмом MySQL або PostgreSQL як ціль і таким чином отримати усі додаткові переваги, які може запропонувати Aurora DB.

Звичайно, це означатиме додаткові зусилля на етапі міграції порівняно з вибором нативної альтернативи. Але ці додаткові зусилля будуть незначними.

Їх основна перевага полягає у вартості та тому, що вони найкраще підходять для невеликих проектів, де надійність не є пріоритетом.

Основні недоліки

  • Обидві мають досить обмежені підтримувані функції, і ви повинні бути готові до обмежених можливостей обслуговування та адміністрування.
  • Не підходять для масштабних проектів з великою кількістю активних користувачів.
  • Не найкраще підходять для високопродуктивних рішень і там, де постійне налаштування продуктивності є важливою вимогою.

Коли обрати

  • Якщо вартість є головним фактором, а бюджет дуже обмежений.
  • Якщо проектна ініціатива невелика.
  • Якщо обсяг даних досить малий і не планується значне зростання.

Приклади використання

  • Ініціативи особистих проектів, де вартість інфраструктури має бути мінімальною.
  • Невеликі POC, які мають довести, що запропоновану концепцію можна реалізувати.
  • Проекти невеликих компаній з невеликими обсягами даних.
  • Для невеликих проектів SaaS, які не вимагають значного навантаження бази даних, і де все, що потрібно, це зберігання даних у реляційній моделі даних.

AWS MariaDB

Джерело: aws.amazon.com

MariaDB є повністю відкритою базою даних, розробленою колишніми розробниками MySQL (після придбання MySQL компанією Oracle).

З точки зору сумісності, будь-яка база даних MySQL буде нормально працювати в MariaDB.

Відмінності

З точки зору функцій, відмінностей від MySQL небагато, але відкритий вихідний код є її особливістю.

Технічно, існує багато корисних функцій, які доступні в MariaDB, але не в MySQL.

Основні недоліки

Дуже схожі на випадки з MySQL.

Коли обрати

  • Якщо вам подобається поточна локальна реалізація MariaDB, і ви не хочете переходити на Aurora DB з будь-якої причини.
  • Якщо ви хочете залишатися вірним відкритим джерелам у своєму рішенні бази даних в хмарній екосистемі AWS.

Приклади використання

Дуже схожі на приклади використання MySQL.

Заключні слова

Подібно до того, як Oracle DB була стандартом у локальному середовищі, схоже, що Aurora DB займає це місце у хмарному світі AWS. Принаймні, з точки зору набору функцій, це найкращий варіант.

Навіть якщо вас не цікавлять лідери галузі, корисно знати, що є прості варіанти для перенесення існуючої бази даних у хмару AWS.

І ще краще, за допомогою такого переходу ви автоматично отримуєте функції, яких, можливо, вам раніше не вистачало. Що найважливіше, покращені можливості розширення сховища, висока доступність і горизонтальна масштабованість є нативними властивостями хмарного середовища.