Каковы соответствующие преимущества/ограничения Amazon RDS по сравнению с EC2 с MySQL?

Я понимаю пару основных различий между ними, т.е.

  • EC2 будет дешевле

  • RDS Мне не нужно было бы выполнять техническое обслуживание

Помимо этих двух, существуют ли какие-либо преимущества для запуска моей базы данных из RDS, а не для отдельного сервера EC2, выступающего в качестве сервера MySQL. Предполагая подобные размеры экземпляров, оба будут сталкиваться с теми же ограничениями с точки зрения возможности обработки нагрузки?

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

Ответ 1

Это простой вопрос с очень сложным ответом!

Вкратце: EC2 обеспечит максимальную производительность, если вы перейдете с RAID0 EBS. Для работы с RAID0 EBS требуется довольно значительное количество служебных расходов на обслуживание, например:

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

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

EC2 без RAID0 EBS обеспечит производительность crappy I/O, поэтому это даже не вариант.

RDS обеспечит очень хорошую (хотя и не максимальную) производительность из коробки. Консоль управления является фантастической, и ее легко обновить. Доступны только для чтения и чтения только одним щелчком мыши. Это ДЕЙСТВИТЕЛЬНО удивительно.

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

Ответ 2

В этот пост есть отличная отметка между:

  • Запуск MySql на небольшой EC2 + EBS
  • Запуск MySql на небольших настройках MySql с EC2 + EBS +.
  • Небольшой RDS

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

Я пробовал RDS в течение нескольких месяцев, и вот некоторые проблемы, которые у меня есть:

  • Использование SQL-профайлера сложно. Поскольку вы не можете подключить профайлер непосредственно к серверу, вам нужно запустить несколько хранимых процедур для создания файла журнала, который вы можете проанализировать. Хотя они предлагают некоторые предложения о том, как это делается, это далеко не удобно. Я бы рекомендовал, чтобы у вас был сертифицированный специалист по SQL, выполняющий такую ​​работу.

  • в то время как Amazon поддерживает ваш экземпляр, вы не можете восстановить отдельную базу данных. У меня есть веб-приложение с несколькими отдельными базами данных для конкретных клиентов, и моим решением было запустить экземпляр EC2 с SQL, работающим на нем, для присоединения к базе данных RDB производства и импорта данных, а затем резервного копирования на экземпляр EC2. Другим решением было использование стороннего инструмента, который создает массивный SQL script (на сервере приложений), который воссоздает схему и занесет данные обратно в точку восстановления.

Ответ 7

MySQL на EC2 vs RDS MySQL

Преимущества MySQL на EC2 Репликация Inter Region Amazon EC2

Скопируйте снимки через регионы EC2 Amazon.

RAID 0 с EBS Striping в MySQL EC2

Более 3 Тбайт дискового пространства (вам это не понадобится для вашего размера) можно подключить к MySQL на EC2.

Недостатки MySQL на EC2

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

Резервные копии времени в RDS

IOPS меньше, чем RDS MySQL (даже после RAID 0) в настоящее время, 10800 с 6 дисками для MySQL на EC2, тогда как 12500 IOPS 16KB на RDS MySQL

Ответ 8

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

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

Ответ 9

Просто добавьте режим согласования ec2. http://alestic.com/2009/09/ec2-consistent-snapshot Я использую этот инструмент с сервером 300 гб и около 5000 баз данных. В это время с объемом 3000 IOPS требуется около 1,2 часа для запуска mysql, поскольку он начинается с нечистого выключения, поэтому mysql должен сканировать каждую таблицу.