サーバーレス

Step Functions すてっぷふんくしょんず

ワークフロー状態機械AWS Lambdaオーケストレーションサーバーレスステートマシン
Step Functionsについて教えて

簡単に言うとこんな感じ!

複数の処理を「順番に」「条件分岐しながら」自動でつなげてくれる司令塔だよ!「A終わったらBへ、失敗したらCへ」みたいな流れをフロー図みたいに組み立てられるAWSのサービスなんだ!


Step Functionsとは

AWS Step Functionsは、Amazonが提供するクラウドサービス(AWS)の一つで、複数の処理ステップを定義・実行・管理するワークフローオーケストレーションサービスです。たとえば「注文を受ける→在庫を確認する→決済する→配送指示を出す」といった一連の処理を、コードではなくフロー図(ステートマシン)として定義して自動実行できます。

各ステップにはAWS Lambda(小さな処理を実行するサーバーレス関数)や他のAWSサービスを組み合わせられ、ステップの成功・失敗・タイムアウトなどに応じて次の動作を柔軟に制御できます。処理が途中で失敗しても、どのステップで何が起きたかを視覚的に追跡できるため、障害の原因調査や再実行もしやすいのが特徴です。

ビジネス的に見ると、「複数のシステムをまたぐ複雑な業務フローを自動化したいけど、繋ぎ合わせの管理が大変」という課題を解決するサービスです。開発者が手動で「AのあとBを呼び出す」ロジックをコードに書く代わりに、Step Functionsがその流れを一元管理してくれます。


ステートマシンの仕組み

Step Functionsの中心概念はステートマシン(State Machine)=状態機械です。業務の各ステップを「状態(State)」として定義し、状態間の遷移ルールを設定します。

用語意味
ステートマシンワークフロー全体の設計図受注処理フロー全体
ステート(状態)個々の処理ステップ「在庫確認」「決済処理」
トランジション状態から状態への遷移在庫あり→決済へ進む
入力/出力各ステートに渡すデータ注文ID・金額など
実行(Execution)ステートマシンの1回の実行1件の注文処理

主なステートの種類

ステートタイプ役割
TaskLambda等を呼び出して処理を実行
Choice条件によって次のステートを分岐
Wait指定時間または外部イベントまで待機
Parallel複数のステートを同時並行で実行
Mapリストの各要素に同じ処理を繰り返す
Succeed / Fail正常終了・異常終了を明示

覚え方:「タスク・チョイス・ウェイト・パラレル・マップ」

た・ち・わ・ぱ・ま」=Task / Choice / Wait / Parallel / Map。「たちわぱま」と唱えてみよう!


歴史と背景

  • 2016年:AWS re:InventでStep Functionsが発表・リリース。Lambdaが普及する中で「複数のLambdaをどう連携させるか」問題が顕在化したことが背景
  • 2017年:AWS SDKとの統合が強化され、Lambda以外のAWSサービス(SNS、SQS等)も直接呼び出せるように
  • 2019年Express Workflows(高速・大量処理向けモード)が追加。従来のStandard Workflowsと使い分けが可能に
  • 2021年:200以上のAWSサービスをコードなしで呼び出せるSDK統合(最適化された統合)が大幅拡充
  • 2022年以降:ビジュアルデザイナー(Workflow Studio)が強化され、ノーコード・ローコードでのフロー設計が現実的に

Standard vs Express:2つのモードの違い

Step Functionsには用途に応じた2つの動作モードがあります。

Step Functions:2つのモード比較 Standard Workflows 標準ワークフロー 実行時間 最長 1年 実行履歴 完全に記録・追跡可能 向いている用途 受注・審査・人手承認フロー 料金体系 ステート遷移回数で課金 Express Workflows 高速ワークフロー 実行時間 最長 5分 実行履歴 CloudWatch Logsに記録 向いている用途 IoTデータ処理・大量バッチ 料金体系 実行時間・回数で課金

Step Functions を使う典型的なシナリオ

【ECサイト注文フロー例】

  [注文受付]

  [在庫確認] ──── 在庫なし ──→ [入荷待ち通知] → END
      ↓ 在庫あり
  [決済処理] ──── 失敗 ──────→ [エラー通知] → END
      ↓ 成功
  [配送指示]

  [完了通知] → END

このようなフローをStep Functionsで定義すると、各ステップの実行状況・エラー・所要時間をAWSコンソールでグラフィカルに確認できます。


関連する規格・RFC

規格・仕様内容
Amazon States Language (ASL)Step FunctionsのステートマシンをJSONで定義するための言語仕様
AWS SAM / CloudFormationStep FunctionsをIaC(コードでインフラ管理)として定義するためのテンプレート形式
OpenTelemetryStep Functionsの実行トレースを標準的な観測基盤に連携するための仕様

関連用語

  • AWS Lambda — 関数単位でコードを実行するサーバーレスコンピューティングサービス。Step Functionsの各ステートから呼び出す処理の主役
  • サーバーレス — サーバーの管理を意識せずアプリを構築・実行する設計思想
  • EventBridge — AWSのイベント駆動型サービス。特定のイベントをトリガーにStep Functionsを起動する際に組み合わせる
  • SQSメッセージキューサービス。非同期処理の待ち行列としてStep Functionsと連携
  • ワークフローエンジン — 業務プロセスの流れを自動制御するソフトウェアの総称。Step FunctionsはAWS版ワークフローエンジン