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

Автоматическое масштабирование сервисов AWS ECS с мягкими ограничениями

В соответствии с документация по использованию услуг при использовании мягких ограничений в задачах ECS возможно использование памяти более 100% (потому что вы не хотите убивать свое приложение жесткими ограничениями). Для загрузки ЦП это всегда верно. У нас есть, например, микросервис с мягким ограничением 500 МБ, и с двумя экземплярами этой задачи он сообщает об использовании памяти 124%. Запуск третьего экземпляра снижает использование до 103%.

Статистика Docker подтверждает эти цифры:

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM % 
6f5cd837b3d7        0.64%               670.1 MiB / 3.862 GiB   16.94%
817c573afac7        9.66%               590.3 MiB / 3.862 GiB   14.93%
7a50d1be6e6e        20.34%              427.1 MiB / 3.862 GiB   10.80%

Однако это очень затрудняет автоматическое масштабирование. Например, загрузка ЦП в 400% может означать, что достаточно ЦП, чтобы сэкономить, и мне не нужен новый экземпляр, тогда как использование ЦП на 100% может означать, что все задачи используют свои зарезервированные блоки ЦП, и мне может понадобиться новый экземпляры (либо новые экземпляры EC2, либо новые экземпляры задачи).

Имеет ли это вообще смысл? Каким будет логическое правило ECS для автоматического масштабирования на основе показателей ЦП и памяти при использовании только мягкого ограничения?