Wszystko, czego nie wiedziałeś o Amazon Aurora

Tradycyjne systemy zarządzania danymi borykają się z licznymi ograniczeniami dotyczącymi efektywności, dostępności i możliwości rozbudowy. Rozwiązaniem tych wyzwań jest Amazon Aurora.

Bazy danych stanowią fundament funkcjonowania aplikacji biznesowych. Powinny charakteryzować się większą pojemnością, niezawodnością oraz szybkością działania, aby gwarantować wyższą jakość usług. Amazon Web Services ułatwia firmom zarządzanie informacjami i podnosi satysfakcję klientów.

Przykładem takiej usługi jest Amazon AWS Aurora. Wykorzystuje ona wolumen klastra do organizacji danych oraz ich alokacji na potrzeby tworzenia kopii bezpieczeństwa.

Czym jest Amazon Aurora?

Amazon Aurora, chmurowa baza danych, jest w pełni kompatybilna z otwartymi rozwiązaniami MySQL i PostgreSQL. Obsługuje wszystkie funkcje open-source MySQL. Zapewnia również bezpośrednią zgodność z aplikacjami opartymi na tych systemach.

Aurora została stworzona z myślą o klientach poszukujących w pełni zarządzanej usługi bazodanowej, która łączy ekonomiczność i prostotę rozwiązań open source z wydajnością charakterystyczną dla komercyjnych baz danych.

Aurora oferuje wydajność pięciokrotnie wyższą niż standardowy MySQL oraz trzykrotnie lepszą niż PostgreSQL. Amazon RDS odpowiada za zadania takie jak udostępnianie, archiwizacja i odzyskiwanie danych. Usługa nie wiąże się z kosztami wstępnymi, a opłaty naliczane są w systemie miesięcznym.

Unikalność Aurory polega na oferowaniu doskonałości operacyjnej oraz funkcji korporacyjnych przy znacznie niższych kosztach niż w przypadku komercyjnych baz danych.

Aurora zapewnia najwyższą wydajność, dostępność, bezpieczeństwo i niezawodność w skali globalnej. Od czasu swojego debiutu w 2014 roku, Aurora jest najszybciej rozwijającą się usługą w ofercie AWS.

Do czego służy Amazon Aurora?

Gwałtowny rozwój Aurory wynika z dużego zainteresowania ze strony różnych sektorów gospodarki. W ciągu ostatniego roku odnotowano znaczące zainteresowanie w branżach usług finansowych, oprogramowania i internetu, a także rozrywki, gier i sprzedaży detalicznej.

Klienci migrują do Aurora MySQL oraz Aurora PostgreSQL, aby dokonać konsolidacji swoich baz danych. Obserwuje się również tendencję migracji z starszych rozwiązań, takich jak Oracle czy Microsoft SQL Server, do Aurora PostgreSQL.

Użytkownicy, którzy cenią sobie brak przestojów, mają dość wysokich opłat licencyjnych i ograniczeń starszych baz danych. Dynamicznie rozwijające się przedsiębiorstwa dążą do szybkiego i bezproblemowego skalowania działalności we wszystkich regionach. Ważna jest dla nich także możliwość integracji z innymi usługami AWS.

Zalety Amazon Aurora

Poniżej prezentujemy korzyści wynikające z korzystania z Amazon Aurora:

Skalowalność

Możliwość włączenia automatycznego skalowania. Pozwala to na zwiększenie pojemności w przypadku zwiększonego zapotrzebowania, a także zmniejszenie rozmiaru bazy danych, gdy zapotrzebowanie na miejsce spada.

Ekonomiczność

Opłata jest naliczana jedynie za faktycznie wykorzystaną moc obliczeniową i przestrzeń dyskową. Usługa nie wymaga żadnych opłat wstępnych ani ukrytych kosztów. Miesięczne płatności są proste i przejrzyste.

Bezpieczeństwo

Amazon VPC umożliwia odizolowanie sieci, w której działa baza danych.

Usługa zarządzania kluczami AWS pozwala tworzyć klucze szyfrujące, które chronią dane.

Wysoka dostępność i trwałość

Możliwość tworzenia replik Aurory w wielu strefach dostępności.

Globalna baza danych, którą można łatwo rozmieszczać w różnych regionach AWS, co ogranicza lokalne opóźnienia związane z odczytem/zapisem.

Wsparcie migracji

Do przeprowadzenia migracji lokalnej bazy danych do Aurory można wykorzystać polecenia pg-dump lub MySQL dump.

W pełni zarządzana

Aurora jest bardzo prosta w obsłudze. Konfiguracja instancji za pomocą konsoli AWS RDS jest intuicyjna. Aurora oferuje monitorowanie przy użyciu Amazon Cloudwatch bez dodatkowych opłat.

Nie ma potrzeby martwić się o udostępnianie, aktualizacje czy modernizacje. Amazon sprawuje pełną kontrolę nad oprogramowaniem i wdraża wszelkie niezbędne poprawki.

Najważniejsze cechy Amazon Aurora

Poniżej znajdują się kluczowe cechy Amazon Aurora:

Skalowalność: To wiodąca zaleta Amazon Aurora. Baza danych automatycznie dostosowuje swój rozmiar do aktualnych potrzeb. Wolumen może zwiększać się o 10 GB, osiągając maksymalnie 128 TB. Umożliwia to bezproblemowe przechowywanie danych.

Wysoka przepustowość: Testy SysBench wykazały pięciokrotny wzrost przepustowości. Amazon Aurora wykorzystuje szereg technik programowych i sprzętowych w celu maksymalizacji dostępnej pamięci, mocy obliczeniowej i sieci. W celu poprawy spójności wydajności, operacje wejścia i wyjścia wykorzystują techniki systemów rozproszonych, takie jak kworum.

Monitorowanie i naprawa instancji: Amazon RDS stale monitoruje stan i wydajność bazy danych Amazon Aurora, a także bazowych instancji EC2. W przypadku awarii bazy danych i powiązanych procesów, Amazon RDS automatycznie uruchamia ją ponownie.

Szyfrowanie: Amazon Aurora oferuje wysoki poziom bezpieczeństwa poprzez szyfrowanie bazy danych za pomocą kluczy, które są tworzone i kontrolowane przez użytkownika za pośrednictwem usługi zarządzania kluczami AWS. Do ochrony danych w trakcie przesyłania wykorzystywane jest szyfrowanie SSL.

Łatwość użycia: Amazon Aurora jest intuicyjna w obsłudze. Konsola zarządzania Amazon RDS służy do tworzenia nowych instancji Amazon Aurora DB. Do wywołania API lub CLI wymagane jest tylko jedno wywołanie. Instancje Amazon Aurora DB są wstępnie skonfigurowane z odpowiednimi ustawieniami dla każdego typu instancji DB.

Ekonomiczność: Opłata jest naliczana tylko za faktycznie wykorzystane zasoby. Nie ma żadnych opłat wstępnych ani dodatkowych kosztów. Miesięczne płatności są proste i przejrzyste.

Obsługa migracji: Do migracji lokalnej bazy danych z Aurory można wykorzystać polecenia pg-dump lub MySQL dump.

Aurora jest w pełni zarządzana: Możliwość natychmiastowego rozpoczęcia korzystania z usługi. Wystarczy utworzyć instancję za pomocą konsoli AWS RDS lub wywołać API z poziomu aplikacji. Nie ma konieczności martwienia się o udostępnianie, aktualizacje lub modernizacje.

Architektura Amazon Aurora

Cała architektura bazy danych Aurora jest oparta na tradycyjnych systemach DBMS. Wykorzystuje ona większość elementów DBMS, takich jak menedżer transakcji, mechanizm wykonywania zapytań oraz menedżer odzyskiwania.

Amazon Aurora to nowy system DBMS, który wykracza poza konwencjonalne podejście. Wprowadza szereg udoskonaleń do istniejących systemów DBMS w celu zwiększenia ich dostępności, niezawodności i skalowalności.

Zmiany te obejmują:

  • Zastosowanie konfiguracji repliki podstawowej
  • Możliwość replikacji zdalnego przechowywania danych
  • Zapisywanie tylko dzienników zmian na zdalnym dysku

Architektura Amazon Aurora umożliwia skalowanie warstw przechowywania tradycyjnych relacyjnych baz danych.

Podstawowa instancja bazy danych Amazon Aurora przesyła dziennik powtórzeń do warstwy pamięci w celu przetworzenia. Warstwa pamięci przetwarza dzienniki, tworzy i przechowuje nowe wersje stron oraz tworzy kopie zapasowe w S3.

Źródło obrazu: AWS

Podczas skalowania w poziomie Amazon Aurora potrzebuje tylko utworzyć dodatkowe instancje silnika bazy danych i połączyć je z istniejącą warstwą pamięci. Eliminuje to wąskie gardło w replikacji danych poprzez delegowanie zadań do równoległego przetwarzania w warstwie pamięci.

Umożliwia to tworzenie nowych funkcji, takich jak:

  • Natychmiastowe przywracanie po awarii: Nie ma konieczności odtwarzania dzienników z ostatniego punktu kontrolnego
  • Szybkie przełączanie awaryjne: Nie trzeba martwić się o to, która baza danych repliki zawiera najnowszy rekord dziennika powtórzeń. Warstwa pamięci obsługuje ten proces.
  • Śledzenie wsteczne: Ponieważ warstwa pamięci ma strumieniowe przesyłanie dzienników powtórzeń, może cofnąć dane do określonych momentów w przeszłości bez konieczności przywracania punktu kontrolnego z kopii zapasowej S3.

Konfigurowanie Amazon Aurora

Poniżej przedstawiono kroki, które należy wykonać, aby pomyślnie skonfigurować Amazon Aurora.

#1. Zaloguj się do konsoli zarządzania AWS i otwórz RDS.

#2. Kliknij „Utwórz bazę danych”.

#3. Wybierz opcję silnika jako Amazon Aurora.

#4. Wybierz potrzebną wersję Aurora MySQL.

#5. Utwórz identyfikator klastra DB i ustaw nazwę użytkownika oraz hasło w ustawieniach poświadczeń.

#6. Wybierz konfigurację instancji z listy rozwijanej i opcję tworzenia repliki (lub jej braku).

#7. Wybierz opcje łączności, jak pokazano poniżej.

#8. Wybierz istniejącą grupę zabezpieczeń VPC lub utwórz nową.

#9. Włącz rozszerzone monitorowanie, wybierz opcję szczegółowości i rolę monitorowania.

#10. Na koniec kliknij „Utwórz bazę danych”.

#11. Pomyślnie utworzyłeś bazę danych Amazon Aurora.

Model cenowy: Amazon Aurora

Jednostki Aurora Serverless ACU v2 kosztują 0,12 USD za godzinę, czyli dwukrotnie więcej niż alokowane jednostki ACU Aurora. Oznacza to:

  • Minimalny koszt operacyjny: 4 ACU, 0,48 USD za godzinę lub 350 USD miesięcznie
  • W przypadku obciążeń, które patologicznie wyzwalają funkcję automatycznego skalowania, minimalny przyrost skalowalności wynosi 30 sekund lub 0,0005 USD za połowę ACU.

Miesięczny koszt Aurora Serverless V2 wynosi 350 USD. Za każde zdarzenie skalowania automatycznego naliczana jest opłata w wysokości co najmniej 0,0005 USD. Natomiast równoważna pojemność Aurory kosztuje 175 USD miesięcznie, ale nie oferuje responsywnego automatycznego skalowania bezserwerowego.

Przykłady zastosowań: Amazon Aurora

#1. Oprogramowanie jako usługa (SaaS)

Wykorzystuje wielodostępne architektury, które są elastyczne w skalowaniu pamięci masowej i instancji. Dzięki temu Amazon Aurora pozwala firmom skupić się na tworzeniu wysokiej jakości aplikacji bez obciążania bazą danych.

#2. Przemysł gier

AWS Aurora funkcjonuje w podobny sposób jak relacyjna baza danych. Zapewnia wysoką przepustowość, ogromną pojemność pamięci masowej, wysoką dostępność i niezawodność.

#3. Aplikacje korporacyjne

Amazon Aurora jest kompatybilna z każdą firmą i stanowi lepszą alternatywę niż relacyjna baza danych. Aurora jest opłacalna, ponieważ redukuje koszty nawet o 90% w porównaniu z innymi rozwiązaniami.

Kompatybilność Aurory z MySQL i PostgreSQL

Amazon Aurora została stworzona z myślą o wysokiej wydajności, globalnej dostępności oraz pełnej kompatybilności z MySQL/PostgreSQL. Standardowe narzędzia ułatwiają migrację baz danych MySQL i PostgreSQL do Aurory. Można również uruchamiać starsze aplikacje SQL Server za pomocą Babelfish dla Aurora PostgreSQL, przy minimalnych zmianach w kodzie.

Amazon Aurora współpracuje ze standardowymi narzędziami do importu/eksportu PostgreSQL, takimi jak pg_dump lub pg_restore. Możliwe jest również utworzenie nowej tabeli Amazon Aurora za pomocą Amazon RDS lub migawki MySQL DB.

Migawki baz danych są zazwyczaj tworzone szybko, jednak czas trwania procesu zależy od ilości i formatu migrowanych danych.

Amazon Aurora kontra Amazon RDS

Projekt architektury

Architektura RDS jest podobna, ponieważ umożliwia ręczną instalację silnika bazy danych na Amazon EC2, jednak udostępnianie i utrzymanie pozostaje po stronie AWS. RDS oferuje wiele funkcji, takich jak automatyczne przełączanie awaryjne i tworzenie kopii zapasowych. RDS korzysta z woluminów Amazon EBS do przechowywania dzienników i danych bazy danych.

System przechowywania bazy danych Aurora jest niezawodny i odporny na awarie. Przechowywanie danych w Aurorze jest niezależne od instancji. Aurora przechowuje dane w sześciu kopiach, każda o pojemności 10 GB. Kopie te są dystrybuowane do trzech stref dostępności. Nawet przy jednej instancji Aurory, nadal istnieje sześć kopii danych.

Wydajność

RDS korzysta z dysków SSD w celu zwiększenia przepustowości we/wy. Dostępne są dwie opcje pamięci masowej opartej na dyskach SSD: jedna do wysokowydajnych aplikacji OLTP, a druga do ogólnego, ekonomicznego użytku.

Aurora oferuje dwukrotnie wyższą wydajność niż PostgreSQL i pięciokrotnie wyższą niż standardowy MySQL na porównywalnym sprzęcie. Wydajność Aurory jest stale wyższa i bardziej spójna.

Obsługa silnika bazy danych

RDS jest kompatybilny z MySQL, PostgreSQL i MariaDB, a także Microsoft SQL Server oraz Oracle.

Aurora jest kompatybilna zarówno z PostgreSQL, jak i MySQL. Umożliwia to korzystanie z istniejących narzędzi i aplikacji bazodanowych w PostgreSQL i MySQL bez wprowadzania zmian.

Trwałość i dostępność

Aurora posiada unikalny model przechowywania, który umożliwia ciągłe tworzenie kopii zapasowych i przywracanie danych przy bardzo niskim RPO (cel punktu odzyskiwania). Dzięki temu jest bardziej niezawodna i trwała niż RDS.

Dane w Aurorze są trwałe z założenia. Zawsze istnieje wiele kopii danych. Każdy klaster Aurora ma sześć węzłów magazynowania rozmieszczonych w trzech strefach dostępności. Nawet przy jednym węźle obliczeniowym, nadal istnieje wiele kopii danych.

Odporność

Ze względu na swoją architekturę Aurora jest bardziej odporna niż RDS. Szybko reaguje na awarie. Jeśli węzeł obliczeniowy ulegnie awarii, Aurora szybko przywraca sprawność.

Magazynowanie

Automatyczne skalowanie pamięci masowej RDS rozszerza pojemność do 64 TiB (z wyjątkiem 16 TiB w SQL Server), aby sprostać rosnącym obciążeniom bazy danych. Proces ten nie powoduje przestojów.

Aurora automatycznie zwiększa przestrzeń dyskową, zaczynając od 10 GB do maksymalnie 128 TiB. Magazyn jest powiększany w krokach co 10 GB bez wpływu na wydajność bazy danych.

Skalowalność

Skalowanie pionowe: RDS i Aurora umożliwiają skalowanie pamięci i zasobów obliczeniowych do maksymalnie 244 GiB RAM i 32 wirtualnych procesorów. Skalowanie operacji odbywa się w kilka sekund.

Aurora Auto Scaling Dynamic: Aurora Auto Scaling dynamicznie dostosowuje liczbę replik Aurora dostępnych dla klastra Aurora DB przy użyciu replikacji pojedynczego wzorca. RDS NIE obsługuje takiego automatycznego skalowania.

Replikacja

RDS może dostarczyć do pięciu replik. Proces replikacji jest wolniejszy niż w przypadku Aurory.

Aurora może udostępnić do 15 replik, a replikacja zajmuje tylko kilka sekund. Aurora skaluje się szybciej, ponieważ może szybko dodawać nowe repliki do odczytu.

Przełączanie awaryjne

W RDS przełączenie awaryjne w celu odczytania repliki odbywa się ręcznie. Może to prowadzić do utraty danych. Multi-AZ (instancja wstrzymania) może służyć do automatyzacji przełączania awaryjnego i zapobiegania utracie danych.

Aby zapobiec utracie danych, Aurora wykorzystuje przełączanie awaryjne w celu automatycznego odczytu replik. Aurora charakteryzuje się szybszym czasem przełączania awaryjnego.

Punkty końcowe klastra

RDS posiada punkt końcowy klastra, który służy do wykonywania zapytań zapisu. Jest to wskaźnik DNS do aktualnej głównej instancji bazy danych. RDS kieruje punkt końcowy do nowego mastera poprzez prostą zmianę DNS podczas przełączania awaryjnego.

Punkt końcowy klastra jest nadal dostępny w Aurorze do pisania zapytań. Ten punkt końcowy działa również jako moduł równoważenia obciążenia dla replikacji odczytu. Może on być wykorzystany do odpowiadania na zapytania dotyczące odczytu.

Kopie zapasowe

RDS automatycznie tworzy i zapisuje kopie zapasowe instancji bazy danych w oknie tworzenia kopii zapasowej instancji. RDS tworzy migawkę instancji bazy danych jako wolumin pamięci masowej, tworząc kopię zapasową wszystkich baz danych, a nie tylko wybranych.

Aurora automatycznie tworzy kopie zapasowe woluminów klastra i przywraca dane przez cały okres przechowywania kopii zapasowych. Kopie zapasowe Aurory są ciągłe i przyrostowe, umożliwiając szybkie przywrócenie dowolnego punktu w okresie przechowywania kopii zapasowych.

Poniżej znajduje się podsumowanie porównania Amazon Aurora i Amazon RDS:

Amazon AuroraAmazon RDSPamięć można rozszerzyć od 10 GB do 64 GB.RDS umożliwia 64 GB dla wszystkich silników, ale tylko 16 GB dla serwera SQL.Możliwość skalowania pamięci i obliczeń do 32 procesorów wirtualnych i 244 GiB pamięci RAM.Tak samo jak Aurora.Obsługuje MySQL i PostgreSQL.Obsługuje Microsoft SQL Server, MariaDB, Oracle Database, MySQL, PostgreSQL i Amazon Aurora.Obsługuje 15 replik.Obsługuje 5 replik.Ceny zależą od operacji we/wy.Możliwość bezpłatnego testowania bez minimalnej opłaty za użytkowanie.

Amazon Aurora kontra DynamoDB

Trwałość i dostępność

Każdy fragment danych DynamoDB jest replikowany do wielu fizycznych węzłów. Amazon umieścił te węzły w różnych strefach dostępności, aby zapewnić wysoką trwałość i dostępność w przypadku zdarzeń losowych, takich jak pożar czy poważna przerwa w dostawie prądu. Operacja będzie kontynuowana, nawet jeśli jedna kopia ulegnie awarii. Dyski SSD są również bardzo niezawodne i trwałe.

Kopie zapasowe i przywracanie

DynamoDB oferuje kopie zapasowe na żądanie oraz PITR (kopie zapasowe w określonym punkcie czasu), co umożliwia dostęp do dowolnego stanu bazy danych. DynamoDB jest w stanie wykonać kopię zapasową dowolnej ilości danych bez wpływu na wydajność i dostępność. Tworzenie kopii zapasowych zajmuje bardzo mało czasu, a użytkownicy nie muszą martwić się harmonogramami tworzenia kopii zapasowych ani procesami w tle. AWS umożliwia odzyskiwanie kopii zapasowych za pomocą jednego wywołania API.

Proces tworzenia kopii zapasowych Amazon Aurora jest zbliżony do DynamoDB. Został zaprojektowany bez przestojów i przerw w działaniu usługi bazy danych. Kopie zapasowe Amazon są zapisywane w zasobniku S3. Aurora automatycznie utworzy 30-minutową kopię zapasową, jeśli nie zostanie określone okno tworzenia kopii zapasowej.

Kontrola dostępu

DynamoDB obsługuje użytkowników i role IAM z wykorzystaniem szczegółowych zasad, które ograniczają uprawnienia do tworzenia baz danych i zapytań. Amazon Aurora również oferuje podobny schemat uprawnień.

Jednak Aurora zapewnia interfejsy połączeń zgodne z MySQL i PostgreSQL do łączenia z bazą danych.

DynamoDB, usługa regionalna, nie podlega ograniczeniom VPC. Natomiast klastry Aurora DB muszą być ustanowione w VPC, które jasno określają granice sieci. Można również wykorzystać grupy bezpieczeństwa VPC do kontrolowania, które urządzenia lub instancje Amazon EC2 mogą łączyć się z instancją bazy danych.

Poniżej znajduje się podsumowanie porównania Amazon Aurora i DynamoDB:

Amazon AuroraDynamoDBRelacyjna baza danych obsługująca MySQL i PostgreSQLBaza danych NoSQLWieloregionowy, z jednym wzorcemWieloregionowy, z wieloma wzorcamiReplikę można awansować do poziomu podstawowego w ciągu minutyWysoka dostępnośćOpóźnienie replikacji poniżej 1 sekundyOpóźnienie replikacji poniżej milisekund

Podsumowanie

To już wszystko. Wchodzimy w nową erę relacyjnych baz danych, a Aurora jest tylko początkiem. Klienci zareagowali z ogromnym entuzjazmem. Liderzy z każdej branży, tacy jak Capital One, Dow Jones, Netflix i Verizon, migrują swoje relacyjne bazy danych do Aurory, w tym wersje zgodne z MySQL i PostgreSQL.


newsblog.pl