AMAZON Elastic Container Service (ECS)
0.00

Проблемы которые решает

Устаревание ИТ-инфраструктуры

Высокие расходы на ИТ специалистов

Большие сроки производства

Ценности

Сокращение затрат

Сокращение сроков производства

AMAZON Elastic Container Service (ECS)

Amazon Elastic Container Service - запуск контейнерных приложений в рабочей среде.

Описание

Amazon Elastic Container Service (Amazon ECS) – это высокопроизводительный сервис оркестрации контейнеров с большими возможностями масштабирования. Он поддерживает контейнеры Docker и упрощает запуск и масштабирование на AWS приложений на основе контейнеров. Благодаря Amazon ECS отпадает необходимость в установке и использовании собственного ПО для оркестрации контейнеров. Не нужно управлять кластерами виртуальных машин и масштабировать их, а также планировать работу контейнеров на этих виртуальных машинах. С помощью простых вызовов API можно запускать и останавливать контейнерные приложения Docker, получать по запросу данные о состоянии всего приложения и пользоваться многими стандартными возможностями, например ролями IAM, группами безопасности, балансировщиками нагрузки, сервисом Amazon CloudWatch Events, шаблонами AWS CloudFormation и журналами AWS CloudTrail. ВОЗМОЖНОСТИ: Amazon Elastic Container Service (Amazon ECS) упрощает запуск, масштабирование и обеспечение безопасности приложений на основе контейнеров Docker на AWS. Приложения, локально упакованные как контейнеры, будут развертываться и запускаться по той же схеме, как и контейнеры, управляемые Amazon ECS. При использовании Amazon ECS не требуется устанавливать, обслуживать и масштабировать собственную инфраструктуру для оркестрации контейнеров и управления кластерами. Данный сервис позволяет сосредоточиться на потребности в ресурсах и требованиях к доступности приложения на основе контейнеров. Amazon ECS позволяет увеличивать количество контейнеров от одного до нескольких тысяч на сотнях инстансов, не усложняя при этом процедуру запуска приложения. Вы можете запускать что угодно: приложения, пакетные задания или микросервисы. Amazon ECS позволяет абстрагироваться от сложностей инфраструктуры и сосредоточиться на проектировании, создании и запуске контейнерных приложений. При работе с Amazon ECS можно использовать для управления всей инфраструктурой AWS Fargate и заниматься только развертыванием контейнеров. Как вариант, можно оставить за собой полный контроль и видимость базового кластера серверов, от создания и удаления контейнеров Docker до просмотра подробной информации о состоянии кластера. Можно интегрировать и использовать свой собственный планировщик контейнеров или подключить Amazon ECS к существующему процессу доставки программного обеспечения (например, к системам непрерывной интеграции и доставки). Поддержка AWS Fargate В Amazon ECS можно использовать технологию AWS Fargate. При использовании AWS Fargate не требуется выбирать типы инстансов Amazon EC2, выделять и масштабировать кластеры, а также устанавливать исправления и обновления на каждый сервер. Нет необходимости продумывать стратегии размещения задач, такие как упаковка в контейнеры или распределение по узлам. Балансировка задач по зонам доступности выполняется автоматически. Fargate самостоятельно управляет доступностью контейнеров. Нужно только указать требования приложения и выбрать в консоли или интерфейсе командной строки тип запуска Fargate. После этого Fargate берет на себя все управление масштабированием и инфраструктурой для работы контейнеров. Разработчики, предпочитающие более точный контроль над инфраструктурой на уровне сервера, могут выбрать тип запуска Amazon ECS EC2, который позволяет управлять кластером серверов и планировать размещение контейнеров на серверах. Разработка Поддержка Docker Amazon ECS поддерживает Docker, предоставляя возможность запуска контейнеров Docker и управления ими. Развертывание и запуск в Amazon ECS приложений, упакованных в контейнер локально, не требует каких-либо изменений конфигурации. Совместимость с контейнерами Windows Amazon ECS позволяет управлять контейнерами Windows. Образ Windows Amazon Machine Image (AMI), оптимизированный для Amazon ECS, оптимизирует время запуска инстанса и контейнера и обеспечивает возможность просмотра производительности ЦПУ, использования памяти и метрик резервирования. Локальная разработка Интерфейс командной строки (CLI) Amazon ECS упрощает процесс локальной разработки, а также настройку и запуск контейнеров в Amazon ECS. Amazon ECS CLI поддерживает Docker Compose – инструмент с открытым исходным кодом для определения и запуска многоконтейнерных приложений. Вы можете применить одно и то же определение Compose для определения многоконтейнерного приложения как на компьютере для разработки, так и в рабочей среде. Интерфейс командной строки Amazon ECS предоставляется с открытым исходным кодом. Поддержка репозитория Amazon ECS можно использовать с любым репозиторием образов Docker, размещенным на стороннем хостинге, или с доступным частным реестром Docker, например Docker Hub или Amazon Elastic Container Registry (Amazon ECR). Необходимо только указать репозиторий в определении задания, а Amazon ECS будет извлекать для приложений подходящие образы. Управление Определения заданий Amazon ECS позволяет легко определять задания с использованием декларативного шаблона JSON, называемого определением задания. С помощью определения задания можно указать для выполнения задания один или несколько контейнеров, в том числе соответствующий репозиторий и образ Docker, требования к памяти и процессору, к томам общих данных, а также к тому, как контейнеры будут связаны друг с другом. Из одного файла определения заданий, зарегистрированного в сервисе, можно запустить любое необходимое количество заданий. Файлы определения заданий позволяют также осуществлять контроль версий спецификации приложения. Программное управление Amazon ECS предоставляет набор простых действий API, позволяющих выполнять интеграцию и расширять возможности сервиса. Действия API позволяют создавать и удалять кластеры, регистрировать и отменять регистрацию заданий, запускать и прекращать работу контейнеров Docker, а также предоставлять подробные сведения о состоянии кластера и его инстансов. Кроме того, для выделения кластеров Amazon ECS, регистрации определений заданий и планирования работы контейнеров можно использовать AWS CloudFormation. Развертывание контейнеров Amazon ECS позволяет просто обновлять версии используемых контейнеров. Достаточно загрузить новую версию определения задания приложения, и планировщик Amazon ECS автоматически запустит новые контейнеры, использующие обновленный образ, и остановит контейнеры, использующие предыдущую версию. Amazon ECS автоматически регистрирует контейнеры и отменяет их регистрацию в связанном балансировщике Application Load Balancer. Синие и зеленые развертывания Синие и зеленые развертывания с AWS CodeDeploy помогают свести к минимуму вынужденные простои во время обновления приложений. Прежде чем перенаправлять трафик, можно запустить новую версию сервиса Amazon ECS параллельно старой и протестировать новую. Кроме того, можно осуществлять мониторинг процесса развертывания и при возникновении проблем быстро выполнять откат. Автоматическое восстановление контейнеров Планировщик Amazon ECS будет автоматически восстанавливать работу неисправных контейнеров, чтобы гарантировать наличие необходимого количества контейнеров для поддержания работы приложения. Планирование Amazon ECS включает в себя несколько стратегий планирования, которые распределяют контейнеры в кластерах клиента, основываясь на указанных потребностях в ресурсах (например, ЦПУ или оперативной памяти), а также требованиях к доступности. Применяя подходящие стратегии планирования, можно планировать пакетные задания, приложения и сервисы с длительным периодом выполнения, а также процессы-демоны. Планирование задач. Планирование задач Amazon ECS позволяет запускать процессы, которые выполняют определенные действия, а затем останавливаются (например, задания пакетной обработки). Планирование задач позволяет запускать задачи вручную, автоматически из очереди заданий либо через указанный промежуток времени. Планирование сервиса. Планирование сервиса Amazon ECS позволяет запускать сервисы и приложения без сохранения состояния. Такая стратегия планирования обеспечивает постоянную работу определенного количества задач и их повторный запуск при сбое. Доступна проверка регистрации задач в балансировщике нагрузки Elastic Load Balancing и несколько типов проверки состояния запущенных задач на выбор. Планирование демонов. Планирование демонов Amazon ECS автоматически запускает одну и ту же задачу на всех выбранных инстансах кластера ECS. Это упрощает запуск задач, которые обеспечивают функционал общего управления для сервиса, таких как ведение журналов, мониторинг или резервное копирование. Task Placement Amazon ECS позволяет индивидуально настраивать размещение задач в кластере из инстансов EC2 на основании таких встроенных атрибутов, как тип инстанса и зона доступности, а также указанных пользователем специальных атрибутов. Можно использовать такие атрибуты, как environment = production для создания меток ресурсов, а затем применять вызовы API List для поиска соответствующих ресурсов либо API RunTask и CreateService для планирования задач на таких ресурсах. Кроме того, Amazon ECS позволяет использовать стратегии размещения, такие как пакетирование или распределение, для более точного определения того, где размещать задачи. Сервис позволяет создавать цепочки политик для получения продвинутых возможностей размещения без единой строчки кода. При типе запуска AWS Fargate политики размещения задач не используются. Сетевая конфигурация и безопасность Обнаружение сервисов Amazon ECS интегрирован с AWS Cloud Map, благодаря чему размещенные в контейнерах сервисы могут легко обнаруживать друг друга и подключаться друг к другу. AWS Cloud Map – это сервис обнаружения облачных ресурсов. Cloud Map обеспечивает определение пользовательских имен для ресурсов приложения и сохранение сведений об обновленных расположениях этих динамически меняющихся ресурсов. Это повышает доступность приложения, так как веб-сервис всегда обнаруживает последние расположения его ресурсов. Сетка сервиса Сетка сервиса позволяет легко создавать и выполнять сложные микросервисные приложения, стандартизируя обмен данными всех микросервисов в приложении. AWS App Mesh – это сервис, упрощающий настройку части приложения для полной видимости и высокой доступности. Чтобы обеспечить возможность использования App Mesh, добавьте образ прокси Envoy к определению задач ECS. App Mesh управляет конфигурацией Envoy, обеспечивая возможности сетки сервиса. App Mesh экспортирует метрики, журналы и маршруты к адресам, указанным в предоставленной конфигурации загрузочного сценария Envoy. App Mesh предоставляет API для настройки маршрутов трафика, разрыва канала связи, повторных попыток и других элементов управления между микросервисами, которые включаются с помощью сетки. Сетевая конфигурация задач Amazon Elastic Container Service поддерживает сетевые технологии Docker и интегрирован с Amazon VPC для обеспечения изоляции контейнеров. Это позволяет контролировать, как контейнеры подключаются к другим сервисам и внешнему трафику. Amazon ECS позволяет выбрать один из четырех сетевых режимов работы контейнеров, предназначенных для различных сценариев использования.
  • Сетевая конфигурация задач/awsvpc. В этом режиме каждому запущенному заданию ECS назначается эластичный сетевой интерфейс, который обеспечивает полноценную сетевую работу контейнеров в VPC, аналогичную их работе на инстансах EC2.
  • Мост. В этом режиме создается сетевой мост Linux, соединяющий между собой все контейнеры, которые работают на данном хосте виртуальной локальной сети и доступны через сетевое подключение хоста по умолчанию.
  • Узел. В этом режиме контейнеры добавляются непосредственно в сетевой стек хоста, в результате чего они оказываются доступны в сети данного хоста без изоляции.
  • Нет. В этом режиме внешний сетевой функционал контейнеров отключается.
Балансировка нагрузки Amazon ECS интегрирован с Elastic Load Balancing, что позволяет распределять трафик между контейнерами с помощью балансировщиков Application Load Balancer или Network Load Balancer. Требуется только указать определение задачи и выбрать балансировщик нагрузки, после чего Amazon ECS начнет автоматически добавлять контейнеры в балансировщик нагрузки и удалять контейнеры из него. В определении задания можно указать динамический порт – в этом случае контейнеру, запланированному для инстанса Amazon EC2, будет передан неиспользуемый порт. Для совместного использования балансировщика нагрузки с несколькими сервисами можно также применять маршрутизацию на основе путей. Безопасность Amazon ECS дает возможность указать роль IAM для каждого задания ECS. Это позволяет назначить инстансам контейнера Amazon ECS роль с минимальными правами. При этом будет соблюдена политика доступа с минимальными привилегиями и предоставлена возможность раздельно управлять ролями инстанса и задания. Кроме того, можно использовать Amazon CloudWatch Logs, чтобы просмотреть роль IAM, которой назначена задача. Мониторинг и ведение журналов Мониторинг Amazon ECS предоставляет возможности мониторинга контейнеров и кластеров с помощью Amazon CloudWatch. Это позволяет отслеживать среднее и совокупное использование ЦПУ и памяти запущенными заданиями, сгруппированными по определению задания, сервису или кластеру. Также можно установить предупреждения CloudWatch для оповещения о том, когда необходимо осуществить масштабирование контейнеров или кластеров в сторону увеличения или уменьшения. Ведение журналов Amazon ECS позволяет записывать все вызовы API Amazon ECS и получать файлы журналов с помощью AWS CloudTrail. В журналы попадает следующая информация: данные оператора, совершившего вызов API, время вызова API, IP-адрес источника, совершившего вызов API, параметры запроса, а также элементы ответа, возвращенные сервисом Amazon ECS. CloudTrail предоставляет историю вызовов API, сделанных с помощью Консоли управления AWS, SDK и интерфейса командной строки AWS. Данный сервис позволяет проводить анализ безопасности и аудит соответствия требованиям, а также отслеживать изменения ресурсов. ЦЕНЫ: Существуют две различные модели оплаты сервиса Amazon Elastic Container Service (ECS): Модель оплаты при запуске через Fargate При использовании Fargate вы платите только за потребляемые вашим контейнеризованным приложением ресурсы виртуальных ЦП и памяти. Потребление ресурсов виртуальных ЦП и памяти вычисляется с момента вызова ваших образов контейнера и до тех пор, пока задача Amazon ECS не завершится (с округлением до ближайшей секунды). Предусмотрен минимальный обязательный платеж за 1 минуту использования. Модель оплаты при запуске через EC2 При запуске через EC2 дополнительная плата не взимается. Оплате подлежат ресурсы AWS (например инстансы EC2 или тома EBS), которые создаются для хранения и запуска приложения. Вы платите только за то, что используете. Минимальные платежи и авансовые обязательства отсутствуют. ПРЕИМУЩЕСТВА: Контейнеры без серверов Amazon ECS поддерживает технологию AWS Fargate, что позволяет развертывать контейнеры и управлять ими без необходимости выделения серверов и управления ими. Благодаря Fargate не нужно выбирать типы инстансов Amazon EC2, выделять и масштабировать кластеры виртуальных машин для запуска контейнеров, планировать работу контейнеров на кластерах и поддерживать их доступность. Fargate дает возможность сосредоточиться на разработке и запуске приложений, а не на обслуживании базовой инфраструктуры. Контейнеры для любых приложений Amazon ECS позволяет просто создавать все типы контейнерных приложений – от приложений и микросервисов с длительным периодом работы до пакетных заданий и приложений машинного обучения. Можно выполнить миграцию устаревших приложений Linux или Windows из локальной сети в облако и запустить их в контейнерах с помощью Amazon ECS. Безопасность Amazon ECS запускает контейнеры в принадлежащем клиенту Amazon VPC, что позволяет использовать собственные группы безопасности VPC и списки контроля доступа к сети. Ваши вычислительные ресурсы не предоставляются для совместного использования другим пользователям. С помощью сервиса IAM можно также задать точные настройки разрешений на доступ для каждого из контейнеров, чтобы ограничить доступ к каждому сервису и ресурсу, к которым может обращаться контейнер. Это обеспечивает высокий уровень изоляции и позволяет создавать с помощью сервиса Amazon ECS приложения, обладающие высоким уровнем безопасности и надежности. Производительность при любом масштабе Сервис Amazon ECS построен на основе технологии, разработанной в результате многолетнего использования высокомасштабируемых сервисов. С помощью Amazon ECS можно без лишних сложностей запустить от нескольких десятков до десятков тысяч контейнеров Docker за считаные секунды. Интеграция с сервисами AWS Amazon ECS глубоко интегрирован с сервисами AWS, в том числе Elastic Load Balancing, Amazon VPC, AWS IAM, Amazon ECR, AWS Batch, Amazon CloudWatch, AWS CloudFormation, AWS CodeStar и AWS CloudTrail. В результате пользователи получают комплексное решение для создания и запуска разнообразных контейнерных приложений. В каких случаях следует использовать Amazon ECS: Микросервисы Amazon ECS помогает запускать приложения на основе микросервисов со встроенной интеграцией с сервисами AWS и обеспечивает работу конвейеров непрерывной интеграции и непрерывного развертывания (CI/CD). Пакетная обработка Amazon ECS позволяет выполнять пакетные рабочие нагрузки с помощью управляемых или специализированных планировщиков на инстансах по требованию, зарезервированных и спотовых инстансах Amazon EC2. Миграция приложений в облако Устаревшие корпоративные приложения можно упаковать в контейнеры и просто, без какого‑либо изменения кода, перенести в Amazon ECS. Машинное обучение Amazon ECS упрощает контейнеризацию моделей машинного обучения (ML), используемых как для обучения, так и для получения логических выводов. Можно создавать модели ML, состоящие из слабосвязанных распределенных сервисов, которые могут быть размещены на любом количестве платформ или близко к данным, анализируемым приложениями.

Схема работы

Схема работы

Особенности пользователей

Роли заинтересованных сотрудников

Исполнительный директор

ИТ директор

Организационные особенности

Сотрудники с доступом в Internet