Развертывание Spring Boot в кластере ECS — часть 2

В продолжение часть 1 статьи..

Во второй части этой статьи мы расскажем, как развернуть загрузочное приложение Spring в контейнере ECS. В этой статье мы будем использовать простое приложение планировщика задач, доступное на github.

Внутри этого проекта уже доступен файл докера. Убедитесь, что у вас установлены git, docker и aws cli везде, где вы запускаете приведенные ниже команды.

git клон .git

Перейдите в папку планировщика задач и выполните приведенную ниже команду, чтобы создать образ:

docker build -t {dockerId}/taskplanner-0.1.0 -f Dockerfile .

Запустите приведенную ниже команду, чтобы увидеть созданный образ:

образ докера ls

Что такое ЭКР

Amazon Elastic Container Registry (ECR) — это полностью управляемая Докерреестр контейнеров, упрощающий разработчикам хранение, управление и развертывание образов контейнеров Docker. Amazon ECR избавляет от необходимости управлять собственными репозиториями контейнеров. ECR хорошо интегрирован с ECS, и вскоре мы это увидим.

Создайте репозиторий из консоли ECS в AWS и назовите его poc-repo. 1

После того, как репо было создано, теперь нам нужно отправить наши изображения в это репо. Выполните следующую команду:

aws ecr get-login — — регион us-east-1

скопируйте и вставьте вывод, и вы увидите, что вы вошли в систему ECR.

теперь пометьте изображение именем и отправьте изображение в репозиторий ECR, который мы создали выше.

тег докера poc-repo:latest xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/poce-repo:latest__docker push xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/poce-repo:latest

Вы должны увидеть изображение в консоли ECR.

Что такое ЭКС?

ECS — это управляемый сервис AWS для развертывания приложений в контейнерах. ECS управляет инстансами, а также использует Fargate. Fargate — это новейшая технологическая тенденция, в которой пользователю не нужно беспокоиться об управлении экземплярами. Fargate позволяет вам сосредоточиться на создании и запуске приложений, а не на базовой инфраструктуре.

Amazon ECS позволяет легко создавать контейнерные приложения всех типов, от долго работающих приложений и микросервисов до пакетных заданий и приложений машинного обучения. Amazon ECS запускает ваши контейнеры в вашем собственном Amazon VPC, позволяя вам использовать свои группы безопасности VPC и сетевые ACL. Ниже мы увидим, как мы создадим кластер ECS и развернем приложение весенней загрузки.

1

1

  1. Создайте новое определение задачи:

Выберите опцию Fargate и начните создавать новую задачу.

Имя определения задачи: fargate-new-A

Роль задачи: ecsTaskexecutionRole

Сетевой режим: awsvpc

Требует совместимости: FARGATE

Роль выполнения задачи: ecsTaskexecutionRole

Память задач: 4 ГБ

ЦП: 2 ВЦП

Добавить контейнер:

Имя контейнера: планировщик задач

Изображение: xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/poce-repo:latest

Ограничения памяти: жесткое ограничение: 1024, мягкое ограничение: 512 (жесткие и мягкие ограничения соответствуют memory а также memoryReservation параметры соответственно в определениях задач. )

Сопоставление портов: 9000 (поскольку порт моего контейнера 9000)

Монтирование тома: монтирование тома важно, иначе каждый раз будут загружаться все m2 jar-файлы, и в кластере не будет постоянства. Создайте том хранилища с именем dockervolume и сопоставьте путь к контейнеру, как показано ниже:

1

  1. Создание балансировщика нагрузки приложений в общедоступной подсети.

1

Привяжите к группе безопасности alb, которая будет открыта для http и https через порты 80 и 443 соответственно с источником из любого места.

Затем создайте целевую группу, в которую балансировщик нагрузки направит запрос на . Не забудьте отметить тип цели как ip .

1

Разрешить все ip-адреса из созданной нами подсети vpc.

1

Также создается целевая группа «ecs-target», у которой еще нет зарегистрированной цели.

1

Определение задачи: fargate-new-A, который мы создали выше с последней версией.

Свяжите кластер, который мы создали выше (ecs-fargate)

Укажите имя службы и требуемое количество задач, которые должны быть запущены.

1

Свяжите задачи в частной подсети в разделе vpc и свяжите группу безопасности с частной группой безопасности, созданной в предыдущей статье.

1

Также включите автоматическое назначение IP.

1

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

1

Прикрепите политику автоматического масштабирования, где требуемое количество задач будет равно 2, и она будет масштабироваться до 4 задач, когда количество запросов ALB на цель превысит 50. Мы проверим это в следующем разделе с помощью эталонного теста Apache.

Создайте Службу.

1

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

1.png

Кластер ECS должен иметь 2 запущенных задачи и 1 службу:

1

Проверьте DNS-имя балансировщика нагрузки и протестируйте приложение:

1.png

Вот и все, вы успешно развернули докеризованное приложение с весенней загрузкой в ​​кластере Fargate ECS в частной подсети с Application Loadbalancer в общедоступной подсети.

Теперь давайте посмотрим, как мы можем использовать Apache Benchmark, чтобы увеличить нагрузку на эту систему и масштабировать приложение до максимум 4 задач в кластере.

Установите Apache Benchmark на свой компьютер и выполните следующую команду:

Если это Ubuntu, вы можете установить, запустив: apt install apache2-utils

аб-н 50000-с 500

Он говорит, что нужно дать 50000 запросов всего при 500 запросах одновременно.

Наконец, вы можете увидеть, что еще 2 экземпляра будут масштабироваться автоматически.

Digiprove печатьАвторские права защищены Digiprove © 2019 Geeks 18

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *