Подтвердить что ты не робот

В чем разница между Amazon ECS и Amazon EC2?

Я только начинаю на AWS EC2. Я понимаю, что EC2 похож на удаленный компьютер, где я могу делать практически все, что хочу. Тогда я узнал о ECS. Я знаю, что он использует Docker, но я запутался в отношениях между этими двумя.

ECS - это просто установка Docker в EC2? Если у меня уже есть EC2 и я запускаю ECS, значит ли это, что у меня есть два экземпляра?

4b9b3361

Ответ 1

Ваш вопрос

ECS - это просто установка докера в EC2? Если у меня уже есть EC2, я запускаю ECS, значит ли это, что у меня есть два экземпляра?

Нет. AWS ECS - это просто логическая группа (кластер) экземпляров EC2, и все экземпляры EC2 части ECS действуют как хост Docker т.е. ECS может отправлять команду для запуска контейнера на них (EC2). Если у вас уже есть EC2, а затем запускаете ECS, у вас все еще будет один экземпляр. Если вы добавите/зарегистрируете (установив Контейнерный агент AWS ECS) EC2 в ECS, он станет частью кластера, но все равно будет единичным экземпляром EC2.

Amazon ECS без зарегистрированных EC2 (добавленных в кластер) ни к чему хорошему.


TL; DR

Обзор

  • EC2 - это просто удаленная (виртуальная) машина.
  • ECS расшифровывается как Elastic Container Service - согласно базовому определению кластера компьютеров, ECS - это, по сути, логическая группа машин/экземпляров EC2. Технически говоря, ECS - это простая конфигурация для эффективного использования и управления ресурсами вашего экземпляра (ов) EC2 хранилище, память, процессор и т.д.

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

Следующая запутанная вещь здесь - это термин " контейнер", который не является полностью виртуализированными экземплярами машин, а Docker - это одна из технологий, которую мы можем использовать для создания экземпляров контейнеров. Docker - это утилита, которую вы можете установить на нашей машине, что делает его хостом Docker, и на этом хосте вы можете создавать контейнеры (такие же, как виртуальные машины - но гораздо более легкие). Подводя итог, можно ECS, что ECS просто кластеризация экземпляров EC2 и использует Docker для создания экземпляров контейнеров/экземпляров/виртуальных машин на этих (EC2) хостах.

Все, что вам нужно сделать, это запустить ECS и зарегистрировать/добавить столько экземпляров EC2 сколько вам нужно. Вы можете добавлять/регистрировать экземпляры EC2, все, что вам нужно, это Amazon ECS Container Agent, работающий на вашем экземпляре/машине EC2, что можно сделать вручную или напрямую, используя специальный AMI (образ машины Amazon), то есть AMI, оптимизированный для Amazon ECS, который уже имеет Контейнерный агент Amazon ECS. Во время запуска нового экземпляра EC2 Агент автоматически регистрирует его в кластере ECS по умолчанию.

Контейнерный агент, работающий на каждом из экземпляров (экземпляры EC2) в кластере Amazon ECS отправляет информацию о текущих выполняющихся задачах экземпляра и использовании ресурсов в Amazon ECS, а также запускает и останавливает задачи всякий раз, когда получает запрос от Amazon ECS. Для получения дополнительной информации см. Amazon ECS Container Agent. После установки каждый из созданных экземпляров контейнера (любого компьютера/узла EC2) будет экземпляром в Swarm Amazon ECS.


Для получения дополнительной информации прочитайте шаг 10 из этой документации: Запуск экземпляра контейнера Amazon ECS:

Выберите AMI для своего экземпляра контейнера. Вы можете выбрать AMI, оптимизированный для Amazon ECS, или другую операционную систему, такую как CoreOS или Ubuntu. Если вы не выбрали AMI, оптимизированный для Amazon ECS, вам необходимо выполнить процедуры, описанные в разделе Установка агента контейнера Amazon ECS.

По умолчанию экземпляр вашего контейнера запускается в кластере по умолчанию. Если вы хотите запустить собственный кластер вместо используемого по умолчанию, выберите список "Дополнительные сведения" и вставьте следующий скрипт в поле "Данные пользователя", заменив your_cluster_name именем вашего кластера.

#!/bin/bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config

Или, если у вас есть файл ecs.config в Amazon S3 и вы включили Amazon S3 доступ только для чтения к роли экземпляра контейнера, выберите список "Дополнительные сведения" и вставьте следующий сценарий в поле "Данные пользователя", заменив your_bucket_name на имя ваш пакет для установки интерфейса командной строки AWS и записи файла конфигурации во время запуска. Примечание. Дополнительные сведения об этой конфигурации см. В разделе "Сохранение конфигурации экземпляра контейнера в Amazon S3".

#!/bin/bash
yum install -y aws-cli
aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config

Просто, чтобы прояснить это далее - вы можете создавать контейнеры на вашем единственном экземпляре EC2 без ECS. Установите любую из технологий контейнеризации, например Docker и выполните команду create container, установив EC2 в качестве хоста Docker, и получите столько контейнеров Docker сколько вы хотите (или столько, сколько позволяют ресурсы EC2).

Ответ 2

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

И чтобы ответить на ваш вопрос - вы можете запустить кластер ECS без каких-либо экземпляров, но тогда он не сможет ничего запускать на нем. После регистрации экземпляра EC2 внутри кластера ECS контейнеры готовы к запуску в нем. Итак, нижняя строка - вы можете использовать как ECS, так и EC2 только с одним экземпляром, но это не фактический прецедент, для которого были созданы эти службы.

Ответ 3

Проще говоря, ECS - это менеджер, а экземпляры EC2 похожи на сотрудников. Все сотрудники (EC2) под этим менеджером (ECS) могут выполнять задачи "Docker", и менеджер также хорошо понимает "Docker". Таким образом, всякий раз, когда вам нужны ресурсы "докер", вы обнаруживаете для менеджера. Менеджер уже имеет статус от каждого сотрудника (EC2), решает, кто из них должен выполнить задачу.

Теперь, возвращаясь к вашему вопросу, менеджер без "сотрудника" не имеет смысла.

enter image description here

Ответ 4

Проще говоря, Elastic Container Service (ECS) - это сервис оркестровки контейнеров Docker.

Вы можете попросить его запустить одно или несколько образов Docker, либо как " Service " с автоматическим масштабированием, либо как " Task ".

Службы и задачи выполняются в " кластере ". Первоначально кластер представлял собой группу из одного или нескольких предварительно настроенных серверов EC2, на которых работал агент кластера EC2. Эти серверы EC2 отображаются в вашем списке экземпляров EC2 и оплачиваются по обычной цене EC2 за минуту. Если вам нужно больше возможностей для запуска большего количества Служб или Задач или если вы хотите устойчивости к сбоям в EC2, то вам нужно больше серверов EC2.

Примерно в ноябре 2017 года AWS добавил ECS Fargate. Теперь кластер может работать "без сервера" без предоставления узлов EC2. Вы просто определяете объем ЦП и памяти, которые требуются вашей Задаче или Службе, то есть вы просто платите за ЦП и время памяти, а не за EC2.