Які відповідні переваги / обмеження Amazon RDS проти EC2 з MySQL? [зачинено]


132

Я усвідомлюю пару основних відмінностей між ними, тобто

  1. EC2 буде дешевшим

  2. RDS Мені не доведеться робити технічне обслуговування

Окрім цих двох, чи є якісь переваги для запуску моєї бази даних з RDS на відміну від окремого сервера EC2, який діє як MySQL-сервер. Якщо припустити подібні розміри екземплярів, чи обидва вони зіткнуться з однаковими обмеженнями з точки зору того, що зможете впоратися з навантаженням?

Щоб дати вам трохи більше інформації про моє використання, у мене є база даних, нічого занадто великого або нічого (найбільша таблиця - 1 мільйон рядків), просто великий об'єм SELECT.


Просто додавання методу резервного резервного копіювання ec2. alestic.com/2009/09/ec2-consistent-snapshot Я використовую цей інструмент із сервером 300 Гб і близько 5000 баз даних. У цей час із об'ємом 3000 IOPS потрібно запустити 1,2 години для запуску mysql, оскільки він починається з нечистого відключення, тому mysql повинен сканувати кожну таблицю.
jozwikjp

На сайті dba.stackexchange.com/questions/34525/… є дублікат між сайтом, який отримав кілька хороших відповідей.
Марк Амері

Відповіді:


135

Це просте запитання з дуже складною відповіддю!

Якщо коротко: EC2 забезпечить максимальну продуктивність, якщо ви користуєтесь RAID0 EBS. Для ведення RAID0 EBS потрібна значна значна кількість витрат на обслуговування, наприклад:

http://alestic.com/2009/06/ec2-ebs-raid

http://alestic.com/2009/09/ec2-consistent-snapshot

EC2 без RAID0 EBS забезпечить шалену продуктивність вводу / виводу, тому це навіть не є дійсно можливим.

RDS забезпечить дуже гарну (хоча і не максимальну) продуктивність поза коробкою. Консоль управління надзвичайно фантастична і її легко оновлювати. Висока доступність та лише раби для читання - це лише один клік. Це дійсно дивовижно.

Коротка відповідь: Перейдіть за допомогою RDS. Ще на паркані? Ідіть з RDS !!! якщо вам подобається головний біль і налаштування кожної останньої дрібниці для досягнення максимальної продуктивності, ви можете вважати EC2 + EBS RAID 0. Vanilla EC2 - це жахливий варіант для хостингу MySQL.


1
Хороша відповідь. Це ТОЧНО те, що я хочу: aws.typepad.com/aws/2010/10/… - Дякую за те, що вели мене в правильному напрямку
Macgyver

Хороша відповідь. Як ви справляєтеся з 4 години на тиждень простою?
Тихом

8
Одне, що важливо знати про вікно 4-годинного обслуговування - це те, що ваш сервер не працює 4 години на тиждень! Ось тільки коли вони будуть робити технічне обслуговування, якщо є технічне обслуговування. Місяці та місяці у мене сервери RDS працювали з нульовим простоєм.
efalcao

2
У нас RDS-сервери працювали протягом YEARS з нульовим простоєм. Один з основних аварій (близько 6 годин) одного разу, все повернулося до норми, коли AWS розібралася. (Я мушу зазначити, що це був екземпляр з кількома AZ, але він не зміг перейти до резервної копії).
cjm2671

1
@paulkon - ми не відмовляємось від перегляду реплік за межами сайту, ми використовуємо відмову від RDS, інакше просування тощо до нового майстра стане складним. Репліки в офсетних сайтах в основному призначені для резервного резервного копіювання, що не знаходиться в хмарі, а також для розбиття читання / запису для середовищ звітування (наш рівень програми знає про них). HTH
Росс

24

У цій публікації є відмінний орієнтир між:

  • Запуск MySql на малій EC2 + EBS
  • Запуск MySql на малих EC2 + EBS + налаштованих параметрах MySql
  • Невеликий RDS

Тест є дуже хорошим, оскільки він фокусується не тільки в ідеальних умовах (лише одна нитка), але й у більш реалістичних сценаріях, 50 балів, які вражають базу даних.


2
Приємно публікувати орієнтири, але добросовісно автор визнав наприкінці, що він не правильно налаштував Innodb (великий парам, який можна змінити, звичайно, innodb_buffer_pool_size .... чого він не зробив)
phil_w

12

RDS насправді не є системою підвищеної доступності. Прочитайте тонкий шрифт у файлі RDS. Під час аварійної події це може зайняти до 3 хвилин. Додатковий amazon вирішить, що потрібно "оновити" ваш rds-екземпляр і здійснити відмову в той момент, який дозволить знизити вашу базу даних на "до 3 хвилин" (наш досвід полягає в тому, що це може зайняти більше часу).

Висока доступність RDS дуже відрізняється від реплікації master - master або master - slave і значно повільніше. Вони не використовують реплікацію mysql, але використовують якусь реплікацію ebs. Тож у аварійній ситуації він змонтує ebs на резервній машині, запустить mysql, зачекає, коли mysql не зможе відновитись (сподіваємось, нічого не пошкодилося занадто погано), потім зробить dns-перемикач.

Я сподіваюсь, що це допоможе вам у оцінці.


1
додавання прочитаного ведомого на db з даними 40gb взяло на мене більше 20 хв. Це та вартість та відсутність невільних програм для читання у звичайних програмах ec2 та / або в інших місцях, які є недоступними, для мене, як правило, не є стартером. Я б сказав, що RDS підходить для невеликих магазинів, які не потребують справжнього часу високої доступності та відмови від часу. Це більше для усунення DBA, ніж нічого ІМХО.
Росс

Хороші новини тут (березень 2020 року). З Авророю все стало набагато краще. Вона все ще не працює в системі "master-slave", але оскільки вони створили нову "хмарну" систему зберігання, тепер дуже швидко. Також він забезпечує швидкі знімки та резервні копії. Aurora дійсно вирішила багато недоліків RDS MySQL.
Джефф Уатінг

6

Ми вирішили використовувати екземпляри EC2 MySQL, оскільки у нас є великий обсяг читання і потрібна реплікація master-slave. Звичайно, ви можете розкручувати кілька екземплярів RDS і самостійно встановлювати реплікацію MySQL, але ми використовуємо Scalr.net, який керує цим для вас, використовуючи EC2 екземпляри.

В основному, ми просто повідомляємо Scalr, скільки екземплярів MySQL ми хочемо, щоб він підтримував їх, автоматизував налаштування реплікації, обробляє автоматичну відмову від просування в рабі, якщо майстер припиняється і т.д. Це робить як резервні копії резервного копіювання SQL, так і знімки обсягу EBS Майстер. Отже, коли йому потрібно створити новий підлеглий, він автоматично тимчасово монтує об'єм EBS останнього головного знімка для ініціалізації веденого БД, після чого починає реплікацію з відповідної точки. Усі точки і натисніть :) (і ні, я не працюю для Scalr чи нічого. Scalr доступний як Open Source, якщо ви не хочете користуватися їх послугою)


Зауважте, що оскільки я опублікував вищевказану відповідь, Amazon представив явну підтримку читання-реплік для екземплярів RDS (на даний момент лише MySQL).
DavidJ

5

Що стосується питання вікна технічного обслуговування. Якщо ви використовуєте Multi-AZ, тоді RDS створить репліку в режимі очікування в іншій зоні наявності, щоб не було часу для технічного обслуговування, і ви захистите себе від пошкодження зони.

Ось що я планую зробити на наступному тижні або близько того. Звичайно, це обійдеться вам дорожче, але я цього ще не працював.


4

На EC2 проти RDS MySQL

Переваги MySQL у міжрегіональній реплікації EC2 Amazon EC2

Скопіюйте знімки у регіонах Amazon EC2

RAID 0 з EBS Striping в MySQL EC2

Більше 3 ТБ місця на диску (Вам цього не потрібно для вашого розміру) можна приєднати до MySQL на EC2.

Недоліки MySQL на EC2

Конфігурація, моніторинг та обслуговування порівняно з RDS

Поточні резервні копії, доступні в RDS

IOPS менше, ніж RDS MySQL (навіть після RAID 0) в даний час, 10800 з 6 дисками для MySQL на EC2, тоді як 12500 IOPS 16 КБ на RDS MySQL


4

Я випробовував RDS протягом декількох місяців, і ось у мене є деякі проблеми:

  1. Використання SQL-профілера є складним. Оскільки ви не можете підключити профілер безпосередньо до сервера, вам доведеться запустити деякі збережені процедури, щоб створити файл журналу, який ви можете проаналізувати. Хоча вони пропонують кілька пропозицій щодо того, як це зробити, це далеко не зручно для користувачів. Я б тільки рекомендував вам у цього сертифікованого професіонала SQL робити цю роботу.

  2. хоча Amazon створює резервну копію вашого примірника, ви не можете відновити окрему базу даних. У мене є веб-додаток з декількома окремими базами даних для конкретних клієнтів, і моє рішення було запустити екземпляр EC2, на якому працює SQL, щоб приєднати до виробничої бази даних та імпортувати дані, а потім створити резервну копію в екземплярі EC2. Іншим рішенням було використання стороннього інструменту, який створює масивний сценарій SQL (на сервері додатків), який відтворить схему та заповнить дані назад до точки відновлення.


1

У мене було таке ж питання і в ці вихідні. Існує 4 години простою на тиждень для RDS, де вони проводять технічне обслуговування. RDS здався дорожчим, якщо ви можете піти з мікроекземпляром EC2. (Це стосується тестових примірників, що мають мінімальний трафік). Я також не зміг змінити часовий пояс екземпляра RDS, оскільки не маю дозволу.

Я зараз переглядаю http://xeround.com/, який є mysql на EC2 іншою компанією. Вони не використовують InnoDB, натомість мають власний двигун під назвою IDG. Я тільки починаю досліджувати це, але вони є в BETA і дадуть 500MB місця.


Зверніть увагу, що вікно технічного обслуговування не проводить простоїв щотижня; це просто час, коли будь-яке технічне обслуговування буде зроблене, якщо воно буде потрібно: aws.amazon.com/rds/faqs/#12 Також дивіться коментар @ efalcao щодо його відповіді вище.
mpdaugherty

Виглядає дуже здорово, але насправді $$, якщо у вас є будь-яка кількість даних на xeround.com
csharp4me
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.