Используя сервис AWS Step Functions, вы платите только за то, что действительно используете. Для Step Functions предусмотрены два типа рабочих процессов: Standard Workflows и Express Workflows. Чтобы разобраться, какой из них подходит вам, ознакомьтесь с разделом Standard и Express Workflows.
Формирование цены на стандартные рабочие процессы для AWS Step Functions
Плата зависит от количества переходов между состояниями, необходимых для выполнения приложения.
Step Functions считает выполнение каждого шага рабочего процесса переходом между состояниями. Плата взимается за итоговое количество переходов между состояниями на всех конечных автоматах, включая повторы.
Уровень бесплатного пользования сервисом Step Functions включает 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 и обратно
Запросы и время выполнения
Инстансы по требованию, зарезервированные и спотовые инстансы
Типы запуска: Fargate или EC2
Примеры расчета стоимости AWS Step Functions
-
Пример 1
Стандартный рабочий процесс приложения AWS Step Functions с последовательностью шаговРабочий процесс приложения содержит четыре перехода между состояниями, обозначенные узлами на схеме:
- Начало работы
- Загрузка необработанных файлов
- Удаление необработанных файлов
- Конец
Цена за переход между состояниями в регионе Восток США (Северная Вирджиния) – 0,000025 USD, а уровень бесплатного пользования включает 4000 переходов между состояниями в месяц. Если при выполнении этого процесса 100 000 раз в течение месяца не возникало ошибок, расчет стоимости будет следующим.
Количество переходов между состояниями в рабочем процессе х количество выполнений рабочего процесса = общее количество переходов между состояниями
4 х 100 000 = 400 000
Общее количество переходов между состояниями – количество переходов между состояниями в рамках уровня бесплатного пользования = количество оплачиваемых переходов между состояниями
400 000 – 4000 = 396 000
Стоимость за месяц = 396 000 х 0,000025 USD = 9,90 USD
- Начало работы
-
Пример 2
Стандартный рабочий процесс приложения AWS Step Functions с разветвлениямиКонечный автомат, используемый в этом примере, можно найти на 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 -
Пример 3
AWS Step Functions Express WorkflowsВы можете рассчитать необходимый объем памяти для 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
-
Пример 4
AWS Step Functions Express WorkflowsВы можете рассчитать необходимый объем памяти для 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°USD0,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
-
Пример 5
Состояние сопоставления AWS Step FunctionsMap 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