Ну, я не означаю просто заявлять, что очевидное, но общее представление должно продвинуть эту сложность на службы, организованные Amazon.
Таким образом на frontend, Вы использовали бы Эластичное выравнивание нагрузки (ELB) Amazon для обеспечения высоконадежного выравнивания нагрузки. На задней части Вы используете Сервис Реляционной базы данных Amazon (размещенный MySQL), SimpleDB и S3 для устройства хранения данных. Всеми ими управляет Amazon и содержат своего рода высокую доступность / обработка обработки отказа.
Это обычно оставляет Ваши серверы веб-приложения и любые меньшие общие типы сервера, которые Вы могли бы использовать (рендеринг серверов, сам установил хранилища данных NoSQL, и т.д.).
Серверы веб-приложения обычно обрабатываются достаточно хорошо с проверками состояния, встроенными в ELB. Можно принять маленькое снижение производительности, когда один сервер веб-приложения снижается, или последовательно сервер условия +1 больше, чем Вам нужно. Или если Ваша конфигурация проста, то, когда сервер веб-приложения перестал работать, ELB вместе с Cloudwatch может автоматически породить новый сервер веб-приложения для Вас.
Ваши собственные серверы являются другим вопросом. Для них это верно, Вы самостоятельно и должны будете суметь обойтись приложением встроенные методы или клейкая лента вместе что-то с пользовательскими сценариями / инструменты HA с открытым исходным кодом.
Покупка решения Rightscale могла бы быть слишком дорогой. Но меньшие дорогие инструменты Amazon, такие как ELB, основное предупреждение CloudWatch (теперь свободный для разрешения 5 минут), или AutoScale определенно стоят того при необходимости в высокой доступности.
Amazon уже обеспечивает Эластичное Выравнивание нагрузки... Почему изобретают велосипед?
Проблемы, которые вы описываете (высокая доступность, мониторинг настраиваемых серверов, услуги «запечатывания»), обычно решаются поставщиком PaaS. Rightscale и Scalr уже упоминались в предыдущем ответе, и есть дополнительные хорошие варианты (см. Здесь некоторые параметры PaaS:
https://stackoverflow.com/questions/9542784/looking-for-paas-providers-recommendations )
Вам следует подумать, какой из провайдеров наиболее подходит для того, что вам нужно.
Должное уведомление: я работаю в cloudify, провайдере PaaS с открытым исходным кодом.
В RightScale есть несколько отличных статей о том, как автоматизировать аварийное переключение на EC2. Хотя в большинстве из них показано, как это сделать с помощью самого RightScale, принципы являются общими и, вероятно, полезны для всех, кто думает о том, как настроить отказоустойчивую архитектуру на EC2.
Недавно я написал сообщение в нашем инженерном блоге о том, как использовать ELB в сочетании с автоматическим масштабированием для достижения автоматического переключения при отказе для любого типа приложения. В нем рассказывается, как проверки работоспособности ELB могут использоваться для проверки состояния вашего приложения и запуска действий автоматического масштабирования.
Вы устанавливаете сердцебиение на обоих серверах. Вы прикрепляете эластичный IP к "активному" серверу. Вы настраиваете скрипт на обход отказа, инициируя запрос API для получения эластичного IP Как только "резервный" сервер получил эластичный IP (занимает около 30-60 секунд), он может быть ведущим/активным.
У меня нет здесь подробностей
.