в сервисе 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 доступны, снимите флажок Выполнить развертывание демонстрационного приложения в кластере Amazon ECS и нажмите Продолжить.
deploy-docker-container-1

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

deploy-docker-container-1

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


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

  • Проверьте значения по умолчанию и нажмите Следующий шаг.

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

deploy-docker-container-2

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

deploy-docker-container-2

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


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

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

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

deploy-docker-container-3

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

  • Имя контейнера: порт хоста: выберите значение Simple-app:80.
  • Для демонстрационного приложения устанавливаются значения параметров Протокол прослушивателя ELB, порт прослушивателя ELB и проверка работоспособности ELB, предложенные по умолчанию. Более подробную информацию о настройке балансировки нагрузки см. в разделе Балансировка нагрузки сервиса.
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. Проверьте значения параметров и нажмите Следующий шаг.

deploy-docker-container-3d

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

deploy-docker-container-3d

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


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

  • Имя кластера: укажите значение sample-cluster.
  • Тип инстанса EC2: при выборе типа инстанса t2.micro (по умолчанию) будет продолжена работа на уровне бесплатного пользования. Чем больше ресурсов ЦПУ и памяти у типа инстансов, тем больше заданий он позволяет выполнять. Более подробную информацию о различных типах инстансов см. на странице Типы инстансов Amazon EC2.
  • Количество инстансов: сохраните значение по умолчанию (1), чтобы запустить один инстанс Amazon EC2 в кластере для размещения заданий. Чем больше инстансов в кластере, тем больше заданий на них можно разместить.  
  • Пара ключей: пара ключей потребуется для доступа к инстансам по протоколу SSH в дальнейшем. Можете выбрать Нет – подключение по SSH невозможно, использовать существующую пару ключей или создать новую пару в консоли Amazon EC2. 
deploy-docker-container-5a

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

deploy-docker-container-5a

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

deploy-docker-container-5b

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

deploy-docker-container-5b

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

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

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

deploy-docker-container-5c

d. Выберите Просмотреть и запустить.

deploy-docker-container-5d

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

deploy-docker-container-5d

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


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

  • Выберите Запустить инстанс и сервис
deploy-docker-container-6

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

deploy-docker-container-6

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

  • Когда запуск будет завершен, нажмите Просмотреть сервис.
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 и щелкните Обновить.

deploy-docker-container-15

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

deploy-docker-container-15

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

  • В поле «Количество заданий» укажите значение 0 выберите Обновить сервис.
  • После обновления сервиса нажмите Удалить.
deploy-docker-container-14

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

deploy-docker-container-14

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

  • Откройте консоль Amazon EC2.
  • На панели слева выберите Инстансы.
  • Установите флажок рядом с именем инстанса Инстанс ECS – EC2ContainerService-default.
  • Выберите Действия > Состояние инстанса > Удалить.

 

 

deploy-docker-container-17

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

deploy-docker-container-17

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

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

 

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

Да
Нет