в сервисе Amazon Elastic Container Service (Amazon ECS)

Amazon Elastic Container Service (Amazon ECS) – это сервис Amazon Web Service, который используется для запуска приложений Docker в масштабируемом кластере. Из данного пособия вы узнаете, как запустить демонстрационное приложение с поддержкой Docker в кластере Amazon ECS под управлением балансировщика нагрузки, выполнять его тестирование и удалять ресурсы во избежание затрат.

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

Управляйте ресурсами AWS

Вход в Консоль

Мастер первого запуска Amazon ECS помогает пользователю выполнить все этапы создания кластера и запуска демонстрационного интернет-приложения. На этом шаге выполняются вход в консоль Amazon ECS и запуск мастера.



b. В Amazon ECS с помощью сервиса Amazon Elastic Container Registry (Amazon ECR) можно создать репозиторий образов и поместить в него образ, используя мастер первого запуска (см. снимок экрана справа). В настоящее время эта возможность доступна не во всех регионах. 

  • Если опции Amazon ECR недоступны, перейдите к шагу 2.
  • Если опции Amazon ECR доступны, снимите флажок Deploy a sample application onto an Amazon ECS Cluster и нажмите Continue.
deploy-docker-container-1

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-1

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


В определение задания предварительно загружены значения конфигурации по умолчанию.

  • Проверьте значения по умолчанию и нажмите Next Step.

Чтобы изменить конфигурацию или получить дополнительную информацию, см. раздел Параметры определения задания.

deploy-docker-container-2

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-2

После создания определения задания выполняется настройка сервиса Amazon ECS. Этот сервис запускает и создает копии определения задания в кластере.Например, при запуске приложения как услуги Amazon ECS автоматически восстанавливает любые приостановленные задания и поддерживает указанное количество копий.


a. Настройка параметров сервиса:

  • Service Name: значение по умолчанию sample-webapp соответствует интернет-приложению «Hello World» от AWS. Это приложение не имеет ограничений по продолжительности использования. В случае запуска как сервис оно перезапускается, если в задании присутствуют ошибки или происходит непредвиденная остановка в процессе выполнения.
  • Desired number of tasks: чтобы продолжать работу на уровне бесплатного пользования AWS, сохраните значение по умолчанию 1. В этом случае будет создана 1 копия задания.
deploy-docker-container-3

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-3

b. Elastic Load Balancing: для данного сервиса можно использовать балансировщик нагрузки. Amazon ECS позволяет создать балансировщик нагрузки Elastic Load Balancing (ELB) для распределения трафика по инстансам контейнеров, на которых запущено задание.

  • Container name: host port: выберите значение Simple-app:80.
  • Для демонстрационного приложения устанавливаются значения параметров ELB listener protocol, ELB listener port и ELB health check, предложенные по умолчанию. Более подробную информацию о настройке балансировки нагрузки см. в разделе Настройка балансировки нагрузки.
deploy-docker-container-3b

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-3b

c. Прежде чем подключить балансировщик нагрузки к сервису Amazon ECS, необходимо создать роль Identity and Access Management (IAM), которая будет использоваться сервисами. Это позволит Amazon ECS вызывать API Amazon EC2 и Elastic Load Balancing с целью регистрации и удаления регистрации инстансов с помощью балансировщиков нагрузки.

  • При отсутствии роли сервиса в IAM в Amazon ECS будет создана роль с именем ecsServiceRole.
  • При наличии роли сервиса в Amazon ECS выберите ее в раскрывающемся списке.
deploy-docker-container-3c

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-3c

d. Проверьте значения параметров и нажмите Next Step.

deploy-docker-container-3d

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-3d

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


a. Примените следующие настройки конфигурации:

  • Cluster name: укажите значение sample-cluster.
  • EC2 instance type: при выборе типа инстанса t2.micro (по умолчанию) будет продолжена работа на уровне бесплатного пользования. Чем больше ресурсы ЦПУ и памяти у типа инстансов, тем больше заданий он позволяет выполнять. Более подробную информацию о различных типах инстансов см. на странице Типы инстансов Amazon EC2.
  • Number of instances: сохраните значение по умолчанию 1, чтобы запустить один инстанс Amazon EC2 в кластере для размещения заданий. Чем больше инстансов в кластере, тем больше заданий на них можно разместить.
  • Key pair: пара ключей потребуется для доступа к инстансам по протоколу SSH в дальнейшем. Выберите значение None – unable to SSH, чтобы использовать существующую пару ключей, или создайте новую пару в консоли Amazon EC2.
deploy-docker-container-5a

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-5a

b. (Необязательный параметр) «Security Group»: при выборе значения по умолчанию (Anywhere) доступ возможен из любой точки в Интернете. Чтобы ограничить доступ к инстансам, дополнительно можно выбрать блок бесклассовой адресации (CIDR).

deploy-docker-container-5b

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-5b

c. Роль в IAM для инстанса контейнера:

  • Если роль в IAM отсутствует, она будет создана с помощью мастера Amazon ECS.
  • Если роль в IAM для инстанса контейнера была создана ранее, выберите ее в раскрывающемся списке.
deploy-docker-container-5c

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-5c

d. Нажмите Review and Launch.

deploy-docker-container-5d

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-5d

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


a. Можно выполнить итоговую проверку определения и конфигурации задания, а также настроек кластера перед запуском.

  • Нажмите Launch instance & run service.
deploy-docker-container-6

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-6

b. Откроется страница Launch Status, где можно увидеть статус запуска и подробно ознакомиться с каждым этапом процесса.

  • Когда запуск будет завершен, нажмите View service.
deploy-docker-container-7

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-7

На этом шаге выполняется проверка работоспособности демонстрационного приложения. Для этого в строке браузера указывается имя DNS балансировщика нагрузки.


a. На странице «sample-webapp» нажмите на имя балансировщика нагрузки.

deploy-docker-container-10

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-10

b. Протестируйте демонстрационное приложение:

  • Скопируйте имя DNS ELB.
  • Вставьте его в новом окне браузера.
  • Чтобы перейти к демонстрационному приложению (в данном случае к статичной веб-странице), нажмите клавишу «Enter» на клавиатуре.
deploy-docker-container-12a

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-12a

В процессе изучения данного пособия был выполнен запуск трех ресурсов: кластера Amazon ECS, инстанса Amazon EC2 и балансировщика нагрузки. На этом шаге все ресурсы будут удалены, чтобы избежать нежелательных расходов.


a. Вернитесь на страницу консоли Amazon ECS.

  • Щелкните имя кластера (sample-cluster).
deploy-docker-container-13

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-13

b. Выберите строку с именем sample-webapp и нажмите Update.

deploy-docker-container-15

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-15

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

  • В поле «Number of tasks» укажите значение 0 и нажмите Update Service.
  • После обновления сервиса нажмите Delete.
deploy-docker-container-14

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-14

d. Удалите инстансы Amazon EC2, запущенные на кластере.

  • Откройте консоль Amazon EC2.
  • На панели слева выберите Instances.
  • Выберите в списке инстанс с именем ECS Instance – EC2ContainerService-default.
  • Выберите Actions > Instance State > Terminate.

 

 

deploy-docker-container-17

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-17

e. Удалите балансировщики нагрузки.

  • На панели слева выберите Load Balancers.
  • Выберите балансировщик нагрузки, созданный для сервиса (его имя должно начинаться с EC2Contai-EcsElast).
  • Щелкните правой кнопкой мыши и выберите Delete.

 

deploy-docker-container-19a

(Щелкните, чтобы увеличить изображение.)

deploy-docker-container-19a

Поздравляем! Вы научились настраивать приложения с поддержкой Docker в Amazon Elastic Container Service (Amazon ECS), а также выполнять их развертывание и удаление. Amazon ECS – это легко масштабируемый, высокопроизводительный сервис управления контейнерами, поддерживающий контейнеры Docker и позволяющий с легкостью запускать приложения в управляемом кластере инстансов Amazon EC2.

После знакомства с процессом развертывания приложений с поддержкой Docker в Amazon ECS можно перейти к следующему учебному пособию, посвященному созданию реестра Docker для хранения образов контейнеров. В процессе его прохождения создается образ Docker, который затем помещается в репозиторий и используется для развертывания приложения в Amazon ECS.

Создание реестра Docker

Да
Нет