Формирование цены на стандартные рабочие процессы для AWS Step Functions

Плата зависит от количества переходов между состояниями, необходимых для выполнения приложения.

Step Functions считает выполнение каждого шага рабочего процесса переходом между состояниями. Плата взимается за итоговое количество переходов между состояниями на всех конечных автоматах, включая повторы.

Уровень бесплатного пользования сервисом Step Functions включает 4000 бесплатных переходов между состояниями в месяц. Расходы оцениваются ежедневно, а счет выставляется по итогам месяца.

Уровень бесплатного пользования

4000 переходов между состояниями
в месяц

Уровень бесплатного пользования сервисом Step Functions не прекращает свое действие по истечении срока действия уровня бесплатного пользования AWS, равного 12 месяцам, и остается доступным как для существующих, так и для новых клиентов AWS бессрочно.

Переходы между состояниями

При работе с AWS Step Functions оплачивается количество использованных за месяц переходов между состояниями. Оплате подлежат переходы между состояниями сверх количества, включенного в уровень бесплатного пользования. Подробнее см. в таблице цен на переходы между состояниями. _

Если на каком‑то шаге рабочего процесса используется обработка ошибок с повторным выполнением, за каждое повторное выполнение будет начисляться плата как за дополнительный переход между состояниями. 

Цены на переходы между состояниями рабочих процессов Standard для AWS Step Functions

Формирование цены на AWS Step Functions Express Workflows

При использовании сервиса Step Functions Express Workflows вы платите только за то, что реально используете. Счет выставляется на основе количества запросов, направленных к рабочим процессам, и продолжительности их обработки.

Сервис Step Functions Express Workflows увеличивает счетчик запросов при каждом запуске рабочего процесса, а стоимость зависит от суммарного количества запросов, направленных ко всем рабочим процессам. Сюда входят также тесты, выполняемые из консоли.

Продолжительность рассчитывается с момента запуска рабочего процесса и до его завершения либо прерывания, с округлением до 100 мс, а объем использованной при выполнении рабочего процесса памяти округляется до фрагментов по 64 МБ.

Потребление памяти зависит от размера и определения рабочего процесса, использования элементов кода состояния Map или Parallel, а также от объема данных (полезной нагрузки). В примерах 3 и 4 приведена схема расчета цены для использования памяти. 

Дополнительная плата

Если в рабочем процессе приложения используются другие сервисы AWS или осуществляется передача данных, может начисляться дополнительная плата. Например, если приложение вызывает функцию AWS Lambda, будет начисляться плата за каждый вызов функции и время ее выполнения. Для вызова конечных точек в частных сетях, например в Amazon Virtual Private Cloud (VPC), Step Functions интегрируется с AWS PrivateLink и Amazon VPC Lattice. При вызове частных конечных точек с помощью AWS PrivateLink и Amazon VPC Lattice плата за передачу данных будет взиматься по стандартным тарифам AWS PrivateLink и Amazon VPC Lattice. Подробные сведения о ценах на сервисы AWS см. в разделе цен на странице соответствующего сервиса AWS. Далее приведены ссылки на цены некоторых распространенных сервисов.

Передача данных

Внешняя передача данных в Amazon EC2 и обратно

Цены на AWS Lambda

Запросы и время выполнения

Цены на Amazon EC2

Инстансы по требованию, зарезервированные и спотовые инстансы

Цены на Amazon ECS

Типы запуска: Fargate или EC2

Примеры расчета стоимости AWS Step Functions

  • Рабочий процесс приложения содержит четыре перехода между состояниями, обозначенные узлами на схеме:

    1. Начало работы
    2. Загрузка необработанных файлов
    3. Удаление необработанных файлов
    4. Конец 

    Цена за переход между состояниями в регионе Восток США (Северная Вирджиния) – 0,000025 USD, а уровень бесплатного пользования включает 4000 переходов между состояниями в месяц. Если при выполнении этого процесса 100 000 раз в течение месяца не возникало ошибок, расчет стоимости будет следующим.

    Количество переходов между состояниями в рабочем процессе х количество выполнений рабочего процесса = общее количество переходов между состояниями

    4 х 100 000 = 400 000

    Общее количество переходов между состояниями – количество переходов между состояниями в рамках уровня бесплатного пользования = количество оплачиваемых переходов между состояниями

    400 000 – 4000 = 396 000

    Стоимость за месяц = 396 000 х 0,000025 USD = 9,90 USD

  • Конечный автомат, используемый в этом примере, можно найти на GitHub.

    Рабочий процесс приложения с разветвлениями имеет несколько путей. В этом примере есть 10 дуг (стрелок), соединяющих различные шаги. При нормальном сценарии на пути от «Start» (Начало) до «End» (Конец) происходит девять переходов между состояниями, обозначенных узлами на схеме. На пути от «Start» (Начало) до «NotSupportedImageType» (Неподдерживаемый тип изображения) происходит три или четыре перехода между состояниями. Если в какое-либо состояние включена обработка ошибок с повторным выполнением, может начисляться плата за дополнительные переходы между состояниями.

    Цена за переход между состояниями в регионе Восток США (Северная Вирджиния) – 0,000025 USD, а уровень бесплатного пользования включает 4000 переходов между состояниями в месяц. Если этот рабочий процесс приложения выполнялся 100 000 раз в течение одного месяца и переходы состояний происходили каждый раз по нормальному сценарию без каких‑либо повторов из‑за ошибок, плата будет начислена следующим образом.

    Количество переходов между состояниями при каждом выполнении процесса х количество раз выполнения рабочего процесса = общее количество переходов между состояниями

    9 х 100 000 = 900 000

    Общее количество переходов между состояниями – количество переходов между состояниями в рамках уровня бесплатного пользования = количество оплачиваемых переходов между состояниями

    900 000 – 4000 = 896 000

    Стоимость за месяц = 896 000 х 0,000025 USD = 22,40 USD

    Итоговая стоимость выполнения пяти функций AWS Lambda в этом примере составит 97,62 USD. При обработке изображения в формате JPEG размером 4,7 МБ по нормальному сценарию выполнение функций Lambda использует следующий объем памяти и займет следующее время.

    Функция Память (МБ) Время выполнения (мс)
    ExtractImageMetadata 1024 3200
    TransformMetadata 256 100
    Rekognition 256 1200
    Thumbnail 1536 1500
    StoreImageMetadata 256 300
  • Вы можете рассчитать необходимый объем памяти для AWS Step Functions Express Workflows с помощью данных об определении конечного автомата, выполнении объема данных (полезная нагрузка) и использовании элементов кода состояния Map или Parallel.

    Используемый объем памяти для рабочего процесса = 50 МБ + объем определяемого конечного автомата + объем выполняемых данных × количество шагов с элементами кода состояния Map или Parallel

    Пример:

    Схема расчета цены для рабочего процесса с объемом определяемого конечного автомата в 10 КБ без использования элементов кода состояния Map или Parallel

    Используемая память для рабочего процесса = 50 МБ + 10 КБ
    Используемая память для рабочего процесса = 50,01 МБ
    Оплаченная память (по блокам размером 64 МБ) = 64 МБ

    Метрики CloudWatch содержат информацию о потреблении памяти в ExpressExecutionMemory и данные об оплате в ExpressExecutionBilledMemory. Вы можете просмотреть такие метрики, как Executions Started, Execution Duration, Billed Duration и Billed Memory для каждого процесса в консоли AWS Step Functions, открыв на вкладке «Мониторинг» раздел «Step Functions» > «Конечные автоматы» > [Имя конечного автомата].

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

    Ежемесячная плата за запросы

    Цена составляет 1,00 USD за миллион запросов
    Ежемесячная плата за запросы = 1 млн запросов x 1,00 USD = 1,00 USD

    Ежемесячная плата за длительность

    Плата составляет 0,00001667 USD за 1 ГБ/с длительности
    1 млн рабочих процессов x 30 секунд длительности = 30 000 000 секунд
    30 000 000 x 64 МБ (оплаченная память) /1024 МБ = 1 875 000 ГБ/с
    Ежемесячная плата за длительность = 1 875 000 ГБ/с x 0,00001667 USD = 31,26 USD

    Общая стоимость за месяц

    Общая стоимость за месяц = плата за запросы + плата за длительность
    Общая стоимость за месяц = 1,00 USD + 31,26 USD = 32,26 USD
  • Вы можете рассчитать необходимый объем памяти для AWS Step Functions Express Workflows с помощью данных об определении конечного автомата, выполнении объема данных (полезная нагрузка) и использовании элементов кода состояния Map или Parallel.

    Используемый объем памяти для рабочего процесса = 50 МБ + объем определяемого конечного автомата + объем выполняемых данных × количество шагов с элементами кода состояния Map или Parallel

    Схема расчета цены для рабочего процесса с объемом определяемого конечного автомата в 50 КБ, с 400 шагами с элементами кода состояния Map и полезной нагрузкой в 32 КБ для каждого шага

    Используемая память для рабочего процесса = 50 МБ + 50 КБ + (32 КБ x 400 шагов)
    Используемая память для рабочего процесса = 50 МБ + 50 КБ + 12 800 КБ
    Используемая память для рабочего процесса = 62,85 МБ
    Оплаченная память (по блокам размером 64 МБ) = 64 МБ

    Метрики CloudWatch содержат информацию о потреблении памяти в ExpressExecutionMemory и данные об оплате в ExpressExecutionBilledMemory. Вы можете просмотреть такие метрики, как Executions Started, Execution Duration, Billed Duration и Billed Memory для каждого процесса в консоли AWS Step Functions, открыв на вкладке «Мониторинг» раздел «Step Functions» > «Конечные автоматы» > [Имя конечного автомата].

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

    Ежемесячная плата за запросы

    Цена составляет 1,00 USD за миллион запросов
    Ежемесячная плата за запросы = 100 млн запросов x 1,00 USD = 100,00 USD

    Ежемесячная плата за длительность

    100 млн рабочих процессов x 10 секунд длительности = 1 000 000 000 секунд
    1 000 000 000 x 64 МБ (оплаченная память) /1024 МБ = 62 500 000 ГБ/с
    62 500 000 ГБ/с / 60 / 60 = 17 361,11 ГБ/час
    0,06000°USD за 1 ГБ/час x 1000 ГБ/час = 60,00°USD
    0,03000°USD за 1 ГБ-час x 4000 ГБ-часов = 120,00°USD
    0,01642°USD за 1 ГБ-час x 12 361,11 ГБ-часа = 202,97°USD

    Ежемесячная плата за длительность = 60,00°USD + 120,00°USD + 202,97°USD = 382,97

    Общая стоимость за месяц

    Общая стоимость за месяц = плата за запросы + плата за длительность
    Общая стоимость за месяц = 100,00 USD + 382,97 USD = 482,97 USD

  • Map State можно использовать для итераций и обработки больших наборов данных. Этот пример содержит этапы предварительной и последующей обработки и выполняет итерации для 1 млн. объектов из корзины Простого сервиса хранения данных Amazon (S3). 

    Map State работает в двух режимах: Inline и Distributed. В этом примере используется Map State в режиме Distributed для достижения высокого параллелизма, а Distributed Map обходится одним переходом состояния за итерацию. Кроме того, в режиме Distributed Map можно указать тип выполнения для рабочего процесса обработки данных. В данном примере используется тип выполнения Express. Рабочий процесс Express в рамках Distributed Map использует менее 64 МБ памяти, а средняя продолжительность выполнения составляет 30 секунд. 

    Одно выполнение этого рабочего процесса предусматривает 1 000 005 переходов между состояниями, 1 000 000 запросов Express и длительность 520,33 ГБ-часа:

    • 1 переход в состояние начала выполнения
    • 1 переход в состояние предварительной обработки
    • 1 переход в состояние Map
    • 1 000 000 переходов в состояние итерации Start Map
      • Обратите внимание: при использовании Inline Map нет перехода состояния для начала каждой итерации. См. документацию о том, когда использовать Map в режиме Inline или Distributed.
      • Обратите внимание: при использовании состояния Distributed Map вы можете сократить количество итераций за счет пакетной обработки рабочей нагрузки. См. документацию по оптимизации с помощью пакетной обработки.
    • 1 000 000 запросов Express
    • 520,83 ГБ/час – длительность запроса Express
      • 1 млн итераций x 30 секунд длительности = 30 000 000 секунд
      • 30 000 000 x 64 МБ (оплаченная память) / 1024 МБ = 1 875 000 ГБ/с
      • 1 875 000 ГБ/с / 60 / 60 = 520,83 ГБ/час
    • 1 переход в состояние после обработки
    • 1 переход в состояние окончания выполнения

    Плата за переходы между состояниями

    Цена перехода одного штата в регионе Восток США (Северная Вирджиния) составляет 0,000025 USD. Уровень бесплатного пользования предоставляет 4000 бесплатных переходов между состояниями в месяц.

    Общее количество переходов между состояниями – количество переходов между состояниями в рамках уровня бесплатного пользования = количество оплачиваемых переходов между состояниями

    1 000 005 – 4000 = 996,005

    Плата за переходы между состояниям = 996,005 * 0,000025 USD = 24,90 USD

    Плата за запросы Express
    Цена за миллион запросов в регионе Восток США (Северная Вирджиния) составляет 1,00 USD.
    Плата за запросы = 1 млн. запросов x 1,00 USD = 1,00 USD

    Плата за длительность запросов Express
    Цена за первые 1000 ГБ/час в регионе Восток США (Северная Вирджиния) составляет 0,0600 USD.

    Плата за длительность = 520,83 ГБ/час x 0,0600 USD = 31,25 USD

    Общая стоимость

    Общая стоимость = 24,90 USD + 1,00 USD + 31,25 USD = 57,15 USD

Начало работы с AWS Step Functions

Перейти на страницу начала работы
Готовы начать?
Войти в консоль AWS Step Functions
Есть вопросы?
Свяжитесь с нами