Сейчас я использую AWS RDS в нескольких зонах доступности и получаю отличные результаты, проблема в том, что я хочу, чтобы моя инфраструктура была отказоустойчивой между регионами. Я ищу какой-то инструмент для создания кластера с RDS и моими серверами.
Как я читал, вы не можете кластеризоваться напрямую из RDS на другой сервер, просто читать реплики, но не между регионами или за пределами AWS.
Я собирался делать какой-то mysqldump каждые 15 минут или что-то в этом роде, но это неэффективно, и восстановление может быть трудно поддерживать.
По вашему опыту, что лучше всего сделать, запустить мой mysql самостоятельно и настроить кластеризацию с моими машинами или сделать что-нибудь еще. Таким образом есть какая-то холодная репликация, не влияющая на производительность? То есть каждые 5 минут синхронизация меняется. Я могу позволить себе потерю нескольких данных, но не простои;)
Любые идеи, были бы в порядке
Теперь доступны межрегиональные реплики для чтения. http://aws.typepad.com/aws/2013/11/cross-region-read-replicas-for-amazon-rds-for-mysql.html
Настройка собственного кластера MySQL (с репликацией в нескольких регионах) потребует много времени, средств и потребует совета экспертов для настройки и обслуживания. Сказав, что это может быть более надежным, чем текущее решение RDS (только если вы сделали это правильно), поскольку оно может пережить сбой всего региона.
Если вам действительно нужно 100% время безотказной работы, вам следует рассмотреть возможность развертывания собственного решения. Есть ли у вас для этого деньги, время и ресурсы? Можете ли вы позволить себе вложить тысячи и тысячи долларов, или было бы дешевле, возможно, немного простоя?
RDS уже сталкивался с проблемами (совсем недавно, в 2012 году). Интересно, что следующий сайт сообщает, что этот риск можно значительно минимизировать, используя «параметр восстановления на определенный момент времени» ...
http://www.networkworld.com/news/2012/102312-amazon-outage-263617.html
Как и в случае с EBS, AWS напомнил клиентам, что, если они включили опцию восстановления на момент времени, они могли бы запустить новые экземпляры базы данных, используя резервную копию затронутой базы данных в другой зоне доступности.
Другой вариант - просто убедиться, что вы иметь доступ к вашим резервным копиям. Например, если у вас есть ежедневные резервные копии, вы можете отправлять их на S3 для быстрого доступа (или, может быть, за пределами Amazon один раз в неделю, если вы параноик). В случае сбоя EBS / RDS вы можете создать новый экземпляр RDS и быстрее восстановить его из S3 в случае, если RDS имеет серьезные проблемы. Это решение предполагает, что у вас все в порядке с несколькими часами простоя в пользу того, что вам не нужно делать много работы по разработке какого-то безумного межрегионального решения.
Наконец, в зависимости от вашего приложения может быть дешевле попытаться воспользоваться преимуществами нереляционной базы данных. Я знаю, что вы заявили, что вам нужна реляционная БД, однако перепроектирование некоторых или всего вашего приложения для использования нереляционной БД может быть проще и дешевле, чем развертывание собственного MySQL по нескольким регионам (нереляционные также дают другие преимущества, связанные с масштабом и т. д.). Это решение не для всех и может оказаться в слишком сложной корзине для вас (однако будущие проекты может быть проще реализовать таким образом!).