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

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

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

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

Поддержка тесно связанных рабочих нагрузок 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. В Batch также можно определять зависимости между заданиями. К примеру, пакетное задание может включать три различных этапа обработки, для которых требуются разные ресурсы. Можно определить три задания с разными требованиями к ресурсам и указать зависимость каждого последующего задания от результатов выполнения предыдущего.

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

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

Поддержка планирования графических процессоров

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

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

Интеграция с шаблонами запуска EC2

AWS Batch теперь поддерживает шаблоны запуска EC2, что позволяет создавать собственные шаблоны для вычислительных ресурсов и масштабировать инстансы с учетом этих требований. Вы можете указать свой шаблон запуска EC2, чтобы добавить тома памяти, указать сетевые интерфейсы или настроить разрешения. Шаблоны запуска EC2 упрощают настройку сред Batch, так как параметры запуска фиксируются в одном ресурсе.

Гибкие стратегии распределения

AWS Batch предлагает клиентам три метода распределения вычислительных ресурсов. Эти стратегии позволяют клиентам учитывать пропускную способность и цену при принятии решения о масштабировании инстансов, которое AWS Batch выполняет от их имени.

Наилучшее соответствие: AWS Batch выбирает тип инстанса, который наилучшим образом отвечает требованиям заданий, отдавая предпочтение типу с наименьшей стоимостью. Если дополнительные инстансы выбранного типа недоступны, AWS Batch будет ожидать появления дополнительных инстансов. Если инстансов не будет хватать или будут достигнуты лимиты сервисов Amazon EC2, выполнение дополнительных заданий начнется после завершения текущих. Эта стратегия распределения позволяет удерживать затраты на низком уровне, но может ограничивать масштабирование.

Наилучшее соответствие по принципу возрастания: AWS Batch выбирает дополнительные типы инстансов, достаточно большие для выполнения требований заданий в очереди, отдавая предпочтение типам с более низкой стоимостью единицы виртуальных ЦПУ. Если дополнительные инстансы ранее выбранных типов недоступны, 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
Есть вопросы?
Свяжитесь с нами