Я еще не реализовал это сам, но я изучаю возможность быстрой реконфигурации NGiNX Plus . Я думаю, что либо AMI, либо управление конфигурацией (Puppet, Salt и т. Д.), Которое устанавливает экземпляр группы автоматического масштабирования, может достичь API переконфигурирования NGiNX (возможно, через внутреннее доменное имя Route53, поэтому никакой фиксированный IP-адрес не будет необходимо использовать), и добавьте себя в вышестоящий кластер для обратного прокси. После этого встроенная проверка работоспособности NGiNX заменит этот [добавленный] экземпляр и отбросит его на случай, если он станет недоступным. Это кажется самым чистым решением, и нет никакой задержки в добавлении экземпляра, и почти нет задержки в его отбрасывании, поскольку в NGiNX Plus имеется внешняя проверка работоспособности.
При таком подходе не требуется настраивать систему автоматического обнаружения (Consul, Serf и т. Д.), Которая для небольших установок часто кажется слишком сложной как с точки зрения настройки / администрирования, так и с точки зрения требуемых экземпляров EC2. Консул, например, требует, чтобы минимум три экземпляра были стабильными. Возможно, Serf может работать на самих экземплярах ASG, но все еще есть издержки на его обслуживание, и если ASG уменьшится до одного или двух экземпляров, вы потеряете кворум.
Наконец, это может быть объединено с автоматическим уведомлением об изменениях группы автоматического масштабирования, возможно, на серверах NGiNX, которые используются для балансировки нагрузки. Слушатель, запускаемый таким уведомлением (это может быть то, на что также ссылался Upendra), может затем мгновенно добавить новый экземпляр в NGiNX через API модификации «на лету». Помимо стоимости NGiNX Plus, возникает вопрос: зачем вообще использовать Elastic Load Balancer с его многочисленными проблемами?
Редактирование 2015-12-07: ngx_openresty «ы балансир-на-Lua ( см это GitHub нить ) предлагает другое возможное решение с открытым исходным кодом для горячего добавления / удаления серверов из группы Nginx вверх по течению. Я еще не экспериментировал с этим сам, но хотел бы добавить здесь упоминание для всех, кто наткнулся на этот пост.