Mam bazę danych aktualnie uruchomioną na EC2. Gdy muszę przenieść go na większą maszynę, pojawiło się pytanie o użycie RDS.
Cennik:
Mogę uzyskać instancję EC2 c3.large
z dwoma dyskami SSD (16 GB każdy), dwoma procesorami vCPU i 4 GB pamięci na żądanie za 0,132 USD za godzinę [1] .
Najbliższa (biorąc pod uwagę cenę) maszyna RDS to db.m3.medium
0,125 USD za godzinę (Single-AZ) [2] . To urządzenie ma taką samą ilość pamięci, ale tylko jedną kartę vCPU [3] . Dodatkowo musiałbym zapłacić za przechowywanie i io [2] .
Tak więc ceny byłyby bardzo podobne dla tych dwóch.
Zalety EC2:
- Jak już wspomniano, jeszcze jeden vCPU.
- Mogę umieścić Write-Ahead-Log na drugim dysku podczas korzystania z EC2 (świetna poprawa wydajności, gdy dużo piszesz do bazy danych).
- Mogę uruchomić pgbouncer na mojej instancji EC2 (większa wydajność, ponieważ mogę utrzymywać otwarte połączenia).
- Mogę edytować plik konfiguracyjny (ostatecznie poprawi wydajność)
Zalety RDS:
- Automatycznie wykonuje codzienne kopie zapasowe.
Czy RDS może pokryć zalety EC2 (szczególnie 2.)? Czy są jakieś inne zalety?
Dla porównania pojedynczej instancji niewiele, ale RDS ma wiele zalet, utrzymanie konfiguracji multi-AZ z replikami odczytu w różnych regionach itp. To więcej niż wolałbym poradzić sobie w EC2. RDS wykonuje ogromną ilość narzędzi, które w innym przypadku musielibyście zrobić samodzielnie; to zawsze plus. RDS zapewnia również jednolity interfejs dla twoich baz danych, moim zdaniem znaczną zaletę, a także pomaga wymusić spójność we wdrażaniu baz danych. Oczywiście nadal korzystamy z pgbouncera.
Szczerze mówiąc wolałbym uruchamiać bazy danych na sprzęcie coloc niż w EC2. Nienawidzę prowadzenia baz danych w EC2. Przenoszenie ich, zrzuty i kopie zapasowe są koszmarne, ponieważ wydajność we / wy ec2 jest po prostu nędzna, a kupowanie dużej liczby procesorów jest koszmarnie drogie i nadal nie wpływa w żaden sposób na wydajność sprzętu. Jeśli mogę żyć z ograniczeniami RDS, zawsze będę go używać.
źródło