Как запустить конкретный экземпляр, когда другой экземпляр перегружен? - PullRequest
0 голосов
/ 21 апреля 2019

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

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

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

Должно ли это быть сделано в конфигурации балансировщика нагрузки?я не мог найти как ...

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

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

Чтобы запустить (и остановить) конкретный экземпляр, вам понадобятся три части:

  • Тревога CloudWatch, срабатывающая по необходимой метрике (CPUUtilization), пересекающей желаемый порог.

  • Тема SNS, которая активируется по сигналу на предыдущем шаге.

  • Лямбда-функция (с правильными разрешениями IAM), которая подписана на тему SNS, которая отправляет соответствующие вызовы API в EC2 для запуска или остановки экземпляров, когда поступает уведомление от SNS. Вы можете найти несколько примеров кода, необходимого для этого, например, здесь, в node.js и здесь, из AWS , хотя, возможно, есть и другие, если вы предпочитаете другой язык.

Как только вы соберете все это вместе, вы сможете реагировать на изменения в CPU, запуская и останавливая определенные экземпляры.

0 голосов
/ 21 апреля 2019

EC2 Auto Scaling создает и управляет аварийными сигналами CloudWatch, которые запускают политику масштабирования, и рассчитывает корректировку масштабирования на основе показателя и целевого значения.AWS предоставляет нам различные типы метрик для отслеживания использования, а затем запускает аварийные сигналы на основе значений конфигурации.В вашем случае вы будете использовать ASGAverageCPUUtilization метрика.

Так что, когда CPUUtilization на одной машине увеличивается, он автоматически раскручивает новый экземпляр, а балансировщик нагрузки позаботится о распределении нагрузки.

Подробный ответ на свой вопрос и способы его достижения можно найти по следующей ссылке.

https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...