#amazon-web-services #amazon-ecs #aws-application-load-balancer
#amazon-веб-сервисы #amazon-ecs #aws-приложение-балансировщик нагрузки
Вопрос:
Я пытаюсь создавать высокодоступные приложения, используя инфраструктуру AWS ECS перед балансировщиком нагрузки приложений.
Я использовал шаблоны из этого репозитория (поддерживаемые AWS) https://github.com/widdix/aws-cf-templates в частности, в ecs/cluster
сочетании с моими услугами с использованием ecs/service-cluster-alb.yaml
Это настраивает ALB перед кластером с сигнализациями CPU / memory / 500 для увеличения / уменьшения размера кластера и отдельных сервисов по мере необходимости.
Я немного поэкспериментировал с loader.io и обнаружил, что узким местом является примерно 3000 запросов в минуту. что довольно плохо.
В следующем тесте я попробовал 5000 за 1 минуту;
- Показатели обслуживания для процессора и памяти едва превысили 5%
- показатели контейнера в основном остались прежними
- Единицы емкости ALB увеличились до 0,27 < !!!! (даже не достиг 1Cu)
В ходе теста удалось получить более 600 успешных запросов, за которыми последовали 200 тайм-аутов, которые остановили тесты.
Каково решение для обработки большего объема трафика, чем это?
Я также сделал этот тип своего экземпляра для различных экземпляров t2 / t3 и даже экземпляра zmetal, и это не имело никакого значения вообще. Кажется, что горлышко бутылки на 100% в другом месте
Конечная точка, которую я тестировал, была очень простой, поэтому не требовала большого количества процессора, но я думал, что балансировщики нагрузки приложений будут обрабатывать МНОГО трафика, по крайней мере, достаточно, чтобы моим службам нужно было автоматически расти, поскольку в настоящее время сеть умирает раньше, чем они это делают.
(потребуется ли для этого балансировщик сетевой нагрузки перед несколькими ALB, указывающими на один и тот же кластер? это единственное, что я могу придумать, и это достаточно справедливо, но я бы не ожидал, что попаду в это узкое место с таким небольшим трафиком)