Каковы соответствующие преимущества / ограничения 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 операций ввода-вывода в секунду для запуска mysql требуется около 1,2 часа, поскольку он запускается при нечистом завершении работы, поэтому 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-часовым простоями в неделю?
Tihom

8
Что важно знать о 4-часовом окне обслуживания, так это то, что ваш сервер не простаивает 4 часа в неделю! Это как раз тогда, когда они будут проводить техническое обслуживание, ЕСЛИ нужно провести техническое обслуживание. У меня серверы RDS работали месяцами и месяцами без простоев.
efalcao

2
У нас есть серверы RDS, работающие ГОДЫ с нулевым временем простоя. Одно крупное отключение (около 6 часов) один раз, все вернулось в норму, как только AWS разобрался. (Я должен указать, что это был экземпляр с несколькими зонами доступности, но он не смог переключиться на резервную копию).
cjm2671

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

24

В этом посте есть отличный тест между:

  • Запуск MySql на небольшом EC2 + EBS
  • Запуск MySql на Small EC2 + EBS + настроенные параметры MySql
  • Небольшой RDS

Тест очень хорош, поскольку он ориентирован не только на идеальные условия (только один поток), но и на более реалистичные сценарии, когда в базу данных попадает 50 потоков.


2
Приятно публиковать тесты, но автор добросовестно признал, что в конце он не настроил Innodb должным образом (
главный

12

RDS на самом деле не является системой высокой доступности. Прочтите мелкий шрифт в часто задаваемых вопросах RDS. Во время аварийного переключения на аварийное переключение может уйти до 3 минут. Дополнительная amazon решит, что ей необходимо «обновить» ваш экземпляр rds, и выполнить аварийное переключение на этом этапе, что приведет к отключению вашей базы данных на «до 3 минут» (по нашему опыту, это может занять больше времени).

Высокая доступность RDS сильно отличается от репликации главный-главный или главный-подчиненный и выполняется намного медленнее. Они не используют репликацию mysql, но используют какую-то репликацию ebs. Таким образом, в ситуации аварийного переключения он будет монтировать ebs на резервной машине, запускать mysql, ждать, пока mysql выполнит восстановление после сбоя (надеюсь, что ничего не было повреждено слишком плохо), а затем переключит DNS.

Надеюсь, это поможет вам с оценкой.


1
добавление ведомого устройства чтения на БД с данными 40 ГБ заняло у меня более 20 минут. Это, а также стоимость и отсутствие ведомых устройств чтения в обычном ec2 и / или недоступности вне сайта в значительной степени не для меня. Я бы сказал, что RDS хорош для небольших магазинов, которым не требуется высокая доступность и время отклика при отказе. Его больше, чтобы устранить DBA, чем что-либо ИМХО.
Росс

Хорошие новости (март 2020 г.). С Авророй дела пошли намного лучше. Он по-прежнему не запускает систему «ведущий-ведомый», но поскольку они создали новую «облачную» систему хранения, переключение при отказе теперь происходит очень быстро. Также он обеспечивает быстрые снимки и резервное копирование. Aurora действительно устранила многие недостатки RDS MySQL.
Джефф Уайтинг,

6

Мы решили использовать экземпляры EC2 MySQL, потому что у нас большой объем чтения и требуется репликация главный-подчиненный. Конечно, вы можете развернуть несколько экземпляров RDS и самостоятельно настроить репликацию MySQL между ними, но мы используем Scalr.net, который управляет этим за вас с помощью экземпляров EC2.

По сути, мы просто сообщаем Scalr, сколько экземпляров MySQL мы хотим, чтобы он поддерживал их работу, автоматизирует настройку репликации, обрабатывает автоматическое переключение подчиненного устройства на ведущее устройство, если ведущее устройство прерывается и т. Д. Он выполняет как резервные копии дампа SQL, так и моментальные снимки томов EBS. мастер. Таким образом, когда ему нужно создать новое подчиненное устройство, он автоматически временно монтирует том EBS последнего главного снимка для инициализации подчиненного БД, а затем запускает репликацию с соответствующей точки. Все наведите и щелкните :) (и нет, я не работаю для Scalr или чего-то еще. Scalr доступен как с открытым исходным кодом, если вы не хотите использовать их сервис)


Обратите внимание: с тех пор, как я опубликовал ответ выше, Amazon представила явную поддержку реплик чтения для экземпляров RDS (в настоящее время только MySQL).
DavidJ

5

Относительно вопроса окна обслуживания. Если вы используете несколько зон доступности, RDS создаст резервную реплику в другой зоне доступности, чтобы не было простоев для обслуживания и вы защитили себя от сбоя зоны.

Это то, что я планирую сделать на следующей неделе или около того. Конечно, это будет стоить вам дороже, но я еще не разобрался с этим.


4

MySQL на EC2 против RDS MySQL

Преимущества MySQL при репликации между регионами EC2 Amazon EC2

Копирование снимков в регионах Amazon EC2

RAID 0 с чередованием EBS в 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 для подключения к производственной базе данных RDB и импорта данных, а затем резервного копирования на экземпляр EC2. Другое решение заключалось в использовании стороннего инструмента, который создает массивный скрипт SQL (на сервере приложений), который воссоздает схему и заполняет данные обратно в точку восстановления.


1

У меня был такой же вопрос в эти выходные. Для RDS существует 4-часовое окно простоя в неделю, когда они проводят техническое обслуживание. RDS казался более дорогим, если вы могли обойтись без микроэкземпляра EC2. (Это верно для тестовых экземпляров с минимальным трафиком) Я также не смог изменить часовой пояс экземпляра RDS, потому что у меня нет разрешения.

Сейчас я смотрю на http://xeround.com/, который представляет собой mysql на EC2 от другой компании. Они не используют InnoDB, вместо этого у них есть собственный движок IDG. Я только начинаю исследовать это, но они находятся в бета-версии и предоставят 500 МБ пространства.


Обратите внимание, что период обслуживания - это не простои каждую неделю; это как раз то время, когда будет проводиться какое-либо обслуживание, если оно потребуется: aws.amazon.com/rds/faqs/#12. Также см. комментарий @efalcao к его ответу выше.
mpdaugherty 04

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