Migracja bazy danych MySQL do Amazon Aurora platformy Landingi.com
Wydajność i efektywność kosztowa relacyjnej bazy danych Amazon Aurora, stworzonej specjalnie na potrzeby infrastruktur chmurowych, jest niemal legendarna. Amazon Aurora okazała się też najlepszym wyborem przy migracji bazy danych MySQL dla platformy Landingi.
Wprowadzenie
Landingi to najpopularniejsza w Polsce i coraz bardziej znana na całym świecie platforma, która umożliwia łatwe i szybkie tworzenie landing pages, dostarczając klientom praktyczne rozwiązania nastawione na satysfakcjonujący rezultat kampanii marketingowych. Dzięki bibliotece zawierającej ponad 250 szablonów landing page’y oraz 50 szablonów pop upów, zbudowanie landing page’a od podstaw i uruchomienie kampanii marketingowej z jego wykorzystaniem jest wyjątkowo proste. Z kolei zaawansowane funkcjonalności, takie jak testy A/B/x, sekcje inteligentne czy integracje z zewnętrznymi aplikacjami pozwalają maksymalnie zoptymalizować działanie landing page’y. Dzięki temu osiągnięcie znacznie wyższego współczynnika konwersji, niż w przypadku klasycznej strony internetowej, staje się możliwe. Z platformy Landingi korzystają klienci w 80 krajach na całym świecie.
Rozwiązanie
Po audycie infrastruktury uznaliśmy, że najlepszym rozwiązaniem będzie przeniesienie bazy z MySQL do Amazon RDS Aurora – kompatybilnej z MySQL, relacyjnej bazy danych z automatycznymi aktualizacjami oprogramowania, kopiami bezpieczeństwa, monitoringiem i autoskalowaniem. Amazon Aurora zgodna z MySQL zapewnia do 5 razy większą przepustowość niż standardowa MySQL.
Migracja została przeprowadzona przy wykorzystaniu narzędzi mysqldump oraz read replica (RDS/Aurora).
Każdy krok migracji musiał zostać wcześniej dokładnie zaplanowany i przetestowany przed finalnym przepięciem aplikacji na nową bazę.
W pierwszym etapie migracji zdecydowaliśmy się na tradycyjną replikację MySQL przy użyciu formatów binlogów „ROW”, ponieważ zapewniał on większą wydajność i prędkość nadrabiania repliki, która praktycznie cały czas była bliska zera. Replikacja była uruchomiona pomiędzy bazami Percony 5.5 i Percony 5.6 na źródle, ponieważ zależało nam na podniesieniu wersji.
W procesie migracji udało nam się usprawnić funkcjonowanie bazy, co pozwoliło na zmniejszenie jej rozmiarów z ok. 700 GB do ok. 300 GB.
Ponieważ migracja w pierwsze fazie wymagała przeniesienia bazy między kontami AWS, zestawiliśmy VPC Peering, aby transmisja danych była zabezpieczona. Dodatkowo w bazie danych uruchomiliśmy połączenia SSL. Pomimo długiego przygotowania do tej migracji i przejścia wszystkich kroków, sama migracja od momentu wyłączenia aplikacji do jej ponownego uruchomienia trwała tylko 10 minut.
Drugi etap to migracja do Aurory, składająca się z dokładnie zaplanowanego procesu, który rozpoczął się od podniesienia do wersji 5.7. Następnie, w celu zaoszczędzenia czasu, wykonaliśmy zrzut bazy i do nowej wgraliśmy tylko schemat, przygotowaliśmy odpowiednie parametry i przeprowadziliśmy migrację.
Ostatecznie proces migracji do Aurory składał się z poniższych kroków:
- zatrzymanie ruchu aplikacyjnego przez klienta,
- weryfikacja, czy wszystkie procesy na bazie głównej i read-only się zakończyły,
- weryfikacja statusu replik pomiędzy wszystkimi bazami w zaprojektowanej strukturze replikacji,
- odcięcie replikacji pomiędzy EC2 a zwykłą instancją w RDS,
- ponowna weryfikacja statusu replikacji na RDS oraz Aurorze,
- ustawienie bazy AWS Aurora głównej dla aplikacji,
- włączenie ruchu produkcyjnego przez klienta na Aurorę.
Wszystkie wymienione 7 kroków zajęło 5 minut!
Schemat infrastruktury
Rezultat
Landingi zyskały jeszcze lepiej dopasowaną infrastrukturę dla swojej platformy. Podczas migracji, oprócz aktualizacji systemu bazy danych, udało się również zmniejszyć jej rozmiar prawie o połowę, co wpłynęło na prędkość działania platformy. Amazon Aurora oznacza nieprzerwane świadczenie usług oraz automatyzuje czasochłonne zadania administracyjne, takie jak konfiguracja i poprawki zabezpieczeń, które wcześniej wymagały ingerencji pracowników.
PYTANIA? SKONTAKTUJ SIĘ Z NAMI
Zobacz również:
Nowa infrastruktura w AWS dla Omnipack z użyciem IaC
Migracja serwisu edukacyjnego EduNect do chmury AWS
Cyfrowa transformacja Modento z użyciem AWS w celu spełnienia wymagań HIPAA
Infrastruktura chmurowa i wsparcie DevOps dla Medonetu na czas pandemii COVID-19