Задача Определение представляет собой набор из 1 или более контейнеров конфигураций . Некоторым задачам может потребоваться только один контейнер, в то время как другим задачам может потребоваться 2 или более потенциально связанных контейнера, работающих одновременно. Определение задачи позволяет вам указать, какой образ Docker использовать, какие порты открывать, сколько ЦП и памяти выделять, как собирать журналы и определять переменные среды.
Задача создается при запуске задачи непосредственно, который запускает контейнер (ы) (определяется в определении задач) , пока они не будут остановлены или выйти самостоятельно, в какой момент они не заменяются автоматически . Непосредственный запуск задач идеально подходит для краткосрочных заданий, возможно, в качестве примера того, что было выполнено с помощью CRON.
Служба используется для гарантии того, что у вас всегда есть некоторое количество задач , работающих в любое время . Если контейнер задачи завершается из-за ошибки или базовый экземпляр EC2 выходит из строя и заменяется, служба ECS заменит сбойную задачу. Вот почему мы создаем кластеры, чтобы у Службы было достаточно ресурсов с точки зрения использования ЦП, памяти и сетевых портов. Для нас не имеет значения, на каком экземпляре Задачи выполняются, пока они выполняются. Конфигурация службы ссылается на определение задачи. Сервис отвечает за создание Задач .
Службы обычно используются для длительно работающих приложений, таких как веб-серверы. Например, если бы я развернул свой веб-сайт на базе Node.JS в Орегоне (us-west-2), я бы сказал, что, по крайней мере, три задачи выполняются в трех зонах доступности (AZ) ради высокой доступности; если один выходит из строя, у меня есть еще два, и отказавший будет заменен (прочтите это как самовосстановление !). Создание Сервиса - способ сделать это. Если бы в моем кластере было 6 экземпляров EC2, по 2 на каждую зону доступности, служба будет автоматически балансировать задачи по зонам, насколько это возможно, с учетом ЦП, памяти и сетевых ресурсов.
ОБНОВИТЬ:
Я не уверен, что стоит думать об этих вещах иерархически.
Еще одним очень важным моментом является то, что Служба может быть настроена для использования балансировщика нагрузки, так что по мере создания задач, то есть запуска контейнеров, определенных в определении задачи, служба автоматически регистрирует экземпляр EC2 контейнера в балансировщике нагрузки. Задачи нельзя настроить для использования балансировщика нагрузки, можно только службы.