Определение задачи - это спецификация. Вы используете его для определения одного или нескольких контейнеров (с URI изображений), которые вы хотите запускать вместе, вместе с другими деталями, такими как переменные среды, требования к процессору / памяти и т. Д. c. Определение задачи на самом деле ничего не запускает, это описание того, как все будет настроено, когда что-то действительно будет запущено.
Задача - это реально выполняемая вещь. ECS использует определение задачи для выполнения задачи; он загружает образы контейнеров, настраивает среду выполнения на основе других деталей в определении задачи. Вы можете запустить одну или несколько задач для любого заданного определения задачи. Каждая запущенная задача представляет собой набор из одного или нескольких запущенных контейнеров - все контейнеры в задаче работают в одном экземпляре.
Служба в ECS - это способ запуска N задач с использованием одного определения задачи, и оставьте эти N задач запущенными, если они неожиданно завершатся. Эти N задач могут выполняться в разных экземплярах в EC2 (хотя некоторые из них могут выполняться в одном экземпляре в зависимости от стратегии размещения, используемой для службы); на Fargate нет инстансов и задачи «просто выполняются», поэтому не нужно думать о стратегиях размещения. Вы также можете использовать службы для подключения этих задач к балансировщику нагрузки, чтобы запросы от клиента внутри или за пределами AWS могли равномерно маршрутизироваться между всеми N задачами. Вы можете обновить определение задачи, используемое службой, которое затем будет запускать последовательное обновление (запуск и завершение запущенных задач), чтобы все запущенные задачи использовали новую версию определения задачи после завершения развертывания. Это используется, например, когда вы создаете новый образ контейнера и хотите, чтобы ваша служба была обновлена для использования последней версии.
Область действия службы ограничена кластером. Кластер - это на самом деле просто имя. Разные кластеры могут иметь разные политики и роли IAM, поэтому вы можете ограничить круг лиц, которые могут создавать службы в разных кластерах с помощью IAM.