AWS: problemy z opóźnieniem między serwerem RDS SQL Server w dwóch regionach
Nasza polityka dotycząca danych klientów oznacza, że musimy hostować naszą bazę danych w Wielkiej Brytanii/UE.
Obecnie mamy instancję EC2 US West (Windows) działającą jako serwer WWW. Jednak po dodaniu nowego wystąpienia London RDS (SQL Server) wydajność jest zauważalnie wolniejsza niż w przypadku wystąpienia tego samego typu w tym samym regionie.
Rozumiem, że w dwóch regionach powinno być niewielkie opóźnienie. Ale co możemy zrobić, aby zniwelować powolność? Pamiętając, że możemy przechowywać dane tylko w Wielkiej Brytanii.
Informacje o instancji RDS
- t2.medium
- Ogólnego przeznaczenia (SSD)
- iOPS wyłączony
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
1 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Obwód
Zgodnie z
ta strona
https://www.cloudping.co/
średnie opóźnienie między eu-west-2 a us-west-2 wynosi około 190 ms. To duże opóźnienie. US-east-1 ma opóźnienie około 95 ms, czyli znacznie mniej.
Większość aplikacji jest prawdopodobnie projektowanych w taki sposób, aby baza danych i serwer aplikacji były blisko siebie. W tym scenariuszu aplikacja może wykonywać częste zapytania do bazy danych bez znaczącego wpływu na aplikację. Wysokie opóźnienie narusza to bardzo rozsądne założenie poczynione przez programistów.
Najlepsze rozwiązanie - Colocate/CDN
Najprostszym i prawdopodobnie najlepszym rozwiązaniem byłoby zbliżenie bazy danych i serwera WWW. Sugeruję umieszczenie obu w tym samym regionie, najlepiej w tym samym AZ. Użyj CloudFront CDN, aby poprawić wydajność, buforując większość zasobów znajdujących się blisko użytkownika.
Najprawdopodobniej odpowiada Twoim wymaganiom.
Rozwiązanie drugie - przeczytaj replikę
Replika RDS do odczytu może być dostarczona w USA. Zmodyfikuj aplikację tak, aby odczyty były wysyłane do lokalnej bazy danych i zapisywały w głównej bazie danych.
Może to nie odpowiadać Twoim wymaganiom.
Rozwiązanie trzecie - replikacja bazy danych
Możesz potencjalnie uruchomić bazę danych, więc istnieją dwie aktywne, główne bazy danych, które są ze sobą stale zsynchronizowane. Zwiększa to nieco ryzyko i może być konieczne uwzględnienie tego w aplikacji lub przynajmniej wykrycie tego.
Może to nie odpowiadać Twoim wymaganiom.