С AWS Batch можно просто архивировать код для пакетных заданий, указывать зависимости и отправлять задания с помощью Консоли управления AWS, интерфейса командной строки или SDK. Для заданий можно указать зависимости и параметры запуска. AWS Batch облегчает интеграцию с большим количеством популярных движков и языков пакетных вычислений (например, Pegasus WMS, Luigi и AWS Step Functions). Сервис эффективно и динамически выделяет инстансы Amazon EC2 и спотовые инстансы, а также масштабирует их при необходимости. В AWS Batch доступны готовые определения очередей заданий и вычислительных сред, которые позволяют легко начать работу с сервисом.
Начните работу с AWS Batch сегодня
Начало работы
Для работы с заданиями AWS Batch позволяет задавать конкретные требования к ресурсам, таким как память и виртуальные ЦПУ, роли AWS Identity and Access Management (IAM), точки подключения томов, параметры контейнеров, а также переменные среды. AWS Batch выполняет задания в контейнерах в Amazon ECS.
В AWS Batch можно определять зависимости заданий. Например, задание может включать три различных этапа обработки, для которых требуются разные ресурсы. Можно определить три задания с разными требованиями к ресурсам и указать зависимость каждого последующего задания от результатов выполнения предыдущего.
AWS Batch можно интегрировать с движками управления рабочими процессами (как с коммерческими, так и с движками с открытым исходным кодом), например с Pegasus WMS или Luigi. Это позволяет использовать знакомые языки для моделирования процессов вычисления.
AWS Batch использует управляемые вычислительные среды для динамического выделения вычислительных ресурсов и масштабирования в зависимости от объема и требований предоставленных заданий. К управляемым вычислительным средам AWS можно задавать такие требования, как тип инстансов EC2, конфигурации подсети VPC, максимальное/минимальное/желательное количество виртуальных ЦПУ во всех инстансах, а также цену на спотовые инстансы.
Кроме того, если нужна другая конфигурация (например, более крупные объемы EBS или другая операционная система), для инстансов EC2 можно выделять свои собственные вычислительные ресурсы в рамках среды, не управляемой AWS Batch. Достаточно выделить инстансы EC2, на которых установлены агент Amazon ECS и поддерживаемые версии Linux и Docker. После этого AWS Batch будет запускать пакетные задания в этих инстансах EC2.
AWS Batch позволяет настроить несколько очередей заданий с разными уровнями приоритета. Пакетные задания находятся в очереди до тех пор, пока не появятся вычислительные ресурсы. Планировщик заданий AWS Batch определяет, где, когда и как можно запускать поставленные в очередь задания, на основе требований к ресурсам для каждого задания. Планировщик определяет приоритет каждой очереди и в соответствии с этим запускает задания, используя оптимальный набор вычислительных ресурсов (например, больше памяти или мощности ЦПУ), при условии, что у заданий нет невыполненных зависимостей.
AWS Batch позволяет снизить затраты на выполнение заданий за счет использования спотовых инстансов Amazon EC2. Сервис динамически размещает от имени пользователя заявки на спотовые инстансы на основании требований к ресурсам и параметрам конфигурации.
AWS Batch отображает ключевые рабочие метрики заданий в Консоли управления AWS. Можно просматривать метрики по объемам вычислительных ресурсов, а также выполняемые задания, завершенные задания и задания, ожидающие своей очереди. Журналы запуска заданий (например, STDERR и STDOUT) доступны в Консоли управления AWS и также добавляются в журналы Amazon CloudWatch.
AWS Batch использует IAM для мониторинга и управления ресурсами AWS, доступными для заданий, такими как таблицы Amazon DynamoDB. IAM также позволяет задавать конкретные политики для разных пользователей в организации. Например, администраторам можно предоставить полный доступ API AWS Batch, разработчикам – ограниченные права для настройки вычислительных сред и регистрации заданий, а конечным пользователям – только права на отправку и удаление заданий.