Яка різниця між завданням і послугою в AWS ECS?


114

Здається, що можна виконати завдання або службу на основі визначення завдання. Які відмінності та схожість між Завданням та Службою? Чи є підказка у тому, що при створенні Завдання можна вказати "Групу завдань", але не Службу? Чи є ієрархічно ієрархічно завдання і Служби визначенням Означення Завдання чи Сервіс складається із завдань?

Відповіді:


235

Завдання Визначення являє собою набір з 1 або більше контейнерів конфігурацій . Для деяких завдань може знадобитися лише один контейнер, в той час як для інших завдань може знадобитися 2 або більше потенційно пов'язаних контейнерів, що працюють одночасно. Визначення Завдання дозволяє вказати, який образ Docker використовувати, які порти експонувати, скільки процесора та пам'яті виділити, як збирати журнали та визначати змінні середовища.

Завдання створюється під час запуску завдання безпосередньо, який запускає контейнер (и) (визначається в визначенні завдань) , поки вони не будуть зупинені або вийти самостійно, в який момент вони не замінюють автоматично . Запуск завдань безпосередньо ідеально підходить для коротких завдань, можливо, як приклад речей, які були виконані за допомогою CRON.

Служба використовується для гарантії того, що у вас завжди є деяка кількість завдань , які працюють в будь-який час . Якщо контейнер Завдання виходить із-за помилки або базовий екземпляр EC2 виходить з ладу і замінюється, служба ECS замінить невдалу завдання. Ось чому ми створюємо кластери, щоб Сервіс мав достатньо ресурсів з точки зору портів процесора, пам'яті та мережі. Для нас не важливо, на якому екземплярі Завдання виконуються так довго, як вони виконуються. Конфігурація служби посилається на визначення завдання. Служба несе відповідальність за створення завдань .

Сервіси, як правило, використовуються для довго працюючих додатків, таких як веб-сервери. Наприклад, якби я розмістив свій веб-сайт, що працює на Node.JS, в штаті Орегон (us-west-2), я б хотів сказати щонайменше три завдання, що виконуються через три зони доступності (AZ) заради високої доступності; якщо один не вдається, у мене є ще два, а невдалий буде замінений (читайте це як самолікування !). Створення сервісу - це спосіб це зробити. Якщо в моєму кластері було 6 екземплярів EC2, 2 на AZ, Сервіс автоматично врівноважує Завдання по зонам якнайкраще, а також враховує процесор, пам'ять та мережеві ресурси.

ОНОВЛЕННЯ:

Я не впевнений, що це допомагає думати про ці речі ієрархічно.

Іншим дуже важливим моментом є те, що Служба може бути налаштована на використання балансира завантаження, щоб при створенні завдань - тобто запускав контейнери, визначені у визначенні завдання - служба автоматично зареєструвала екземпляр EC2 контейнера за допомогою балансира навантаження. Завдання не можуть бути налаштовані на використання балансира навантаження, лише Служби можуть.


1
Дуже дякую @talentedmrjones! Це настільки просто, як "використовувати завдання для короткої роботи та використовувати службу для тривалих служб"? Будь-який шанс, який ви могли б прокоментувати "Чи ієрархічно ієрархічно завдання та Служби рівні моменти визначення завдання, чи Служба складається із завдань"?
Боб Джонс

Що я не розумію: чому при створенні завдання я можу змінити значення змінних середовища, але це здається не можливим для служби
Микола Клімчук

1
Сервіси @NikolayKlimchuk керують лише завданнями - саме завдання визначають та використовують envars.
bwobst

що таке "група завдань"
red888

@NikolayKlimchuk вибачте за пізню відповідь. Служби використовуються для планування контейнерів, завдання - для визначення контейнерів. Ось чому ви використовуєте завдання для керування навколишнім середовищем.
талановитіmrjones

42

Красиво пояснено словами @talentedmrjones. Зображення нижче допоможе вам візуалізувати його легко :)

Кластер, служба, екземпляр EC2 та завдання в дії


Приємна візуалізація! :-)
sgsi

2
Якщо будь-який глядач відповідей хоче глибоко зануритися в Amazon ECS, відвідайте сайт freecodecamp.org/news/… . Красиво пояснено!
realPK

@realPK дуже корисна сторінка справді, дякую за рекомендацію!
Крістоф

2

Визначення завдання:

Це креслення, що описує, які контейнери Docker запускати та представляє вашу програму. Вона включає кілька завдань.

Визначення завдання

Сервіс:

Екземпляр визначення завдання. Він також визначає мінімальний та максимум завдань з одного виконання завдання в будь-який момент часу, автоматичне масштабування та балансування навантаження.

Екземпляри контейнера ECS:

Це екземпляр EC2, на якому працює Docker і агент контейнера ECS. Агент піклується про зв'язок між ECS та екземпляром, надаючи статус запущених контейнерів та керуючи запущеними новими.

Відносини:

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.