Relacyjne bazy danych odgrywają kluczową rolę w większości systemów infomatycznych, ale radzenie sobie z nimi dla programistów zawsze stanowiło wyzwanie – jak zresztą z większością innych rozwiązań serwerowych. Stąd popularność rozwiązań typu serverless, w których całą złożoność zarządzania serwerem bierze na siebie dostawca usługi. Stąd też pomysł Amazona na usługę Aurora Serverless, relacyjną usługę bazodanową w AWS, która automatycznie uruchamia, skaluje i wyłącza pojemność bazy danych, zapewniając nawet sekundowe rozliczanie dla aplikacji o mniej przewidywalnych wzorcach użytkowania.
Zapowiedź Aurora Serverless pokazano na konferencji re:Invent w 2017, by rok później udostępnić klientom kompatybilną z MySQL wersję tej chmurowej usługi bazodanowej. Teraz Amazon wprowadza wersję kompatybilną z bazą znacznie bardziej skomplikowaną i jednocześnie dającą większe możliwości – PostgreSQL.
Stała się ona dostępna w regionach EU (Ireland), US East (N. Virginia), US East (Ohio), US West (Oregon) i Asia Pacific (Tokyo), w najbliższych miesiącach pojawi się także w kolejnych regionach, w tym bliższych nam EU (Frankfurt) czy EU (Stockholm).
Wyklikaj sobie bazę
W konsoli Amazon RDS użytkownicy mogą teraz wybrać silnik bazy danych Amazon Aurora spośród wersji zgodnych z MySQL lub PostgreSQL. Następnie po wybraniu opcji serverless należy przejść do konfiguracji nowego klastra DB, podając dane uwierzytelniające, identyfikator i pojemność.
Ten ostatni parametr pozwala określić minimalną i maksymalną pojemność bazy. Stosowaną tu jednostką jest Aurora Capacity Unit (ACU), łącząca ilość pamięci z mocą przetwarzania. Jednostki ACU są fakturowane na sekundę, z minimalnym czasem rozliczenia wynoszącym pięć minut. Klaster będzie automatycznie ustawiać określoną minimalną i maksymalną liczbą jednostek ACU. Można też określić okres bezczynności, po którym moc obliczeniowa zostanie wstrzymana.
Aurora Serverless wykrywa bowiem automatycznie, kiedy klaster potrzebuje większej pojemności i pobiera tę pojemność z puli zasobów bazy danych. Dzięki temu niemal w czasie rzeczywistym Aurora obsłuży skok ruchu, a gdy zapotrzebowanie zmniejszy się do zera, to i klaster się odpowiednio zeskaluje. Zapewnia to sporą oszczędność dla środowisk, w których działają aplikacje o zmiennym lub sporadycznym obciążeniu. Aplikacje takie łączą się niezauważalnie w tle z proxy, które kierują obciążenie robocze do puli automatycznie skalowanych zasobów, stale gotowych do włączenia do obsługi nowych zapytań.
Minimalna wielkość pamięci masowej wynosi tu 10 GB i może rosnąć aż do 64 TB w krokach co 10 GB. Amazon zapewnia, że nie wpłynie to negatywnie na wydajność.
Po zakończeniu konfiguracji Aurory Serverless, platforma AWS automatycznie stworzy wolumeny Aurory zreplikowane wzdłuż wielu stref dostępności, przygotuje endpoint w chmurze prywatnej do połączenia z aplikacją, skonfiguruje za endpointem niewidzialny dla klienta loadbalancer, ustawi trasowanie ruchu bazy do instancji i włączy początkową minimalną pojemność instancji.
To na pewno nie dla roboty 24/7
Czy korzystanie z Aurory Serverless ma sens? To zależy od scenariusza wykorzystania, jeśli bowiem liczyć po cenach z cennika Amazona, usługa ta należy raczej do drogich (szczególnie w wersji z silnikiem PostgreSQL). Trzeba jednak pamiętać, że jest wiele systemów, które przez większość czasu w ogóle nie pracują, uaktywniając się na moment, a wymagają na ten moment sporych zasobów. W takich wypadkach rozwiązanie Amazonu wydaje się idealne.
Więcej informacji znaleźć można we wpisie Danilo Pocci na blogu AWS.