В настоящее время широко распространена оркестровка контейнеров с использованием оркестратора контейнеров. Специально для запуска или управления контейнерным приложением.

Kubernetes - это самый популярный оркестратор контейнеров, который мы, вероятно, слышали и использовали ежедневно в настоящее время. Есть много других, например Docker Swarm. Amazon Web Services (AWS) также имеет управляемые оркестраторы контейнеров сервисов. AWS предоставляет оркестраторы контейнеров: Amazon ECS (Elastic Container Service) и Amazon EKS (Elastic Kubernetes Service).

В этой статье я постараюсь подробнее рассказать об Amazon ECS. Amazon ECS, как вкратце объяснено выше, является одним из управляемых контейнерных сервисов, предоставляемых AWS. ECS - это проприетарный сервис AWS. Некоторые компоненты, на которых работает ECS, в том числе:

  • Кластер: логический кластер ресурса ECS.
  • Определение задачи: набор или набор задач, которые будут использоваться для запуска приложения. Он также содержит определение контейнера, которое будет использоваться для определения того, какой контейнер (ы) будет запущен. Определение задачи можно описать аналогично развертыванию, если обратиться к терминологии Kubernetes.
  • Задача: установка или сбор одного или нескольких контейнеров, определенных в определении задачи. Задачу можно описать аналогично Pod, если обратиться к терминологии Kubernetes.
  • Служба: Служба, которая будет использоваться для предоставления определения задачи.
  • Реестр контейнеров: реестр, в котором сохраняются контейнеры.

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

  • Fargate: задача будет работать без сервера.
  • EC2: задача будет запущена на экземпляре AWS EC2.
  • Внешний: задача будет запускаться локально на виртуальной машине (ВМ), зарегистрированной в кластере ECS.

В этой статье я создам кластер ECS, который будет использовать Fargate в качестве типа запуска. Образ контейнера будет извлечен или загружен из Docker Hub. Вот краткая топология:

Все настройки, описанные в этой статье, будут выполняться в веб-консоли AWS.

Вот шаги настройки:

  1. Перейдите в веб-консоль AWS. Затем перейдите на страницу ECS. Создайте новый кластер из меню «Кластер». Затем нажмите кнопку «Создать кластер».

2. Выберите шаблон кластера. В этой статье я использую только сеть, потому что хочу использовать Fargate в качестве типа запуска.

3. Настроить кластер. В этой статье я создаю новый VPC с новым CIDR, а также с новыми подсетями. И я помечу его ключевым именем. Нажмите кнопку «Создать», чтобы продолжить.

4. Дождитесь завершения статуса запуска для создания нового кластера.

5. Затем убедитесь, что кластер был успешно создан.

6. Следующим шагом является настройка определения задачи. Перейдите в меню Определения задач. Затем нажмите «Создать новое определение задачи».

7. Выберите тип запуска. Я выбираю Фаргейт.

8. Настройте определение задачи. Настройте имя, роль задачи, роль выполнения задачи, память задачи и ЦП задачи.

9. В одном из разделов есть раздел для определения контейнера. Нажмите кнопку «Добавить контейнер», чтобы настроить контейнер, который будет использоваться.

10. Появится всплывающее окно. Введите имя контейнера и выберите образ контейнера, который будет использоваться. В этой статье я использую образ контейнера из Docker Hub, которым является nginx. Все остальные настройки останутся по умолчанию. После этого нажмите кнопку «Добавить».

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

12. Дождитесь завершения состояния запуска для определений задач.

13. Затем вернитесь на страницу Кластеры. В недавно созданном кластере в этой статье под названием ludes-ecs-staging я настрою службу для запуска определения задачи. На вкладке «Сервис» нажмите кнопку «Создать».

14. Настроить сервис. Я выбираю тип запуска Fargate и буду ссылаться на определение задачи, которое было создано ранее, то есть ludes-ecs-staging с номером версии 1. Выберите кластер, задайте имя и количество задач, которые будут выполняться. В этой ранней конфигурации я установлю количество задач как 1 задачу.

15. На той же странице выберите Метод развертывания. В этой статье я выбираю скользящее обновление и создаю новый тег с ключевым именем. После этого нажмите Далее.

16. Следующая страница конфигурации - Настройка сети. Выберите VPC и подсети, которые были созданы в начале. В этой статье включено автоматическое назначение общедоступного IP-адреса. После этого настройте группу безопасности, настройте ее, нажав кнопку «Изменить» справа от имени группы безопасности.

17. Появится всплывающее окно настройки группы безопасности. В этой статье я создаю новую группу безопасности с входящим правилом, которое разрешает http и https из любого места (пожалуйста, подумайте, прежде чем использовать где-либо в реальной производственной сети).

18. Затем настройте автоматическое масштабирование. Но в этой статье я не касаюсь этого, поэтому мы можем перейти к следующему шагу.

19. Затем просмотрите конфигурации службы. Если все выполнено, можно переходить к созданию службы.

20. Дождитесь завершения статуса запуска новой службы.

21. Убедитесь, что вновь созданная служба ludes-ecs-staging была успешно создана. Подождите несколько секунд, пока в счетчике запущенных задач не отобразится 1 Fargate (поскольку мы определили 1 номер задачи в предыдущей конфигурации службы).

22. Далее перейдите во вкладку Задачи. Убедитесь, что есть 1 запущенная задача. Затем щелкните по названию Задачи.

23. В деталях конфигурации задачи будет очень много деталей. Некоторые из них - статус задачи. И в разделе сети мы найдем частный IP и общедоступный IP, которые используются этой задачей (если общедоступный IP включен).

24. Откройте веб-браузер, вставьте общедоступный IP-адрес задачи в URL-адрес или адресную строку. Ожидаемый результат: мы можем найти целевую страницу nginx, которая является контейнером, который мы запускаем из определения задачи.

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

26. Вернитесь в сервисное меню. Нажмите кнопку «Обновить» на странице сервиса.

27. В строке количества задач измените количество задач на 2. Все остальные настройки останутся по умолчанию. Итак, мы можем нажать кнопку «Пропустить для просмотра».

28. Щелкните Обновить службу на странице обзора.

29. Подождите, пока не завершится статус запуска службы обновлений.

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

31. Проверьте детали обеих задач.

32. Вернитесь в веб-браузер и попробуйте вставить общедоступный IP-адрес обеих задач в адресную строку.

Заключение

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

Надеюсь, эта статья принесет пользу. Спасибо за чтение.

Больше контента на plainenglish.io