Сейчас я проектирую инфраструктуру AWS ECS.
Для автоматического масштабирования я использовал автоматическое скейлинг.
Моя система работает на AWS ECS (для развертывания docker-compose)
Предположим, что у нас есть 1 cluster
, 1 service
с 2 ec2 instance
.
Я определил политику блокировки через CloudWatch
, если загрузка процессора достигает 50%.
Для автоматического скейлинга мы должны применить нашу политику к ecs service
и autoscailing group
.
Когда вы присоедините политику cloudwatch к ecs service
, она автоматически увеличит число task definition
, если загрузка ЦП достигает 50%.
При прикреплении политики cloudwatch к autoscailing group
она автоматически увеличивается на ec2 instance
, если загрузка процессора достигает 50%.
После проверки все работает нормально.
Но в моих service
журналах событий ошибки выглядят так:
service v1 was unable to place a task because no container instance met all of its requirements. The closest matching container-instance 8bdf994d-9f73-42ec-8299-04b0c5e7fdd3 has insufficient memory available.
Я думаю, что это произошло из-за запуска службы перед запуском экземпляра ec2.(Поскольку для запуска службы (определения масштабируемой задачи) требуется экземпляр ec2 для его запуска)
Но он работает нормально.Может быть, он повторяется автоматически несколько раз.(Я не уверен)
Интересно, это нормальная конфигурация для автоматического масштабирования AWS ECS?
Или какая-то пропущенная точка в моем потоке?
Спасибо.