Цель состоит в том, чтобы обеспечить как можно большую избыточность, чтобы мы могли быстро восстановиться после сбоев экземпляра или любых других проблем. Наша текущая установка AWS для запущенного Rails WebApp выглядит следующим образом:
У кого-нибудь есть предложения, как сделать это еще более надежным? (Мы чуть не попались со спущенными штанами и не хотим, чтобы это повторилось ...)
Вы также можете запустить несколько экземпляров EC2 и распределить нагрузку между ними. Кроме того, это должно увеличить время безотказной работы выше 99,99%, если его еще нет. Насколько я понимаю, один экземпляр EC2 составляет около 99,95 или 99,5% + времени безотказной работы, балансирует их нагрузку, и он достигает 99,99% или лучше, часто достигая диапазона 99,999% +. В любом случае это тоже может помочь ...
... и еще одна идея - оставить EC2 с возможностью горячей замены. Также, возможно, сохраните репозиторий RDS с возможностью горячей замены, на всякий случай, если производственная копия будет повреждена или возникнет такая проблема.
... и еще одна идея, сохранить экземпляр EC2, загруженный с mySQL, в качестве последней аварийной копии, если что-то не так с копией RDS.
... и последняя идея, запустить облачную службу с горячей заменой или балансировкой нагрузки - или горячей заменой И балансировкой нагрузки во вторичном облаке, таком как Rackspace или другом облачном хосте, поддерживающем RoR.
Надеюсь, это поможет. :)
Я хочу вторую, Адрон. Если вам нужна большая доступность, тогда вам подойдет балансировка нагрузки.
Конечно, ELB нуждаются в проверках работоспособности настроенных серверов приложений.
Если ELB не работают для вас (например, ограниченная пропускная способность или слишком последовательная в конечном итоге ;-)), изучите Haproxy. Это отличная программа. Вам нужно будет запустить это в двух отдельных экземплярах - я бы выбрал либо c1.medium
или m1.small
тип экземпляров.
Также важен мониторинг всех компонентов. Не только для оповещения, но и для планирования мощности.
Я предлагаю вам изучить AWS CloudWatch или услуга вроде ServerDensity. Это зависит от того, сколько вы хотите построить в доме, например проще войти в ServerDensity и настроить мониторинг и оповещения, в то время как CloudWatch требуется другое решение для извлечения данных и их анализа, а затем передачи их в оповещения.