その他サービス ・
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
| 観点 | Standard | Express |
|---|---|---|
| 最大実行時間 | 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 | 中 | 運用・モニタリング |