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年以降に追加された新機能
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は視覚的でわかりやすいビジュアルワークフローによって簡単にアプリケーションなどのコンポーネントを調整できます。実行履歴を作成する機能もあるため、トラブルシューティングして素早い修正が可能です。また、スケーリングが自動で行われ、可用性が高いためメンテナンスコストが削減できます。無料の利用枠も付与されているので、試験的に導入しやすいのではないでしょうか。
関連記事
- AWS Step Functionsの使い方について — 本記事で解説した状態(State)を使ってどのようにワークフローを組み立てるか、使い方の観点で解説
- サーバーレスコンピューティング初心者のためのAmazon Web Servicesと「AWS Lambda」入門知識 — Step FunctionsのTask状態から呼び出すことの多いAWS Lambdaの入門解説
- Amazon EventBridgeとは? — Step Functionsと組み合わせてイベント駆動型のワークフローを構築する際に使うサービス
- 【AWS】Amazon Simple Queue Service(SQS)について解説します。 — Step Functionsのワークフローと連携できるメッセージキューサービス
▼ アクロビジョンについて


