Мы широко используем amazon EC2 для балансировки нагрузки и обеспечения отказоустойчивости. Хотя мы по-прежнему не используем широко LoadBalancers, предоставляемые Amazon, у нас есть собственные балансировщики нагрузки (работающие за пределами Amazon). Amazon обещает, что балансировщики нагрузки никогда не выйдут из строя, они внутренне отказоустойчивы, но я не проверял это достаточно хорошо.
Как правило, мы размещаем два экземпляра в каждой зоне доступности. Один действует как зеркальный сервер для реального сервера. Если один из серверов выходит из строя, мы отправляем клиентов на другой. Но в последнее время Amazon показал закономерность, что одна зона доступности довольно часто выходит из строя.
Таким образом, я полагаю, что мудрый метод заключается в настройке серверов в зонах доступности, как вы упомянули. Мы используем postgres, поэтому мы можем реплицировать контент в базе данных между экземплярами. В 9.0 есть двоичная репликация, которая отлично работает для двусторонней репликации. Таким образом, оба сервера могут взять на себя нагрузку, когда они работают, но когда зона доступности выходит из строя, все пользователи отправляются на один сервер. Поскольку доступна общая база данных, не имеет значения, куда пользователи обращаются. Просто они будут испытывать небольшую медлительность, если зайдут не на тот сервер.
При таком подходе вы можете делать тандемное обновление веб-сайтов. Обновите один, убедитесь, что он работает нормально, а затем обновите следующий. Таким образом, даже если серверу не удалось обновиться, весь веб-сайт всегда работает.
person
arunmur
schedule
24.08.2011