Итак, я поигрался со своей конфигурацией автоматического масштабирования и своими будильниками Cloudwatch, чтобы попытаться сохранить все мои экземпляры мурлыкающими, но не ревущими.
Кажется, я не могу избавиться от постоянного йо-йо. Использование ЦП увеличивается, введите экземпляр, загрузка ЦП снизится, уничтожьте экземпляр. Промыть и повторить.
В настоящее время я основываю свой будильник на 3-х 1-минутных интервалах среднего CPU> = 40%. Может быть, я могу основывать это на чем-то другом? ЦП - сложная задача, так как, когда этот график набирает обороты (высокий), я могу видеть некоторые экземпляры с простаивающим ЦП, поэтому среднее значение увеличивается на один экземпляр.
Я обнаружил, что некоторые люди получают 502 балла, а я 200 баллов. Очевидно, я хотел бы, чтобы это было последовательным и чтобы эти всплески не возникали постоянно.
Заранее спасибо.
РЕДАКТИРОВАТЬ 1: Я настроил метрику Cloudwatch так, чтобы она составляла 20% ЦП за 2 минуты, а также обнаружил ошибку nginx, которая может также отнесли некоторую дополнительную нагрузку. Текущий график выглядит следующим образом.
РЕДАКТИРОВАТЬ 2: Мониторинг под нагрузкой есть так намного лучше. См. Ниже информацию о загрузке. Я получаю оповещения гораздо реже, и все работает намного лучше.
Это то, что я запускаю в cron каждую минуту;
/usr/local/bin/aws cloudwatch put-metric-data --namespace="NS" --metric-name="GroupLoad" --value `cat /proc/loadavg | awk '{print $1}'` --dimensions AutoScalingWebGroup=NS-WebGroup
Вместо AutoScaling на основе ЦПУ пытаться Загрузка сервера.
AWS AutoScaling может работать с любой метрикой CloudWatch, и вы можете написать свои собственные метрики CloudWatch.
Дополнительная информация о том, как работает AutoScaling: http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-scale-based-on-demand.html
http://aws.amazon.com/blogs/aws/amazon-cloudwatch-user-defined-metrics/
Метрики CloudWatch ограничены пространством имен и могут быть дополнительно уточнены по 10 параметрам. Например, задержку можно отслеживать для пары приложений («App1» и «App2»), сохраняя при этом значения изолированными друг от друга:
$ mon-put-data -namespace App1 -metric-name Latency -value 104
$ mon-put-data -namespace App2 -metric-name Latency -value 120