Jak porównują się relacyjne bazy danych AWS

Przegląd Relacyjnych Baz Danych w Kontekście AWS

Tradycyjnie, bazy danych relacyjne stanowiły standardowe rozwiązanie dla szerokiego spektrum zastosowań w przedsiębiorstwach różnej wielkości. Były fundamentem wielu systemów informatycznych.

W dzisiejszych czasach, alternatywy takie jak bazy NoSQL, rozwiązania działające w pamięci RAM czy data lake oferują większą różnorodność. Mimo to, podczas migracji istniejących baz danych do środowiska chmurowego, relacyjne bazy danych nadal często stanowią pierwszy i najprostszy wybór.

Przyjrzyjmy się bliżej kilku popularnym bazom danych, które mogą być brane pod uwagę w procesie migracji:

  • Oracle
  • Aurora
  • Microsoft SQL Server
  • MySQL i PostgreSQL
  • MariaDB

Omówimy ich odmienności, kluczowe cechy, a także słabe strony. Następnie, zaprezentujemy ich praktyczne zastosowania na przykładach z życia. Na koniec, podzielę się moimi przemyśleniami na temat wyboru konkretnej bazy danych dla danego przypadku.

Baza Danych AWS Oracle

Źródło: aws.amazon.com

Oracle DB od dziesięcioleci jest liderem wśród komercyjnych baz danych. Firmy, potrzebując solidnego i efektywnego rozwiązania bazodanowego, często wybierały właśnie Oracle. A to z wielu uzasadnionych powodów.

Jak się Wyróżnia

Oracle to wszechstronna i rozbudowana platforma, która może obsłużyć szeroki zakres konfiguracji i wymagań. Z biegiem czasu, stała się synonimem niezawodności, skalowalności i łatwości utrzymania w infrastrukturze lokalnej.

Główne Zalety

Oto niektóre z kluczowych korzyści wynikających z wyboru tak doświadczonego systemu bazodanowego jak Oracle:

✅ Wyjątkowe wsparcie techniczne oraz zaawansowane opcje tworzenia i odzyskiwania kopii zapasowych.

✅ Szerokie możliwości optymalizacji wydajności w ramach systemu. Ustawienia wsparcia i konserwacji są łatwe w konfiguracji i bardzo efektywne, nawet po wdrożeniu.

✅ Duże możliwości personalizacji. Oracle oferuje szeroki wachlarz funkcji, które umożliwiają dostosowanie systemu do konkretnych potrzeb (wyzwalacze, partycje, podpartycje, automatyczne sekwencje kluczy, widoki, migawki, ograniczenia danych, klucze unikalne, klucze złożone, klucze obce, indeksy złożone itp.).

✅ Intuicyjne zarządzanie. Dostępne są dedykowane konsole administracyjne, pulpity nawigacyjne i wiele narzędzi, opracowanych specjalnie dla administratorów.

✅ Obsługa wielu użytkowników. Oracle jest idealnym rozwiązaniem, gdy wymagana jest obsługa tysięcy użytkowników jednocześnie.

Główne Wady

Oracle DB jest elastyczna w zakresie skalowania pionowego, ale w mniejszym stopniu w skalowaniu poziomym. Oznacza to, że łatwo jest ulepszyć procesor, pamięć i przestrzeń dyskową w klastrze.

Jednak w przypadku gwałtownego wzrostu ilości danych, co jest typowe dla środowiska chmurowego, mogą pojawić się problemy z wydajnością. W takim przypadku Oracle DB może stać się bardziej ograniczeniem niż wsparciem. Konieczność rozproszenia danych na wiele klastrów może być wyzwaniem.

Kolejną potencjalną wadą są koszty. Wiele funkcji Oracle jest płatnych, szczególnie w przypadku wielu klastrów i konieczności aktualizacji sprzętu. Dostrajanie oprogramowania nie zawsze jest wystarczające. Licencja korporacyjna, dająca dostęp do dodatkowych narzędzi, dodatkowo podnosi koszty.

Dodatkowo, Oracle DB nie jest usługą natywną AWS, co oznacza, że wsparcie techniczne będzie pochodzić głównie od Oracle, a problemy z AWS będą rozpatrywane oddzielnie, przez dwa różne zespoły.

Kiedy Wybrać

Przejście na chmurowy odpowiednik Oracle DB jest naturalne, gdy obecne rozwiązanie lokalne już korzysta z Oracle. Ułatwi to migrację i przejście na chmurę.

Wybierz AWS Oracle DB, gdy:

  • Oczekujesz, że chmurowa baza danych będzie działać tak samo jak jej lokalny odpowiednik.
  • Nie planujesz szybkiej integracji bazy danych z natywnymi usługami AWS.
  • Nie przewidujesz gwałtownego wzrostu danych w krótkim czasie.
  • Potrzebujesz dostępu do szerokiej funkcjonalności, z której korzystasz w systemie lokalnym.
  • Twój system musi obsługiwać wielu aktywnych użytkowników jednocześnie.

Przykład Użycia

  • Rozbudowane systemy telekomunikacyjne do obsługi rozliczeń, CRM i danych oprogramowania pośredniczącego.
  • Dedykowane systemy bazodanowe dla branży motoryzacyjnej, zintegrowane z różnymi narzędziami firm trzecich.
  • Rozwiązania dla sektora bankowego, gdzie Oracle jest standardowym elementem pakietu oprogramowania, z dodatkowymi, dedykowanymi komponentami.

Baza Danych AWS Aurora

Źródło: aws.amazon.com

Aurora w wielu aspektach stanowi przeciwieństwo Oracle, mimo że nadal jest bazą danych relacyjną.

Jak się Wyróżnia

Aurora DB to natywna usługa bazodanowa w chmurze AWS. Jest w pełni wspierana przez AWS, ciągle rozwijana i głęboko zintegrowana z ekosystemem usług AWS.

Aurora nie oferuje tak rozbudowanej funkcjonalności jak Oracle. Jednakże, jest zbudowana z myślą o chmurze. Wraz z dalszym rozwojem Aurora, różnice w funkcjonalności mogą się zacierać.

W wielu aspektach, Aurora już przewyższa Oracle, szczególnie pod względem integracji z innymi usługami chmurowymi AWS. Aurora jest gotowa na przetwarzanie dużych ilości danych i dynamiczny wzrost, dlatego skalowanie poziome jest jej mocną stroną.

Główne Zalety

Główne zalety Aurora DB to:

✅ Elastyczne skalowanie instancji do odczytu. Można je tworzyć w kilka sekund. Dzielą one te same logi co główna baza danych. Oznacza to, że utworzenie nowej bazy danych tylko do odczytu nie wymaga synchronizacji wszystkich danych, gdyż odbywa się to automatycznie.

✅ Gotowość na duże ilości danych – skalowanie poziome to mocna strona Aurora DB. Dodawanie nowych klastrów i rozszerzanie skalowalności w różnych strefach dostępności jest bardzo proste. Aurora jest wysoce wydajna w szybkim wyszukiwaniu dużych zbiorów danych.

✅ Możliwość wyboru trybu serwerowego lub bezserwerowego. Niektóre funkcje mogą być niedostępne w trybie bezserwerowym, ale zyskujemy elastyczność i optymalizację kosztów.

✅ Automatyczne kopie zapasowe i łatwe przywracanie do dowolnego momentu w czasie. Aurora DB wykonuje codzienne kopie zapasowe, a przywrócenie pełnej bazy danych do wcześniejszego stanu jest znacznie prostsze. Wykorzystuje zalety środowiska chmurowego, takie jak dostępna przestrzeń, szybkie operacje AWS i dedykowane funkcje, aby zapewnić krótki czas odzyskiwania.

✅ Wsparcie silników MySQL lub PostgreSQL.

Główne Wady

  • Mimo że Aurora jest prawdopodobnie najbardziej rozbudowaną natywną bazą danych w AWS, pod względem funkcjonalności wciąż pozostaje w tyle za Oracle. Wynika to z dłuższego czasu rozwoju Oracle. Faktem jest, że Aurora z każdym wydaniem staje się coraz bardziej wszechstronna.
  • Brak odpowiednika Aurora DB w środowiskach on-premise. Stare bazy zbudowane w oparciu o MySQL lub PostgreSQL są podobne z punktu widzenia kompatybilności, ale nie są one dokładnym odpowiednikiem. Migracja może być bardziej skomplikowana. Konieczne jest dostosowanie procesów migracji, aby poprawnie przenieść dane do Aurora DB, zachowując przy tym właściwy format danych.
  • Różne limity AWS mogą w niektórych przypadkach zniechęcić do wyboru tej bazy danych. Możliwe jest ich obejście, ale może to wiązać się z koniecznością refaktoryzacji, co zwiększy ogólne koszty migracji.

Kiedy Wybrać

Wybór Aurora DB jako relacyjnej bazy danych w AWS jest dobrą decyzją, szczególnie, gdy:

  • Tworzysz od zera system chmurowy, oparty o bazę danych relacyjną.
  • Zależy Ci na wysokiej kompatybilności i integracji z innymi natywnymi usługami AWS.
  • Spodziewasz się dużego wzrostu danych w krótkim czasie.
  • Planujesz uruchomić projekty typu proof of concept (POC), które skorzystają z zalet bezserwerowej wersji relacyjnej bazy danych.

Przykład Użycia

  • Bezserwerowe platformy do analizy dużych ilości danych obrazowych.
  • Wykorzystanie modeli uczenia maszynowego do przetwarzania danych z data lake i generowania prognoz biznesowych.
  • Netflix korzysta z Aurora DB do szybkiego wykonywania zapytań na danych katalogowych.

Baza Danych AWS Microsoft SQL

Źródło: aws.amazon.com

Ta baza danych w pewnych aspektach jest porównywalna z Oracle. Została stworzona przed pojawieniem się chmury, a wielu użytkowników lokalnych planuje migrację do chmury, wykorzystując MS SQL jako źródło danych.

Jak się Wyróżnia

MS SQL DB, mimo pewnych podobieństw do Oracle, była w przeszłości mniej popularna.

Z mojego doświadczenia wynika, że brałem udział w wielu projektach z Oracle, a jedynie w kilku, gdzie używano MS SQL. Nie byłem tak zadowolony z pracy z MS SQL, jak z Oracle.

Mimo to, wiem, że wiele firm korzysta z MS SQL DB jako głównej bazy danych.

Główne Zalety

Główne zalety MS SQL DB to:

✅ Dobra integracja z innymi produktami Microsoft, co może być przydatne w wielu przypadkach.

✅ Łatwa personalizacja za pomocą rozszerzeń kodu, głównie w postaci modułów JavaScript. Może to być użyteczne w bardziej złożonych procesach biznesowych, które mają być planowane w bazie danych.

✅ Stosunkowo prosta administracja, przynajmniej w porównaniu z Oracle DB.

✅ W ekosystemie Azure, MS SQL DB jest uważana za natywny system relacyjnej bazy danych, bardziej kompatybilny z innymi usługami chmurowymi.

Główne Wady

  • Podobnie jak Oracle DB, MS SQL nie jest natywną bazą danych w chmurze AWS, dlatego wsparcie techniczne jest realizowane przez odrębne zespoły MS SQL.
  • Mniejsza funkcjonalność w porównaniu z Oracle DB i Aurora DB.
  • Nieodpowiednia dla dużej liczby aktywnych użytkowników.
  • Skalowalność pozioma stanowi jeszcze większy problem niż w przypadku Oracle DB.

Kiedy Wybrać

MS SQL najlepiej nadaje się do migracji istniejącej bazy danych MS SQL do chmury, bez zbędnych komplikacji. Jest też dobrym wyborem, gdy integracja z innymi usługami AWS nie jest priorytetem.

MS SQL w chmurze AWS działa jako w pełni zarządzana baza danych, oferując większą pamięć masową i lepsze opcje skalowalności, niż w środowisku lokalnym.

Przykład Użycia

  • Jako platforma pośrednicząca do integracji różnych systemów bazodanowych (nawet innych typów, jak np. Oracle DB).
  • Mniejsze projekty, gdzie koszty bazy danych są istotnym czynnikiem, a budżet jest ograniczony (i nie pozwala na wdrożenie Oracle DB).

Bazy Danych AWS MySQL i PostgreSQL

Źródło: aws.amazon.com

Bazy te są otwarte (choć obecnie są własnością większych firm), co wiąże się z pewnymi zaletami i wadami.

Nie są też tak rozbudowane jak inne alternatywy. Można ich używać w infrastrukturze AWS, ale wątpię, by w praktyce miało to sens.

Jak się Wyróżniają

Podczas migracji lokalnej bazy danych (MySQL lub PostgreSQL) do chmury AWS, można bezpośrednio użyć Aurory z silnikiem MySQL lub PostgreSQL, co pozwala na wykorzystanie wszystkich dodatkowych korzyści, jakie oferuje Aurora DB.

Oczywiście wiąże się to z dodatkowym wysiłkiem w fazie migracji. Jednak ten wysiłek jest marginalny.

Ich główną zaletą są koszty i to, że najlepiej sprawdzają się w małych inicjatywach projektowych, gdzie solidność nie jest tak ważna.

Główne Wady

  • Obie bazy danych mają ograniczoną funkcjonalność i oferują ograniczone opcje konserwacji i administracji.
  • Nie nadają się do dużych projektów z wieloma użytkownikami.
  • Nie są odpowiednie dla rozwiązań o wysokiej wydajności, gdzie optymalizacja jest kluczowa.

Kiedy Wybrać

  • Gdy koszt jest najważniejszy, a budżet ograniczony.
  • Gdy inicjatywa projektowa jest niewielka.
  • Gdy wolumen danych jest mały i nie przewiduje się znacznego wzrostu.

Przykład Użycia

  • Indywidualne projekty, gdzie koszty infrastruktury muszą być jak najniższe.
  • Małe projekty typu POC, które mają za zadanie udowodnić, że koncepcja jest możliwa do zrealizowania.
  • Projekty małych firm z małą ilością danych.
  • Małe projekty SaaS, które nie wymagają dużej obsługi bazy danych. Wystarczy przechowywanie danych w sposób relacyjny.

AWS MariaDB

Źródło: aws.amazon.com

MariaDB jest bazą danych open source, stworzoną przez byłych programistów MySQL (po przejęciu MySQL przez Oracle).

Z punktu widzenia kompatybilności, każda baza danych MySQL będzie działać w MariaDB.

Jak się Wyróżnia

Pod względem funkcji, nie ma wielu różnic w porównaniu do MySQL, ale kluczową cechą jest open source.

Technicznie rzecz biorąc, w MariaDB jest kilka przydatnych funkcji, które nie są dostępne w MySQL.

Główne Wady

Podobne do przypadku MySQL.

Kiedy Wybrać

  • Jeśli preferujesz swoje lokalne wdrożenie MariaDB i nie chcesz przechodzić do Aurora DB.
  • Jeśli chcesz zachować pełną otwartość swojego rozwiązania bazodanowego w chmurze AWS.

Przykład Użycia

Podobny do przypadku MySQL.

Podsumowanie

Oracle DB była standardem w świecie on-premise, a Aurora DB wydaje się zajmować to miejsce w chmurze AWS. Przynajmniej pod względem funkcjonalności, jest do niej najbardziej zbliżona.

Niezależnie od preferencji, warto wiedzieć, że istnieją proste opcje migracji istniejącej bazy danych do chmury AWS.

Co więcej, przejście na chmurę automatycznie daje dostęp do funkcji, których wcześniej mogło brakować, takich jak lepsza skalowalność, wysoka dostępność i skalowalność pozioma.