Каковы оптимальные методы использования зон доступности EC2? - PullRequest
5 голосов
/ 24 августа 2011

Я перезапускаю сайт (~ 5 мм + посещений в день) в EC2, и меня смущает вопрос о развертывании узлов в разных центрах обработки данных.Моя самая базовая настройка - два узла позади сервера Varnish.

Должны ли я иметь два экземпляра Varnish в разных зонах доступности, каждый с узлами WWW, которые общаются с общей базой данных RDS?Каждый экземпляр Varnish может быть сбалансирован по нагрузке с балансировщиком нагрузки Amazon.

Что-то вроде:

1 балансировщик нагрузки разговаривает с:

  • Лак в Вирджинии, который говорит с собственными узлами us-east-x
  • Лак в Калифорнии, который говорит с собственными узлами us-west-x

Развертывание в нескольких центрах обработки данных - это новая концепция для меня, поэтому любая помощь приветствуется!Спасибо!

1 Ответ

7 голосов
/ 24 августа 2011

Мы широко используем amazon EC2 для балансировки нагрузки и отказоустойчивости.Хотя мы по-прежнему широко не используем LoadBalancers, предоставляемые Amazon, у нас есть свои собственные балансировщики нагрузки (работающие вне Amazon).Amazon обещает, что LoadBalancers никогда не выйдет из строя, они внутренне отказоустойчивы, но я не достаточно хорошо это протестировал.

В общем, мы размещаем два экземпляра на зону доступности.Один действует как зеркальный сервер для реального сервера.Если в случае отказа одного из серверов мы отправляем клиентов другому.Но в последнее время Amazon показала, что одна зона доступности довольно часто отключается.

Итак, мудрый метод, который я предполагаю, заключается в настройке серверов в зонах доступности, как вы упоминали.Мы используем postgres, поэтому мы можем реплицировать содержимое в базе данных между экземплярами.В 9.0 есть двоичная репликация, которая отлично работает для двухсторонней репликации.Таким образом, оба сервера могут взять на себя нагрузку, когда они работают, но когда зона доступности отключается, все пользователи отправляются на один сервер.Поскольку общая база данных доступна, не имеет значения, куда пользователи переходят.Просто они будут испытывать небольшую медлительность, если перейдут не на тот сервер.

При таком подходе вы можете выполнять тандемное обновление веб-сайтов.Обновите один, убедитесь, что он работает нормально, а затем обновите следующий.Таким образом, даже если серверу не удалось обновить, весь сайт всегда работает.

...