その他サービス

AWS Step Functions 完全ガイド|サーバーレスワークフロー設計

AWS Step Functions は 複数の Lambda / ECS / API などを順序立てて実行するワークフローサービス。Amazon States Language(JSON)で状態遷移を定義し、エラーハンドリング・リトライ・並列実行・ヒューマンインザループ ...

複数の AWS サービスをワークフローでオーケストレーションするサーバーレスサービス。状態遷移を JSON で定義。


1. 概要(端的に)

AWS Step Functions は 複数の Lambda / ECS / API などを順序立てて実行するワークフローサービスAmazon States Language(JSON)で状態遷移を定義し、エラーハンドリング・リトライ・並列実行・ヒューマンインザループ などが宣言的に書ける。


2. 何ができるか

  • ワークフロー定義:JSON / Amazon States Language
  • 2 種のワークフロー:Standard(最大 1 年・履歴保持)/ Express(最大 5 分・大量実行)
  • 多数の AWS 統合:200+ サービス・10,000+ API
  • エラーハンドリング:自動リトライ・キャッチ
  • 並列実行:Parallel / Map ステート
  • 可視化:実行履歴のフローチャート表示
  • ヒューマンインザループ:承認待ち

3. 特徴

観点特徴
追加料金Standard:状態遷移 $0.025/1,000 / Express:実行時間
状態タイプTask / Pass / Choice / Wait / Parallel / Map / Succeed / Fail
可視化実行のステップを図で確認
デバッグ各ステップの入出力を保持

Standard vs Express

観点StandardExpress
最大実行時間1 年5 分
課金状態遷移ベース実行時間ベース
履歴90 日保持短期
スループット標準100,000 件/秒
用途長時間業務高頻度短時間

4. 仕組み

Step Functions は 「ステートマシン」 という単位でワークフローを管理する。

主要ステート

  • Task:1 つのタスク実行(Lambda 等)
  • Pass:パススルー
  • Choice:条件分岐
  • Wait:待機
  • Parallel:並列実行
  • Map:配列要素ごと実行
  • Succeed / Fail:終端

JSON 例

{
  "StartAt": "ProcessOrder",
  "States": {
    "ProcessOrder": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:...:ProcessOrderFunction",
      "Next": "CheckResult"
    },
    "CheckResult": {
      "Type": "Choice",
      "Choices": [{
        "Variable": "$.status",
        "StringEquals": "success",
        "Next": "SendEmail"
      }],
      "Default": "HandleError"
    },
    "SendEmail": {"Type": "Task", "Resource": "...", "End": true},
    "HandleError": {"Type": "Fail"}
  }
}

5. ユースケース

ユースケース 1:注文処理ワークフロー

注文受付 → 在庫確認 → 決済 → 発送指示 を順次実行。

ユースケース 2:ETL パイプライン

データ取得 → 変換 → ロード を制御。

ユースケース 3:機械学習パイプライン

前処理 → 学習 → 評価 → デプロイ。

ユースケース 4:マイクロサービスオーケストレーション

複数サービスを連携させる長時間業務。

ユースケース 5:承認フロー

処理 → ヒューマン承認待ち → 続行。


6. 関連用語


7. 関連サイト

AWS 公式


🎓 試験での出題傾向

試験重要度主な出題パターン
CLFワークフローの概念
SAAサーバーレスオーケストレーション設計
DVAワークフロー実装(頻出
SOA運用・モニタリング