AWS Step Functionsとは?状態(State)の用語解説

最終更新日:2026年8月5日

AWS Step Functionsとは?

項目 AWS Microsoft Azure Google Cloud
世界シェア 約33%(首位) 約22% 約11%
強み サービス数・実績 Microsoft製品連携 データ分析・AI
無料枠 12ヶ月+常時無料 12ヶ月無料 常時無料枠あり
主な資格 CLF / SAA / SAP AZ-900 / AZ-104 ACE / PCA

【要注意】上記のシェア・料金・資格名は変動する場合があります
クラウド市場シェアや無料枠の内容は時期により変わるため、最新の情報は各社公式サイトでご確認ください。

そもそもStep Functionsとはどういう意味かというと、そのまま直訳すると「階段関数」という意味になります。それぞれの関数を繋げて実行すると捉えると良いかもしれませんね。

では、AWS Step Functionsとは・・・?

ビジュアルワークフローを使用してソフトウェアやシステムを調整するサービスのことです。それぞれが別々のシステムであってもAWS Step Functionsを用いることで、簡単にアプリケーションを接続し、調整ができるようになります。

AWS Step Functionsではワークフローのことをステートマシンと呼んでいます。AWSの公式サイトでステートマシンと記述があればワークフローのことだと認識していただくと良いでしょう。ここではわかりやすくするために「ワークフロー」で統一します。

AWS Step Functionsの概要

AWS Step FunctionsはAmazon States Language(以下、Amazon ステートメント言語)というワークフローを宣言するために必要な言語が使用されます。Amazon ステートメント言語はJSONをベースにした言語です。この言語はいくつかの状態を表すStateを定義する必要があります。

  • Task(ワークフロー内のすべての作業は、Taskにより処理される)
  • Choice(分岐ロジック、次に移行する状態の決定)
  • Wait(指定した時間、待機することができる)
  • Succeed(実行を正常に停止)
  • Fail(エラーによる実行の停止)
  • Parallel(並列処理が可能)
  • Map(動的並列処理が可能)

AWS Step Functionsには上記の状態(State)を定義できます。なお、State MachineにはStandardワークフローとExpressワークフローの2種類があります。Standardワークフローは実行履歴やビジュアルデバッグに優れ最長1年間実行可能、Expressワークフローはストリーミングデータ処理やIoTデータ取り込みなど高頻度イベントの処理に適しており最長5分間実行できます。用途に応じて使い分けます。

状態(State)の用語解説

Task

Taskは実行される単一の作業単位を表します。直接Lambda関数を呼び出すことができ、作業を実行します。また、Taskでは以下のフィールドを利用できます。

  • Resource (必須)
  • Parameters
  • ResultPath
  • Retry
  • Catch
  • TimeoutSeconds
  • HeartbeatSeconds

Choice

Choiceは分岐処理が可能で、AndやOrなどの比較演算子を利用できます。また、以下のフィールドを利用できます。

  • Choices (必須)
  • Default

Wait

Waitは指定した時間、待機することが可能で、相対時間と絶対時間のいずれかを選択できます。また、以下のフィールドを利用でき、いずれか1つを指定しなければなりません。

  • Seconds
  • Timestamp
  • SecondsPath
  • TimestampPath

Succeed

Succeedは実行を正常に停止させます。処理は終了している状態になるためEndフィールドやNextフィールドは不要です。

Fail

Failはエラーにより実行が停止します。処理が終了している状態になるためEndフィールドやNextフィールドは不要です。また、以下のフィールドが利用できます。

  • Cause
  • Error

Parallel

Parallelは並列処理が可能で、以下のフィールドを利用できます。

  • Branches (必須)
  • ResultPath
  • Retry
  • Catch

Map

Mapは動的な並列処理が可能です。入力配列の要素ごとに対して同じステップで実行できます。また、以下のフィールドが利用できます。

  • Iterator (必須)
  • ItemsPath
  • MaxConcurrency
  • ResultPath
  • Retry
  • Catch

Pass

Passはワークフローの構築、デバッグの際に使用します。入力の処理をせずに出力に渡します。また、以下のフィールドを利用できます。

  • Result
  • ResultPath
  • Parameters

状態(State)には上記の他に共通Stateフィールドと呼ばれるものもあります。

  • Type (必須)

    TaskやChoice、Waitなどの状態を定義する際に使用します。

  • Next

    現在の状態を終了し、次の状態に移動します。

  • End

    trueの場合、実行処理が終了します。

  • Comment

    人間が解読可能な説明を入力できます。

  • InputPath

    Taskに渡す入力パス

  • OutputPath

    出力に渡すパス

以上がAWS Step FunctionsのAmazonステートメント言語で使用する状態(State)の用語解説となります。より詳しい解説はAWS Step Functions開発者ガイドでご確認ください。

2020年以降に追加された新機能

ℹ️ アップデート情報:本記事の初出時点(2020年)以降、AWS Step Functionsには以下の重要な機能が追加されています。基本の8つの状態(State)タイプ(Task/Choice/Wait/Succeed/Fail/Parallel/Map/Pass)そのものは現在も変わっていませんが、Map状態と記述言語に大きな拡張がありました。

Distributed Map(分散Map、2022年〜)

Map状態には通常の「インラインモード」に加えて「Distributedモード(分散モード)」が追加されました。Distributedモードでは、各反復(イテレーション)を個別の子ワークフロー実行として並列に処理できます。それぞれの子ワークフロー実行は親ワークフローとは独立した実行履歴を持つため、以下のようなケースに向いています。

  • 処理対象のデータセットが256KiBを超える場合
  • ワークフローの実行イベント履歴が25,000件を超えてしまう場合
  • 40件を超える同時並列数が必要な場合

Amazon S3上の大規模なCSV・JSONデータを直接読み込んで並列処理する用途(大量ファイルの一括変換、ログ処理など)に活用できます。デフォルトでは最大10,000件の子ワークフロー実行を並列で起動できます。ただしDistributedモードはStandardワークフローでのみサポートされ、Expressワークフローでは利用できません。

JSONata対応(2024年〜)

従来Amazon States LanguageはJSONPath(InputPath/OutputPath/ResultPath等のフィールドで参照パスを指定する方式)のみに対応していましたが、より高機能なクエリ・変換言語である「JSONata」も選択できるようになりました。JSONataを使うと、ステート間のデータ変換や条件分岐の記述をより簡潔に書けるほか、ワークフロー内で変数(Variables)を宣言して保持することも可能になっています。既存のJSONPathベースの定義もそのまま利用可能で、両方式は併用ではなく状態ごとに選択する形です。

よくある質問(FAQ)

Q. StandardワークフローとExpressワークフローはどちらを使うべきですか?

長時間実行され、実行履歴を残して監査・デバッグしたいワークフロー(最長1年間、Exactly-once実行)にはStandardワークフローが適しています。一方、IoTデータの取り込みやストリーミングデータ処理のように高頻度・短時間(最長5分間、At-least-once実行)で大量に実行したい場合はExpressワークフローが向いています。料金体系も異なり、Standardは状態遷移数、Expressは実行回数と実行時間で課金されます。

Q. Map状態のDistributedモードは通常のMap状態と何が違うのですか?

通常のMap状態(インラインモード)は親ワークフローの実行履歴内で反復処理を行いますが、Distributedモードでは各反復が独立した子ワークフロー実行として動作します。そのため大規模なデータセット(Amazon S3上の大量ファイルなど)を高い同時実行数で処理する場合や、実行イベント履歴の上限(25,000件)を超える恐れがある場合に利用します。

Q. Step FunctionsからLambda関数を呼び出すにはどの状態を使いますか?

Task状態を使います。Resourceフィールドに呼び出したいLambda関数のARN(arn:aws:states:::lambda:invokeなど)を指定することで、Task状態が単一の作業単位としてLambda関数を実行します。

Q. Amazon States LanguageはJSONPathしか使えませんか?

2020年時点ではJSONPathのみでしたが、現在はJSONataというクエリ言語も選択できます。JSONataを使うとステート間のデータ変換をより柔軟に記述でき、ワークフロー内で変数を保持することも可能です。どちらを使うかは状態ごとに選択できます。

Q. Step Functionsの無料利用枠はありますか?

はい。Step Functionsには無料利用枠が用意されているため、小規模なワークフローであれば低コストで試験導入できます。具体的な無料枠の範囲や料金は変更される可能性があるため、最新の料金は必ずAWS公式の料金ページでご確認ください。

まとめ:AWS Step Functionsの状態(State)

この記事のポイント:

  • AWS Step Functionsはビジュアルワークフロー(ステートマシン)でアプリケーションのコンポーネントを調整するサービス
  • ワークフローはAmazon States Language(JSONベースの言語)で記述し、Task/Choice/Wait/Succeed/Fail/Parallel/Map/Passの8つの状態(State)を組み合わせて構築する
  • Standardワークフロー(長時間・監査向け)とExpressワークフロー(高頻度・短時間向け)を用途に応じて使い分ける
  • 2022年以降、Map状態には大規模並列処理向けの「Distributedモード」が追加されている
  • 2024年以降、記述言語としてJSONPathに加えてJSONataも選択可能になっている

AWS Step Functionsは視覚的でわかりやすいビジュアルワークフローによって簡単にアプリケーションなどのコンポーネントを調整できます。実行履歴を作成する機能もあるため、トラブルシューティングして素早い修正が可能です。また、スケーリングが自動で行われ、可用性が高いためメンテナンスコストが削減できます。無料の利用枠も付与されているので、試験的に導入しやすいのではないでしょうか。

▼ アクロビジョンについて

👔

一緒に働きましょう

一人ひとりのキャリアに向き合い、
活躍できる現場をご紹介します。

採用サイトを見る →
💻

システム開発のご依頼・ご相談

コンサルティングから運用保守まで、
ワンストップで対応します。

まずはお気軽にご相談ください →