Возможности AWS Batch

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

Пакет AWS на Amazon Elastic Kubernetes Service (EKS)

Пакет AWS на EKS управляет масштабированием инструментов Kubernetes и размещением подов на ваших узлах. Он делает это, сохраняя управление и оркестрацию, которые обеспечивает Amazon EKS для других рабочих нагрузок и сервисов. Пакет AWS может безопасно выполнять задания как поды Kubernetes в существующих кластерах EKS. Все, что вам нужно сделать, – это указать требования к виртуальным ЦПУ, памяти и графическому процессору, которые нужны вашим контейнерам. Отправьте их в очередь, прикрепленную к вычислительной среде с кластером EKS. Пакет AWS управляет постановкой в очередь, отслеживанием зависимостей, повторными попытками, приоритетом и отправкой подов в очередь заданий. Также он управляет предоставлением вычислительных ресурсов в среде EKS как при использовании вычислительных ресурсов EC2, так и использовании вычислительных ресурсов спотовых EC2. Пакет интегрируется с вашим кластером EKS в отдельном пространстве имен, и вам не нужно беспокоиться о том, что задания Пакета AWS будут вмешиваться в ваши существующие процессы. Пакет управляет объемом за вас, в том числе предоставляет возможность поддерживать «теплый» пул узлов, ограничивать объем при определенном количестве виртуальных ЦПУ, масштабировать узлы и выполнять задания во многих различных кластерах или просто выполнять все ваши задания в отдельном кластере. Пакет поддерживает независимые задания как основную единицу работы, но может и планировать выполнение ваших заданий в совокупности, используя массивы.

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

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

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

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

AWS Batch с Fargate

AWS Batch с ресурсами Fargate позволяет выполнять пакетные задания на полностью бессерверной архитектуре. При использовании Fargate каждое задание в точности получает запрошенные количество ЦПУ и объем памяти (в пределах разрешенного SKU Fargate), что избавляет от лишней траты ресурсов и времени, а также необходимости дожидаться запуска инстанса EC2.

Для тех, кто уже пользуется Batch, Fargate обеспечивает дополнительную изоляцию от EC2. Нет потребности управлять образами AMI или вносить в них исправления. При отправке в Batch заданий, совместимых с Fargate, не нужно беспокоиться о поддержке двух разных сервисов, если одни рабочие нагрузки запускаются на EC2, а другие – на Fargate.

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

Кроме того, Fargate обеспечивает преимущества безопасности, не требующие дополнительных усилий (например, соответствие стандартам SOX и PCI), а также изоляцию вычислительных ресурсов для каждого задания.

Поддержка тесно связанных рабочих нагрузок 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
Есть вопросы?
Связаться с нами