AWS Autoscaling с балансировщиком нагрузки

Я развернул контейнерное приложение прослушивателя http на 1 экземпляре EC2, создав кластер с 1 экземпляром и запустив задачу контейнера на этом экземпляре.

Я использую функцию автоматического масштабирования экземпляров EC2 с минимальным экземпляром как 1 и максимальным экземпляром как 4.

Проблемы, с которыми я сталкиваюсь, это.

  1. После создания новых экземпляров EC2 из-за большей нагрузки / использования ЦП контейнер, развернутый на первом экземпляре, не реплицируется на эти новые экземпляры.

  2. Я хочу добавить балансировщик нагрузки перед этими экземплярами EC2 по мере их добавления (или прекращения). Поскольку экземпляры должны быть уже зарегистрированы в целевой группе - я не смогу добавлять новые экземпляры, поскольку они еще не созданы.

Любая помощь по этому поводу приветствуется.


person exceed007    schedule 26.04.2018    source источник


Ответы (1)


Вы неправильно понимаете, как ALB + ASG работает как технология.

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

I want to add load balancer in front of these EC2 instances as and
when they gets added (or terminated). As the instances needs to be
already registered to the target group - i will not be able to add
the new instances as they are not yet created.

Экземпляры добавляются в ASG, и на ASG нацелена целевая группа. Создайте ALB, создайте целевую группу для ALB, создайте ASG и назначьте ее целевой группе.

По первому вопросу:

Once new EC2 instances are created due to more load/ CPU utilization -
the container which were deployed on first instance is not replicated
on these new instances.

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

  1. создайте AMI своего первого экземпляра и измените конфигурацию запуска для ASG, чтобы использовать этот новый AMI
  2. использовать Userdata для автоматической настройки вашей контейнерной службы на экземплярах, когда они загружаются.
person mcfinnigan    schedule 26.04.2018
comment
сколько экземпляров я должен определить при создании кластера, если я хочу иметь минимальный экземпляр как 1 и максимальный экземпляры как 4 - person exceed007; 26.04.2018
comment
Что это за кластер, о котором вы говорите. Экземпляры в ASG не кластеризованы, они просто находятся за балансировщиком нагрузки, который распределяет между ними трафик в соответствии с правилами. - person mcfinnigan; 26.04.2018
comment
Я создаю кластер с помощью ECS. В котором нам нужно определить экземпляры в этом кластере, на которых будут развертываться контейнерные задачи. - person exceed007; 27.04.2018