У меня есть веб-сайт, на котором я хотел бы добавить избыточность. Это небольшой веб-сайт, и, вероятно, он будет получать только несколько обновлений базы данных и / или файлов в день, однако очень важно, чтобы веб-сайт работал постоянно.
Поскольку сервер работает на экземпляре EC2, я решил, что просто воспользуюсь эластичной балансировкой нагрузки для дополнительного преимущества балансировщика нагрузки. Поскольку веб-сайт не получает много обновлений, я могу предположить, что запуск rsync каждые пару минут подойдет для модификации файлов, но каков обычный подход для синхронизации баз данных? Возникли проблемы с этой настройкой?
Вы можете изучить RDS для своей базы данных MySQL. RDS позволяет создавать базу данных в нескольких зонах доступности (AZ). Отработка отказа является прозрачной, и вам или вашему приложению не придется ничего делать в случае сбоя основной базы данных.
Если вам нужно самостоятельно установить многопользовательский MySQL, это доставит много хлопот, если вам не комфортно работать с MySQL.
Вы уже используете ELB, поэтому хорошо разбираетесь в избыточности экземпляров. Убедитесь, что оба ваших экземпляра находятся в нескольких зонах доступности.
ELB будет работать только для веб-сайта, но не для базы данных. Базы данных обычно необходимо настроить с репликацией или каким-либо типом кластера. Самый простой метод резервирования MySQL называется MySQL Replication
, однако в случае отказа сервера возникает некоторое время простоя, потому что вам нужно вручную переключиться на подчиненную базу данных. Если это не идеально для вас, вы можете использовать MySQL Replication with linux heartbeat
это решение позволяет создать сценарий для отработки отказа, который обычно выполняется менее чем за 60 секунд.
Доступны и другие решения, но они более дорогие и их сложнее настроить. См. Эту страницу для получения дополнительных сведений о различных параметрах репликации / кластера MySQL. http://dev.mysql.com/doc/refman/5.0/en/ha-overview.html