Функции Amazon ECS

Эластичный сервис контейнеров Amazon (Amazon ECS) – это полностью автоматизированный сервис оркестрации контейнеров, который обеспечит организациям удобное развертывание, администрирование и масштабирование упакованных в контейнер приложений. Не требующая версий догматическая плоскость управления Amazon ECS тесно интегрируется с остальной средой AWS, предоставляя безопасное и простое в использовании решение для запуска контейнерных рабочих нагрузок в облаке. Amazon ECS может работать с Эластичным облаком вычислений Amazon (Amazon EC2), AWS Fargate или даже с локальной инфраструктурой с Amazon ECS Anywhere.

Основные возможности

AWS Fargate встроен в Amazon ECS, а это значит, что вам больше не нужно беспокоиться об управлении серверами, планировании пропускной способности или способах изолирования контейнерных рабочих нагрузок из соображений безопасности. Нужно только указать требования приложения и выбрать в консоли или интерфейсе командной строки (CLI) тип запуска AWS Fargate. После этого AWS Fargate берет на себя все управление масштабированием и инфраструктурой для работы контейнеров с гибкими возможностями вычислений с автоматической интеграцией в другие вспомогательные сервисы AWS, необходимые вашему приложению.

С помощью Amazon ECS Anywhere вы можете использовать знакомые инструменты консоли и оператора Amazon ECS, чтобы управлять локальными контейнерными рабочими нагрузками для обеспечения согласованного взаимодействия с приложениями на основе контейнеров. Amazon ECS для AWS Outposts также можно использовать для запуска контейнерных приложений, требующих особо малой задержки, в локальных системах.

Интеграция Amazon ECS с инструментами безопасности, идентификации, управления и администрирования, которым вы уже доверяете, встроена в сервис, что помогает быстро и успешно начать работу. Каждому из контейнеров можно присвоить подробное разрешение, что обеспечит высокий уровень изоляции при создании приложений. Запускайте свои контейнеры с тем уровнем безопасности и соответствия требованиям, который принято ожидать от AWS. А благодаря интеграции с Amazon GuardDuty вы можете быстро и просто обнаруживать внешние угрозы своим рабочим нагрузкам до их эскалации.

Amazon ECS – это полностью управляемый сервис оркестровки контейнеров со встроенными рекомендациями по настройке и эксплуатации AWS, и без необходимости управлять плоскостью управления, узлами или надстройками. Сервис по умолчанию интегрируется как с AWS, так и со сторонними инструментами, чтобы команда могла с легкостью сосредоточиться над работой с приложением, а не средой.

Разработка

Amazon ECS позволяет управлять контейнерами Windows. Образ Windows Amazon Machine Image (AMI), оптимизированный для Amazon ECS, оптимизирует время запуска инстанса и контейнера и обеспечивает возможность просмотра производительности ЦПУ, использования памяти и метрик резервирования.

AWS Copilot CLI – это инструмент командной строки, с помощью которого разработчики могут создавать, выпускать и эксплуатировать готовые к работе контейнерные приложения на базе Amazon ECS и AWS Fargate. Copilot использует передовые технологии, от инфраструктуры до непрерывной доставки, и делает их доступными для клиентов без необходимости выхода из командной строки. Также можно контролировать состояние своего сервиса, просматривая его статус или журналы, увеличивая или уменьшая масштабы действующих сервисов и запуская новую среду для автоматизированного тестирования. Загрузить AWS Copilot.

Amazon ECS можно использовать с любым репозиторием образов Docker, размещенным на стороннем хостинге, или с доступным частным реестром Docker, например Docker Hub или Реестром эластичных контейнеров 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.

Планировщик Amazon ECS будет автоматически восстанавливать работу неисправных контейнеров, чтобы гарантировать наличие необходимого количества контейнеров для поддержания работы приложения.

С помощью поставщиков ресурсов можно устанавливать гибкие правила выполнения контейнерных рабочих нагрузок на различных типах вычислительных ресурсов и управлять масштабированием ресурсов. Поставщики ресурсов работают как с Amazon Elastic Compute Cloud (Amazon EC2), так и с AWS Fargate. Запускаемые задачи и сервисы можно разделить между несколькими поставщиками ресурсов, что позволяет использовать новые возможности, такие как запуск сервиса на Fargate и Fargate Spot в предварительно выбранном процентном соотношении.

Магазин эластичных блоков Amazon (Amazon EBS) — это простой в использовании, масштабируемый высокопроизводительный сервис блочного хранилища, который позволяет предоставлять экономичное хранилище для развертываний Amazon ECS и AWS Fargate. Вы можете использовать все конфигурации и возможности EBS в своих контейнерных рабочих нагрузках, развернутых в Amazon ECS.

Эластичная файловая система Amazon (Amazon EFS) – это простая, масштабируемая, полностью управляемая эластичная файловая система, которая дает возможность создавать современные приложения, хранить данные и состояния, а также предоставлять к ним доступ в развертываниях Amazon ECS и AWS Fargate. Учтены все аспекты использования Amazon EFS с контейнерами, в том числе и подключение, управление не требуется. Вы можете сосредоточиться только на своих приложениях, а не на инфраструктуре. Подробнее о постоянном файловом хранилище.

Планирование и размещение задач

Amazon ECS включает в себя несколько стратегий планирования, которые распределяют контейнеры в кластерах клиента, основываясь на указанных потребностях в ресурсах (например, ЦПУ или оперативной памяти), а также требованиях к доступности. Применяя подходящие стратегии планирования, можно планировать пакетные задания, приложения и сервисы с длительным периодом выполнения, а также процессы-демоны.

Планирование задач Amazon ECS позволяет запускать процессы, которые выполняют определенные действия, а затем останавливаются (например, задания пакетной обработки). Планирование задач запускает задачи автоматически из очереди заданий либо через указанный промежуток времени.

Подробнее о планировании задач Amazon ECS »

Планирование сервиса Amazon ECS позволяет запускать сервисы и приложения без сохранения состояния. Такая стратегия планирования обеспечивает постоянную работу определенного количества задач и их повторный запуск, если происходит сбой. Клиенты могут обеспечить регистрацию задач в балансировщике нагрузки Elastic Load Balancing и выполнять несколько типов проверки состояния запущенных задач на выбор.

Планирование демонов Amazon ECS автоматически запускает одну и ту же задачу на всех выбранных инстансах кластера ECS. Это упрощает запуск задач, которые обеспечивают функционал общего управления для сервиса, таких как ведение журналов, мониторинг или резервное копирование.

Amazon ECS позволяет пользователям индивидуально настраивать размещение задач в кластере из инстансов Amazon EC2 на основании таких встроенных атрибутов, как тип инстанса и зона доступности, а также указанных пользователем специальных атрибутов. Используйте такие атрибуты, как environment = production для создания меток ресурсов, а затем применяйте вызовы API List для поиска соответствующих ресурсов и API RunTask и CreateService для планирования задач на таких ресурсах.

Amazon ECS позволяет использовать стратегии размещения, такие как пакетирование или распределение, для более точного определения того, где размещать задачи. Сервис позволяет создавать цепочки политик для получения продвинутых возможностей размещения без единой строчки кода.

Сеть

Amazon ECS Service Connect упрощает обнаружение сервисов, подключения и отслеживания трафика для Amazon ECS. Благодаря этому вы можете быстрее создавать приложения, а также больше сосредоточиться на коде приложения, а не на сетевой инфраструктуре. Вы можете использовать ECS Service Connect, чтобы определять логические имена для адресов сервиса и использовать их в клиентских приложениях для подключения к зависимостям. ECS Service Connect помогает направлять трафик на исправные адреса и предоставляет полную телеметрию трафика в консоли ECS и в Amazon CloudWatch. Собственные развертывания ECS более надежны с ECS Service Connect, поскольку поддерживают автоматическое освобождение подключения, которое помогает клиентским приложениям переключаться на новую версию адреса сервиса без ошибок трафика.

С ECS Service Connect вы сможете:

• устанавливать способ подключения клиентских приложений к зависимостям, выполняя всего одно действие;

• писать и использовать отказоустойчивые распределенные приложения с логическим именованием;

• мониторить и распределять трафик между задачами ECS без развертывания и настройки балансировщиков нагрузки;

• быстрее развертывать сервисы и обеспечивать эффективную интеграцию микросервисов ECS, из которых состоит приложение.

Подробнее о переносе существующих сервисов Amazon ECS из системы обнаружения сервисов в ECS Service Connect »

Сервис Amazon ECS интегрирован с AWS Cloud Map. Благодаря этому размещенные в контейнерах сервисы могут легко обнаруживать друг друга и подключаться друг к другу. AWS Cloud Map – сервис обнаружения облачных ресурсов, который позволяет выбирать пользовательские имена для ресурсов приложений. Это повышает доступность приложений, так как веб-сервис всегда обнаруживает последние расположения его динамически меняющихся ресурсов.

Подробнее о переносе существующих сервисов Amazon ECS из системы обнаружения сервисов в ECS Service Connect »

Amazon ECS поддерживает сетевые технологии Docker и интегрирован с Amazon VPC для обеспечения изоляции контейнеров. Это позволяет контролировать, как контейнеры подключаются к другим сервисам и внешнему трафику. Amazon ECS позволяет выбрать один из четырех сетевых режимов работы контейнеров, предназначенных для различных сценариев использования.

Сетевая конфигурация задач/awsvpc
В этом режиме каждому запущенному заданию ECS назначается эластичный сетевой интерфейс, который обеспечивает полноценную сетевую работу контейнеров в VPC, аналогичную их работе на инстансах EC2.

Мост
В этом режиме создается сетевой мост Linux, соединяющий между собой все контейнеры, которые работают на данном хосте виртуальной локальной сети и доступны через сетевое подключение хоста по умолчанию.

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

Нет
В этом режиме внешний сетевой функционал контейнеров отключается.

Amazon ECS интегрирован с Elastic Load Balancing, что позволяет распределять трафик между контейнерами с помощью балансировщиков Application Load Balancer или Network Load Balancer. Требуется только указать определение задачи и выбрать балансировщик нагрузки, после чего Amazon ECS начнет автоматически добавлять контейнеры в балансировщик нагрузки и удалять контейнеры из него. Укажите динамический порт в определении задания, в этом случае контейнеру, запланированному для инстанса EC2, будет передан неиспользуемый порт. Дополнительно для совместного использования балансировщика нагрузки с несколькими сервисами можно применять маршрутизацию на основе путей.

Мониторинг и ведение журналов

Amazon ECS предоставляет возможности мониторинга контейнеров и кластеров с помощью Amazon CloudWatch. Это позволяет отслеживать среднее и совокупное использование ЦПУ и памяти запущенными заданиями, сгруппированными по определению задания, сервису или кластеру. Установите предупреждения CloudWatch для оповещения о том, когда необходимо осуществить масштабирование контейнеров или кластеров в сторону увеличения или уменьшения.

С помощью Amazon ECS можно записывать все вызовы API Amazon ECS и получать файлы журналов посредством AWS CloudTrail. В журналы попадает следующая информация: данные оператора, совершившего вызов API, время вызова API, IP-адрес источника, совершившего вызов API, параметры запроса, а также элементы ответа, возвращенные сервисом Amazon ECS. CloudTrail предоставляет историю вызовов API, сделанных с помощью Консоли управления AWS, SDK и интерфейса командной строки AWS. Данный сервис позволяет проводить анализ безопасности и аудит соответствия требованиям, а также отслеживать изменения ресурсов.

AWS Config интегрируется с Amazon ECS, чтобы обеспечить видимость настроек ресурсов AWS в вашем аккаунте AWS. С помощью AWS Config пользователи могут мониторить и отслеживать настройки ресурсов, их взаимосвязи, а также изменения с течением времени. Благодаря AWS Config можно упростить соблюдение требований и стандартов безопасности, операционное устранение неполадок и администрирование ресурсов.

Гибридные развертывания

Amazon ECS для AWS Outposts можно использовать для запуска контейнерных приложений, требующих особо малой задержки, в локальных системах. Outposts – это полностью управляемый сервис, предоставляющий возможность использовать инфраструктуру AWS, сервисы AWS, API и инструменты практически в любой системе, подключенной к этому сервису. Благодаря Amazon ECS для Outposts локальное управление контейнерами становится таким же простым, как и управление ими в облаке.

С помощью Amazon ECS Anywhere вы можете использовать знакомые инструменты консоли и оператора Amazon ECS, чтобы управлять локальными контейнерными рабочими нагрузками для обеспечения согласованного взаимодействия с приложениями на основе контейнеров. Интеграция Менеджера систем AWS (SSM) автоматически и надежно устанавливает доверие между локальным оборудованием и плоскостью контроля AWS.

Подробнее об Amazon ECS Anywhere »