Разработка

Поддержка Docker

Amazon ECS поддерживает Docker, предоставляя возможность запуска контейнеров Docker и управления ими. Сервис даже интегрируется в Docker Compose CLI, поэтому возможно определять и запускать приложения с несколькими контейнерами. Развертывание и запуск в Amazon ECS приложений, упакованных в контейнер локально, не требует каких-либо изменений конфигурации.

Совместимость с контейнерами Windows

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

AWS Copilot

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

Поддержка репозитория

Используйте 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 EC2, так и с AWS Fargate. Запускаемые задачи и сервисы можно разделить между несколькими поставщиками ресурсов, что позволяет использовать новые возможности, такие как запуск сервиса на Fargate и Fargate Spot в предварительно выбранном процентном соотношении.

Хранилище

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

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

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

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

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

Планирование сервиса

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

Планирование демонов

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

Task Placement

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

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

Сетевые технологии

Обнаружение сервисов

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

Сетка сервисов

Сетка сервиса позволяет легко создавать и выполнять сложные микросервисные приложения, стандартизируя обмен данными всех микросервисов в приложении. AWS App Mesh – это сервис, упрощающий настройку части приложения для полной видимости и высокой доступности. Чтобы обеспечить возможность использования App Mesh, добавьте образ прокси Envoy к определению задач ECS. App Mesh управляет конфигурацией Envoy, обеспечивая возможности сетки сервиса. App Mesh экспортирует метрики, журналы и маршруты к адресам, указанным в предоставленной конфигурации загрузочного сценария Envoy. App Mesh предоставляет API для настройки маршрутов трафика, разрыва канала связи, повторных попыток и других элементов управления между микросервисами, которые включаются с помощью сетки.

Сетевая конфигурация задач

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

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

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

AWS Outposts

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

Узнайте о ценах на Amazon ECS

Перейти на страницу цен
Готовы начать?
Регистрация
Есть вопросы?
Свяжитесь с нами