Как лучше всего автоматически подключать экземпляры EC2 к HAProxy? - PullRequest
9 голосов
/ 07 июля 2011

Мы работаем над тем, чтобы масштабировать нашу архитектуру EC2 до такой степени, чтобы мы хотели управлять собственной балансировкой нагрузки.В настоящее время у нас есть ряд машин, настроенных на HAProxy для выполнения базовой балансировки нагрузки, но мы ищем «передовой опыт», позволяющий подключить новый экземпляр и автоматически (или почти автоматически) присоединиться к HAProxy.

В идеале, мы должны отслеживать нагрузку на наши системы или полагаться на аналитические данные за несколько лет для составления графика работы, а когда мы достигаем порогового или запланированного времени, запускаем процесс для запуска нового экземпляра, чтобы этот новыйузел подключается к системе на нашей машине HAProxy, чтобы записать его имя хоста в конфигурацию и перезагрузить HAProxy, чтобы он стал частью пула.

Мы рассматриваем ELB Amazon, как только мы вырастем достаточно большими, чтобы охватить несколько зон,но до тех пор нам нужна простая установка, которая может добавлять / удалять машины из HAProxy.

Я знаю, что существуют сервисы, которые мы можем оплатить, чтобы управлять этим материалом, но Scalr, кажется, ограничивает нас очень конкретным экземпляромтипы, и Rightscale слишком дорого, поэтому, как и многие другие, мы ищемВсе наши собственные решения.

К сожалению, те, кто разрабатывает свое собственное решение, похоже, немного замалчивают свой процесс.

1 Ответ

10 голосов
/ 23 июля 2011

Вам не нужно задумываться над этим решением;)

Вы можете просто "предварительно настроить" серверы в вашем файле конфигурации HAProxy. Они будут отображаться как «отключенные» и никогда не будут получать запросы, пока вы на самом деле не переведете их в сеть.

Вот пример, предполагая, что у вас есть только 5 машин в сети и ожидается, что в ближайшие 2 года их будет 10:

listen web *:80
    balance source
    server  web1 192.168.0.101:80 check inter 2000 fall 3
    server  web2 192.168.0.102:80 check inter 2000 fall 3
    server  web3 192.168.0.103:80 check inter 2000 fall 3
    server  web4 192.168.0.104:80 check inter 2000 fall 3
    server  web5 192.168.0.105:80 check inter 2000 fall 3
    server  web6 192.168.0.106:80 check inter 2000 fall 3
    server  web7 192.168.0.107:80 check inter 2000 fall 3
    server  web8 192.168.0.108:80 check inter 2000 fall 3
    server  web9 192.168.0.109:80 check inter 2000 fall 3
    server  web10 192.168.0.110:80 check inter 2000 fall 3

С этим конфигом вам не нужно будет перезапускать HAProxy или делать какие-либо уродливые хаки как минимум в течение года (если вам не нужно больше 10, тогда просто добавьте 100, и все будет готово).

Вы также можете написать быстрый скрипт оболочки для автоматической генерации этой конфигурации, на самом деле вы ДОЛЖНЫ написать скрипт для этого, если вы добавляете 100 серверов в свой пул.

...