У меня два полностью независимых сайта. Я перемещаю их базы данных MySQL в Amazon RDS.
Я не собираюсь выполнять развертывание Multi A / Z - давайте удалим эту переменную из этого вопроса.
Я не уверен, создавать ли один экземпляр RDS с двумя базами данных или два экземпляра Amazon RDS с одной базой данных. Не обращайте внимания на стоимость ради этого вопроса. Я не буду превышать лимит данных в 1 ТБ, поэтому давайте проигнорируем это. Однако чрезвычайно важно, чтобы сбой одного из веб-сайтов не повлиял на другой.
На основании этого документа - http://docs.amazonwebservices.com/AmazonRDS/latest/UserGuide/Concepts.DBInstance.html
Я предполагаю, что если я напишу ужасный код, который приведет к сбою одной из баз данных в данном экземпляре RDS, это может привести к отключению всего экземпляра RDS (и тем самым непреднамеренно повлиять на другую базу данных). Это правильно?
В ответ на комментарий мы определенно поддерживаем идею двух экземпляров RDS, каждый со своей собственной базой данных. Я просто хочу убедиться, что это действительно приносит пользу - я предполагаю, что выгода в том, что эти базы данных не будут влиять друг на друга, когда они находятся в разных экземплярах. Я думал, что был выстрел, что даже в одном и том же случае они не могли повлиять друг на друга, но похоже, что это не так.
--EDIT Hop3less - спасибо за ответ - однако, когда я сказал о двух экземплярах RDS с одной базой данных, я имел в виду, что каждый из них имеет одну базу данных. Просто хочу убедиться, что вы понимаете, что я не имею в виду два экземпляра EC2. Я предполагаю, что единственный экземпляр RDS по-прежнему является единственной точкой отказа?
Я согласен с предложением @ HopelessN00b о том, что для того, чтобы каждый из ваших сайтов был полностью независимым, вы должны запускать каждую БД в отдельном экземпляре. Тем не менее, даже это не является полностью независимой настройкой, но использование баз данных в облаке может минимизировать определенные риски. Поскольку вас беспокоит высокая доступность ваших баз данных и вы планируете перенести их на RDS, я подумал, что предлагаю вам изучить вариант облачной базы данных Xeround в качестве альтернативы RDS. Если я правильно понимаю, Xeround предлагает БД, которая распределена по нескольким серверам и также имеет репликацию, обе функции могут работать с аварийным переключением (вот некоторая информация вики о распределенные системы и репликация. :)
Правильно, если у вас есть два экземпляра с одной базой данных, ваша единственная точка отказа - это единственная база данных - все, что влияет на базу данных (например, слишком большая нагрузка, или случайное удаление, или что-то еще), повлияет на обе. сайты, которые его используют.
Если у вас есть один экземпляр с двумя базами данных, то ваша единственная точка отказа - это экземпляр, и все, что влияет на экземпляр (например, запуск вашей ОС из-за отсутствия места на диске), повлияет на оба сайта, которые используют Это.
Единственная настройка, которая позволяет вашим сайтам быть полностью независимыми друг от друга, - это запускать каждый в отдельном экземпляре с собственной базой данных. (И даже это не является «полностью» независимым, настолько же полностью независимым, насколько вы можете контролировать - если что-то случится с оборудованием или инфраструктурой, совместно используемой двумя экземплярами, это затронет их обоих.)
ЦП и память будут единственной точкой разногласий, не говоря уже о профилях ввода-вывода для каждого приложения. Если одно приложение внезапно становится более популярным, чем другое, алгоритм LRU пула буферов будет выгружать строки и индексировать данные из одного приложения в пользу другого, что приведет к снижению производительности выгружаемого приложения, поскольку его чтение должно идти на диск.
mysql> SHOW ENGINE INNODB STATUS;
Собирается предоставить метрики пула буферов для вашего приложения, чтобы отслеживать, возникает ли конфликт такого типа. (http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html)
С точки зрения аварийного восстановления, любой снимок или восстановление PITR приведет к отключению обоих приложений и вызову отката для обоих приложений. С отдельными экземплярами у вас нет этой зависимости.