С AWS Batch можно просто архивировать код для пакетных заданий, указывать зависимости и отправлять задания на выполнение с помощью Консоли управления AWS, интерфейса командной строки или SDK. Для заданий можно указывать зависимости и параметры запуска. AWS Batch облегчает интеграцию с большим количеством популярных языков программирования и сервисов для пакетных вычислений (например, Pegasus WMS, Luigi и AWS Step Functions). Сервис эффективно и динамически выделяет инстансы Amazon EC2 и спотовые инстансы, а также масштабирует их в зависимости от потребностей выполняемых заданий. В AWS Batch доступны готовые определения очередей заданий и вычислительных сред, которые позволяют без лишних усилий начать работу с сервисом.

Поддержка тесно связанных рабочих нагрузок HPC

AWS Batch поддерживает параллельные задания в нескольких узлах, что позволяет выполнять отдельные задания, охватывающие несколько инстансов EC2. С помощью этой функции можно использовать AWS Batch для простого и эффективного выполнения таких рабочих нагрузок, как крупномасштабные тесно связанные приложения высокопроизводительных вычислений (HPC) или обучение распределенных моделей графических процессоров. AWS Batch также поддерживает Elastic Fabric Adapter – сетевой интерфейс, который позволяет запускать приложения, требующие высокой скорости взаимодействия между узлами в любых масштабах на AWS. 

Подробное определение заданий

Для работы с заданиями AWS Batch позволяет настраивать конкретные требования к ресурсам, таким как память и виртуальные ЦПУ, роли AWS Identity and Access Management (IAM), точки подключения томов, параметры контейнеров, а также переменные среды. AWS Batch выполняет задания в виде приложений в контейнерах в Amazon ECS.

Простое моделирование зависимостей задания

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

AWS Batch можно интегрировать с сервисами управления рабочими процессами (как с коммерческими, так и с теми, что распространяются с открытым исходным кодом), например с Pegasus WMS или Luigi. Это позволяет использовать знакомые языки программирования для моделирования конвейеров пакетных вычислений.

Динамическое выделение вычислительных ресурсов и масштабирование

AWS Batch использует управляемые вычислительные среды для динамического выделения вычислительных ресурсов и масштабирования в зависимости от объема и требований предоставленных заданий. Для управляемых вычислительных сред AWS Batch можно настраивать такие требования, как тип инстансов EC2, конфигурации подсети VPC, максимальное / минимальное / желательное количество виртуальных ЦП на всех инстансах, а также сумму, которую вы готовы заплатить за спотовые инстансы в виде процента от цены на инстанс по требованию.

Кроме того, если требуется другая конфигурация (например, более крупные тома EBS или операционная система, недоступная в рамках управляемых вычислительных сред), для инстансов EC2 можно выделять собственные вычислительные ресурсы в рамках среды, не управляемой AWS Batch. Достаточно выделить инстансы EC2, на которых установлены агент Amazon ECS и поддерживаемые версии Linux и Docker. После этого AWS Batch будет запускать пакетные задания на этих инстансах EC2.

Планирование выполнения заданий на основе приоритетов

AWS Batch позволяет настроить несколько очередей заданий с разными уровнями приоритета. Пакетные задания находятся в очереди до тех пор, пока не появятся доступные вычислительные ресурсы. Планировщик заданий AWS Batch определяет, где, когда и как можно запускать поставленные в очередь задания, на основании требований к ресурсам для каждого задания. Планировщик определяет приоритет каждой очереди и в соответствии с этим запускает задания, используя оптимальный набор вычислительных ресурсов (например, с преобладанием памяти или ресурсов ЦП), при условии, что у заданий нет невыполненных зависимостей.

Встроенный мониторинг и ведение журналов

AWS Batch отображает основные рабочие метрики заданий в Консоли управления AWS. Можно просматривать метрики по вычислительным ресурсам, а также выполняемые задания, завершенные задания и задания, ожидающие своей очереди. Журналы заданий (например, STDERR и STDOUT) доступны в Консоли управления AWS и сохраняются в сервисе Amazon CloudWatch Logs.

Точный контроль доступа

AWS Batch использует IAM для управления ресурсами AWS, доступными для заданий, например таблицами Amazon DynamoDB, а также для мониторинга таких ресурсов. IAM также позволяет создавать политики для разных пользователей в организации. Например, администраторам можно предоставить полный доступ API AWS Batch, разработчикам – ограниченные права для настройки вычислительных сред и регистрации заданий, а конечным пользователям – только права на отправку и удаление заданий.

Подробнее о ценах на AWS Batch

Перейти на страницу цен
Готовы приступить к разработке?
Начать работу с AWS Batch
Есть вопросы?
Свяжитесь с нами