Общая информация

Вопрос. Что такое AWS Batch?
AWS Batch – это набор функций пакетного управления, позволяющий разработчикам, ученым и инженерам легко и эффективно выполнять сотни тысяч заданий пакетных вычислений на AWS. Сервис AWS Batch динамически выделяет оптимальные объемы и типы вычислительных ресурсов (например, оптимизированных для работы с ЦПУ или памятью) на основании объемов и особых требований к ресурсам отправленных в сервис заданий пакетной обработки. Благодаря сервису Пакет AWS не нужно устанавливать и обслуживать вычислительное ПО или кластеры серверов, что позволяет пользователю сосредоточиться на анализе результатов и решении проблем. Сервис Пакет AWS планирует, составляет расписание и выполняет ваши рабочие нагрузки для пакетных вычислений с помощью Amazon ECS, Amazon EKS и AWS Fargate с возможностью использования спотовых инстансов.

Вопрос. Что такое пакетные вычисления?
Пакетные вычисления – это исполнение серии программ (заданий) на одном или нескольких компьютерах без ручного вмешательства. Входные параметры предопределяются с помощью скриптов, аргументов командной строки, управляющих файлов или языка управления заданиями. Выполнение конкретного пакетного задания зависит от завершения предыдущих заданий или наличия соответствующих входных данных, поэтому особую важность приобретает соблюдение очередности и планирование графика выполнения множества заданий. Соответственно, выполнение пакетных заданий и интерактивная обработка несовместимы.

Вопрос. Каковы преимущества пакетных вычислений?
  • Пакетные вычисления помогают сместить обработку заданий по времени, чтобы воспользоваться доступными ресурсами в большем объеме или по меньшей стоимости.
  • Они позволяют избежать простоя вычислительных ресурсов и регулярного ручного вмешательства в процессы управления ими.
  • Они позволяют повысить эффективность за счет более интенсивного использования вычислительных ресурсов.
  • Они определяют приоритеты выполнения заданий, сопоставляют выделение ресурсов с бизнес-целями.

Когда задания следует запускать на EKS, Fargate, ECS?
Задания следует запускать на Fargate, если ресурсы для вычислений в Пакете AWS нужно выделять без какой-либо привязки к инфраструктуре ECS. Задания следует запускать на ECS, если нужен доступ к определенным конфигурациям инстансов (с конкретными ЦПУ или графическими процессорами либо особой архитектурой), а также в случае особо масштабных рабочих нагрузок. Если в качестве технологии оркестрации контейнеров вы выбрали Kubernetes, то можете стандартизировать пакетные рабочие нагрузки, используя интеграцию сервиса Пакет с EKS.
 
В зависимости от примера использования, задания на Fargate запускаются быстрее в случае изначального расширения масштабов работы, так как при этом не нужно дожидаться запуска инстанса EC2 или подов. Однако большие рабочие нагрузки могут быстрее выполняться на инстансах EKS или ECS, поскольку Batch повторно использует инстансы и образы контейнеров для запуска последующих заданий.
 
Вопрос. Когда задания следует запускать на Fargate, а когда – на EC2?
Задания следует запускать на Fargate, если ресурсы для вычислений в AWS Batch нужно выделять без какой-либо привязки к инфраструктуре EC2. Задания следует запускать на EC2, если нужен доступ к определенным конфигурациям инстансов (с конкретными ЦПУ или графическими процессорами либо особой архитектурой), а также в случае особо масштабных рабочих нагрузок.
 
В зависимости от сценария использования задания могут запускаться быстрее на EC2 или Fargate. Задания на Fargate запускаются быстрее в случае изначального расширения масштабов работы, так как при этом не нужно дожидаться запуска инстанса EC2. Однако большие рабочие нагрузки могут быстрее выполняться на инстансах EC2, поскольку Batch повторно использует инстансы и образы контейнеров для запуска последующих заданий.
 
Вопрос. Можно ли переносить рабочие нагрузки между ядрами вычислений Fargate и Fargate Spot?
Да. Для ядра вычислений Fargate можно установить максимальное количество виртуальных ЦПУ, равное общему количеству виртуальных ЦПУ всех заданий, в настоящий момент выполняющихся на этом ядре вычислений. Когда количество виртуальных ЦПУ достигнет максимального в ядре вычислений, Batch начнет планировать задания на следующем ядре вычислений Fargate в порядке очереди, если таковая имеется. Это полезно в тех случаях, когда ядро вычислений нужно настроить в соответствии с минимальными требованиями для бизнеса, а остаток рабочей нагрузки предполагается запускать на Fargate Spot.
 
При настройке ядра вычислений Fargate Spot как основного, а Fargate как вспомогательного, Batch будет переносить рабочие нагрузки в Fargate лишь тогда, когда количество виртуальных ЦПУ, используемое для заданий, превысит максимальное для такого ядра вычислений. Если же ядро вычислений Fargate Spot будет отозвано, максимальное количество виртуальных ЦПУ не будет достигнуто, а Batch не будет запрашивать ресурсы Fargate для выполнения заданий в следующем ядре вычислений.
 
Подключать очередь заданий AWS Batch к ядру вычислений Fargate / Fargate Spot и к ядру вычислений EC2 или Spot запрещается.

Для чего нужен сервис AWS Batch?

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

Вопрос. Для каких сценариев использования оптимизирован AWS Batch?
Сервис AWS Batch оптимизирован для пакетных вычислений и приложений, которые масштабируются в результате параллельного исполнения нескольких заданий. Показательные примеры пакетных вычислений – это глубокое обучение, анализ генома, моделирование финансовых рисков, моделирование по методу Монте-Карло, рендеринг анимации, перекодирование мультимедийных данных, обработка изображений и инженерное моделирование.

Возможности

Вопрос. Какие основные возможности предлагает сервис Пакет AWS?

Пакет AWS управляет средами вычислений и очередями заданий, позволяя легко выполнять тысячи заданий любого масштаба с помощью сервисов Amazon ECS, Amazon EKS и AWS Fargate с возможностью выбора спотовых ресурсов или ресурсов по требованию. Нужно лишь определить пакетные задания и отправить их в очередь. В ответ сервис AWS Batch выберет место исполнения заданий и запустит соответствующие ресурсы AWS при необходимости. AWS Batch тщательно отслеживает процесс выполнения заданий. Когда потребность в ресурсах отпадает, AWS Batch удаляет их. AWS Batch также предлагает возможность отправлять задания, являющиеся частью конвейера или рабочего процесса, позволяя по мере отправки заданий выразить все существующие взаимозависимости.

Вопрос. Какие типы пакетных заданий поддерживаются сервисом AWS Batch?
AWS Batch поддерживает любые задания, которые можно исполнять как контейнеры Docker. В соответствии с заданиями определяются требования к памяти и количеству виртуальных ЦПУ.  

Вопрос. Что такое вычислительный ресурс?
Вычислительный ресурс AWS Batch – это инстанс EC2 или вычислительный ресурс AWS Fargate.

Вопрос. Что такое вычислительная среда?
Вычислительная среда AWS Batch – это набор вычислительных ресурсов, на которых исполняются задания. AWS Batch поддерживает два типа вычислительных сред: управляемые вычислительные среды, за выделение которых и последующее управление отвечает AWS, и неуправляемые вычислительные среды, за управление которыми отвечают клиенты. Неуправляемые вычислительные среды позволяют использовать специализированные ресурсы, например выделенные узлы, укрупненные конфигурации хранилищ и Amazon EFS.

Вопрос. Что такое определение задания?
Определение задания описывает исполняемое задание, параметры, переменные среды, требования к вычислениям и прочую информацию, используемую для оптимизации исполнения задания. Определения заданий указываются перед отправкой задания, их можно открыть для совместного использования.

Вопрос. Что такое агент Amazon ECS и как он используется сервисом AWS Batch?
AWS Batch использует сервис Amazon ECS для выполнения заданий из контейнеров и поэтому требует установки агента ECS на ресурсах вычислительных сред AWS Batch. В управляемых вычислительных средах агент ECS уже предустановлен.

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

Цены

Вопрос. Сколько стоит использование AWS Batch?
Дополнительная плата за AWS Batch отсутствует. Пользователь оплачивает только стоимость ресурсов AWS (например, инстансов EC2 или AWS Fargate), которые создаются для хранения и выполнения пакетных заданий.

Планирование инстансов с графическим процессором (GPU)

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

Вопрос. Для чего необходимо использовать бизнес-акселераторы с AWS Batch?
Используя бизнес-акселераторы с AWS Batch, вы можете в динамическом режиме планировать и распределять задания с учетом всех требований. Batch гарантирует, что для каждого задания будет зарезервировано соответствующее количество бизнес-акселераторов. Batch позволяет при необходимости масштабировать инстансы в сторону увеличения для ускоренной работы EC2, а также масштабировать их в сторону уменьшения после завершения работы, чтобы вы могли спокойно сосредоточиться на своих приложениях. Batch имеет встроенную интеграцию со спотовыми инстансами EC2, что означает, что ускоренное выполнение заданий может обеспечить до 90 % экономии при использовании ускоренных инстансов.

Вопрос. Какие бизнес-акселераторы можно использовать с AWS Batch?
В настоящее время можно использовать бизнес-акселераторы графического процессора на ускоренных инстансах серий P и G.
 
Вопрос. Как отправлять на обработку задания, требующие переноса ускоренных инстансов в Batch?
Количество и тип бизнес-акселераторов можно указать в графе определения задания. Вы должны уточнить тип бизнес-акселератора (например, графический процессор – единственный на данный момент поддерживаемый акселератор), а также какое количество акселераторов необходимо для выполнения вашего задания. Выбранный тип бизнес-акселератора должен быть среди типов инстансов, указанных в вычислительных средах. Например, если ваша работа требует 2 графических процессора, то необходимо также указать инстанс семейства P в своей вычислительной среде.

Пример из API:
{
«свойства_контейнеров»: {
«виртуальные ЦПУ»: 1,
«изображение»: «nvidia/cuda: версия 9.0»,
«память»: 2048,
«ресурсные_требования»: [
{
«тип»: «графический процессор»,
«значение» : «1»
}
],

Вопрос. Можно ли изменить переменные бизнес-акселератора в определении задания при отправке задания?
При отправке задания вы можете изменить количество и тип бизнес-акселераторов. Вы также можете изменить виртуальные ЦПУ и требования к памяти.

Вопрос. Можно ли использовать ускоренные инстансы для заданий, не требующих акселераторов?
В нынешних условиях Batch по возможности не будет планировать задания, которые не требуют ускорения с помощью ускоренных инстансов. Это делается для того, чтобы избежать случаев, когда долгосрочные задания занимают ускоренные инстансы без использования бизнес-акселератора, что приводит к увеличению расходов. В редких случаях при спотовой цене и наличии ускоренных инстансов необходимого типа Batch может решить, что для выполнения ваших заданий наименее затратным будет применение ускоренного инстанса. При этом неважно, будет использоваться бизнес-акселератор или нет.

Если вы отправите задание в CE, для которого только Batch может запускать ускоренные инстансы, то он будет выполнять задания на указанных инстансах, независимо от необходимости использования бизнес-акселератора.

Вопрос. Как Batch использует ECS AMI, оптимизированный под графические процессоры?
С этого момента инстансы типа P будут запускаться по умолчанию вместе с ECS AMI, оптимизированным под графические процессоры. AMI содержит библиотеки и среды выполнения, необходимые для запуска приложений на базе графических процессоров. При создании CE вы всегда при необходимости сможете указать пользовательский AMI.

Начало работы

Вопрос. Как начать работу с сервисом?
Чтобы начать работу, ознакомьтесь с Руководством по началу работы в документации.

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

Подробнее о том, когда рекомендуется использовать AWS Batch

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