Назад | Перейти на главную страницу

Балансировка нагрузки - инфраструктура с автоматическим масштабированием AWS

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

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

Нет, нет возможности напрямую делать то, что вы предлагаете. Подумайте о своем предложении на минуту - при использовании ASG вся идея заключается в том, что ваши экземпляры эфемерный. Любой из них должен иметь возможность быть убитым в любое время без отрицательного воздействия на ваше приложение. В вашем предложении, как ASG «узнает», какой экземпляр является наиболее актуальным в любой момент времени? Не может.

При создании ASG вам необходимо указать AMI, который будет использоваться для экземпляров группы. Обычно есть два шаблона, которые используются для обеспечения актуальности ASG AMI.

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

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

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