🏗️ 設計パターン:Step Functionsの使いどころ

目次

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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次