Zdaję sobie sprawę z kilku podstawowych różnic między nimi, tj
EC2 będzie tańsze
RDS Nie musiałbym wykonywać konserwacji
Poza tymi dwoma, są jakieś zalety uruchamiania mojej bazy danych z RDS w przeciwieństwie do oddzielnego serwera EC2 działającego jako serwer MySQL. Zakładając podobne rozmiary instancji, czy oba będą miały te same ograniczenia w zakresie obsługi obciążenia?
Aby dać ci trochę więcej informacji na temat mojego zastosowania, mam bazę danych, nic zbyt dużego ani nic (największa tabela 1 milion wierszy), po prostu duża objętość SELECT.
mysql
amazon-ec2
amazon-rds
Macgyver
źródło
źródło
Odpowiedzi:
To proste pytanie z bardzo skomplikowaną odpowiedzią!
Krótko mówiąc: EC2 zapewni maksymalną wydajność, jeśli wybierzesz EBS RAID0. Wykonywanie RAID0 EBS wymaga dość znacznych nakładów konserwacyjnych, na przykład:
http://alestic.com/2009/06/ec2-ebs-raid
http://alestic.com/2009/09/ec2-consistent-snapshot
EC2 bez RAID0 EBS zapewni kiepską wydajność we / wy, więc nie jest to nawet opcja.
RDS zapewni bardzo dobrą (choć nie maksymalną) wydajność po wyjęciu z pudełka. Konsola zarządzania jest fantastyczna i łatwo ją aktualizować. Wysoka dostępność i slave tylko do odczytu są w zasięgu jednego kliknięcia. To NAPRAWDĘ niesamowite.
Krótka odpowiedź: Idź z RDS. Wciąż na płocie? Idź z RDS !!! jeśli lubisz bóle głowy i dostrajanie do ostatniej chwili w celu uzyskania maksymalnej wydajności, możesz rozważyć EC2 + EBS RAID 0. Vanilla EC2 to straszna opcja dla hostingu MySQL.
źródło
W tym poście jest doskonały punkt odniesienia między:
Benchmark jest bardzo dobry, ponieważ nie koncentruje się tylko w idealnych warunkach (tylko jeden wątek), ale także w bardziej realistycznych scenariuszach, w których do bazy danych trafia 50 wątków.
źródło
RDS nie jest tak naprawdę systemem o wysokiej dostępności. Przeczytaj drobnym drukiem w FAQ RDS. W przypadku przełączenia awaryjnego przełączenie awaryjne może zająć do 3 minut. Dodatkowy amazon zdecyduje, że musi "zaktualizować" twoją instancję rds i wykonać w tym momencie przełączenie awaryjne, które spowoduje wyłączenie bazy danych na "do 3 minut" (z naszego doświadczenia wynika, że może to zająć więcej czasu).
Wysoka dostępność RDS różni się znacznie od replikacji typu master - master lub master - slave i jest znacznie wolniejsza. Nie używają replikacji mysql, ale używają pewnego rodzaju replikacji ebs. Więc w sytuacji przełączania awaryjnego zamontuje ebs na maszynie kopii zapasowej, uruchomi mysql, zaczeka, aż mysql odzyska po awarii (miejmy nadzieję, że nic nie uległo uszkodzeniu), a następnie dokona przełączenia DNS.
Mam nadzieję, że to pomoże ci w ocenie.
źródło
Zdecydowaliśmy się na użycie instancji MySQL EC2, ponieważ mamy dużą liczbę odczytów i potrzebujemy replikacji typu master-slave. Oczywiście możesz uruchomić wiele instancji RDS i samodzielnie skonfigurować replikację MySQL między nimi, ale używamy Scalr.net, który zarządza tym za Ciebie za pomocą instancji EC2.
Zasadniczo po prostu mówimy Scalrowi, ile instancji MySQL chcemy utrzymać, automatyzuje konfigurację replikacji, obsługuje automatyczne przełączanie awaryjne promocji slave do mastera, jeśli master zostanie zerwany itp. Wykonuje zarówno kopie zapasowe SQL, jak i migawki woluminów EBS mistrz. Tak więc, gdy musi utworzyć nowy slave, automatycznie tymczasowo montuje wolumin EBS ostatniej głównej migawki w celu zainicjowania podrzędnej bazy danych, a następnie rozpoczyna replikację od odpowiedniego punktu. Wszystko wskaż i kliknij :) (i nie, nie pracuję dla Scalra ani nic. Scalr jest dostępny jako Open Source, jeśli nie chcesz korzystać z ich usługi)
źródło
Odnośnie pytania o okno konserwacji. Jeśli używasz Multi-AZ, RDS utworzy replikę rezerwową w innej strefie dostępności, dzięki czemu nie ma przestojów na konserwację i chronisz się przed awarią strefy.
To właśnie planuję zrobić w przyszłym tygodniu. Oczywiście będzie cię to kosztować więcej, ale jeszcze tego nie wypracowałem.
źródło
MySQL na EC2 vs RDS MySQL
Zalety MySQL w replikacji między regionami EC2 Amazon EC2
Kopiuj migawki w regionach Amazon EC2
RAID 0 z EBS Striping w MySQL EC2
Do MySQL na EC2 można podłączyć więcej niż 3 TB miejsca na dysku (nie będziesz tego potrzebować do swojego rozmiaru).
Wady MySQL na EC2
Konfiguracja, monitorowanie i konserwacja w porównaniu z RDS
Kopie zapasowe punktu w czasie dostępne w RDS
IOPS mniejsze niż RDS MySQL (nawet po RAID 0) obecnie, 10800 z 6 dyskami dla MySQL na EC2, natomiast 12500 IOPS 16KB dla RDS MySQL
źródło
Wypróbowuję RDS od kilku miesięcy i oto kilka problemów, które mam:
Używanie profilera SQL jest trudne. Ponieważ nie można połączyć programu profilującego bezpośrednio z serwerem, należy uruchomić pewne procedury składowane, aby utworzyć plik dziennika, który można przeanalizować. Chociaż oferują kilka sugestii, jak to zrobić, nie jest to przyjazne dla użytkownika. Zalecałbym tylko, aby tego rodzaju prace wykonał certyfikowany specjalista SQL.
podczas gdy Amazon tworzy kopię zapasową Twojej instancji, nie możesz przywrócić pojedynczej bazy danych. Mam aplikację internetową z kilkoma oddzielnymi bazami danych dla konkretnych klientów i moim rozwiązaniem było uruchomienie instancji EC2 z uruchomionym SQL w celu podłączenia do produkcyjnej bazy danych RDB i zaimportowania danych, a następnie zarchiwizowania ich w instancji EC2. Innym rozwiązaniem było użycie narzędzia innej firmy, które tworzy ogromny skrypt SQL (na serwerze aplikacji), który odtworzy schemat i zapełni dane z powrotem do punktu przywracania.
źródło
Miałem to samo pytanie w ten weekend. RDS ma 4-godzinny okres przestoju w tygodniu, w którym przeprowadza konserwację. RDS wydawał się droższy, jeśli możesz uciec z mikro instancją EC2. (Dotyczy to instancji testowych, które mają minimalny ruch) Nie mogłem również zmienić strefy czasowej instancji RDS, ponieważ nie mam pozwolenia.
Teraz patrzę na http://xeround.com/, czyli mysql na EC2 innej firmy. Nie używają InnoDB, zamiast tego mają własny silnik o nazwie IDG. Właśnie zaczynam to badać, ale są w wersji BETA i dadzą 500 MB miejsca.
źródło