目次
1. 結論
AWS Step Functionsは、「マイクロサービスの指揮者(オーケストレーター)」です。個々のLambda関数やその他のサービス(SQS, Batchなど)をバラバラに呼び出すのではなく、一つの大きな「業務フロー(ワークフロー)」として定義・管理します。処理の失敗時のリトライや条件分岐をコードではなくAWSの機能として実装できるのが最大の強みです。
2. SAAで出やすいポイント
- 状態管理 (State Management): どこまで処理が終わったか、前の処理の結果が何だったかをStep Functionsが覚えている。
- エラーハンドリング: 「失敗したら3回リトライする」「それでもダメなら別のLambdaを動かす」といったロジックをGUI/JSON(ASL)で定義可能。
- 長時間実行: Lambdaの制限(15分)を超えて、数日間〜1年間続くような長いフローも管理できる。
- 人間による承認: 途中で「管理者の承認ボタン」を待つようなワークフローも構築可能。
- 並列処理 (Parallel/Map): 複数の処理を同時に走らせ、全て終わるのを待ってから次に進む制御が得意。
3. キーワードでの判断
| 問題文のキーワード | 疑うべきサービス/機能 | 判断理由 |
|---|---|---|
| 「複雑なワークフローを管理」 | Step Functions | 順序や条件分岐の制御が必要 |
| 「Lambdaの15分制限を超えたい」 | Step Functions | ワークフロー全体での時間管理 |
| 「失敗時のリトライロジックを外だし」 | エラーハンドリング機能 | コード内にリトライを書くのを避ける |
4. ひっかけポイント
- SQSとの違い:
- SQSは「メッセージを溜める(疎結合)」ためのもの。
- Step Functionsは「処理の順序(ロジック)を管理する」ためのもの。
- SQSは後続がいつ処理するか関知しないが、Step Functionsは後続の結果を見て次に進む。
- EventBridgeとの違い: EventBridgeは「イベントに反応して単発で動く」、Step Functionsは「一連のステップを管理する」。
5. 覚え方
- 「オーケストラの指揮者」。
- バイオリン(Lambda A)が弾き終わったら、チェロ(Lambda B)に合図を出し、もし誰かが間違えたら(エラー)演奏をやり直させる。
6. 関連サービス
| サービス名 | 関連する理由 |
|---|---|
| Lambda | ワークフロー内の各「ステップ」で実際の処理を行うメイン部品。 |
| AWS Batch | 重い処理をコンテナで行い、その完了をStep Functionsで待つ構成。 |
| SNS | ワークフローの結果をメールなどで通知するために利用される。 |
7. Obsidian管理メモ
- 復習ポイント: 「標準ワークフロー」と「高速ワークフロー(Express Workflows)」の違い(実行時間とコストの関係)を聞かれる可能性あり。
- 関連ノート: マイクロサービス間の連携パターン
8. HTMLファイル名
aws-step-functions-orchestration.html