Каков наилучший способ получения экземпляров EC2 для автоматического присоединения к HAProxy?

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

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

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

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

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

1 ответ

Решение

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

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

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

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 серверов в свой пул.

Другие вопросы по тегам