AWS Step Functions
ワークフロー制御
複数ステップのワークフロー(Lambda の呼び出し、待機、分岐、再試行、並列実行)を、視覚的な図を持つステートマシンとして記述します。
- コスト$ 安い
- 難易度●●●●●
- 未使用でも課金?いいえ
- サーバーレス
- 出題試験SAA · DVA · SOA
たとえるならチェックリストを持った現場監督のようなものです。1 つのステップが終わってから次を割り当て、失敗したらやり直させます。
Step Functions はシステムのどこにある?
具体例でステップごとに
- 注文処理には在庫確認、カード決済、メール送信の手順があり、どこかで失敗したらそれまでの処理を取り消す必要があります。
- Step Functions でワークフローを描き、各ステップで Lambda や AWS サービスを直接呼び出します。
- 決済でネットワークエラーが起きたら、間隔を広げながら 3 回再試行し、それでも失敗したら返金のステップに進みます。
- 高額な注文はマネージャーの承認が必要で、誰かが承認ボタンを押すまで、数日でもワークフローが待機します。
- 実行のたびに、どのステップを通り、どこで失敗したかが図で表示されるので、デバッグがずっと速くなります。
いつ使う?
✓ 使うべき場面
複数ステップのワークフロー: 注文処理、データパイプライン、人の承認待ちステップがあるもの。
✗ 避けるべき場面
単純な 1 ステップだけ → Lambda を直接呼び出す。
よくある使い方
- 再試行を伴う複数ステップの注文ワークフロー
- データ/ML 処理パイプライン
- 人の承認待ちステップがあるワークフロー
- ネストした呼び出しの代わりに複数の Lambda をオーケストレーション
Step Functions・Lambda・EventBridge の違い
| 役割 | 複数のステップをオーケストレーション | 1 つのコードを実行 | イベントのルーティング |
|---|---|---|---|
| 実行時間 | 最大 1 年(標準) | 最大 15 分 | 該当なし |
| エラー処理 | Retry、Catch、分岐が組み込み | コードで自分で書く | 配信の再試行、デッドレターキュー |
| 向いている用途 | 複数ステップの処理、承認待ち | 1 つの短い処理 | イベントへの対応 |
料金はいくら?
- 課金方式: Standard: 約 $0.025/1,000 回の状態遷移。Express: 実行回数(約 $1/100 万)+ 時間とメモリ。
- 無料枠: Always Free(Standard): 4,000 回の状態遷移/月。
非常に高頻度のフローに Standard を使う(Express の方がずっと安い)。ステップ数が多すぎる Map ループ。
再試行、分岐、人による承認を伴う複数の Lambda のオーケストレーションなら Step Functions です。S3 の何千ものファイルを並列処理するなら分散モードの Map ステート、1 回だけ確実に実行する長い処理なら標準、大量で短い処理なら Express です。
本番の試験問題に挑戦
1A company recently migrated to the AWS Cloud. The company wants a serverless solution for large-scale parallel on-demand processing of a semistructured dataset. The data consists of logs, media files, sales transactions, and IoT sensor data that is stored in Amazon S3. The company wants the solution to process thousands of items in the dataset in parallel. Which solution will meet these requirements with the MOST operational efficiency?
- AUse the AWS Step Functions Map state in Inline mode to process the data in parallel.
- BUse the AWS Step Functions Map state in Distributed mode to process the data in parallel.
- CUse AWS Glue to process the data in parallel.
- DUse several AWS Lambda functions to process the data in parallel.
答えを見る
正解: B
Step Functions の分散モードの Map ステートは、S3 のデータを直接読みながら数千の子ワークフローを並列に実行します。インラインモードでは並列数がずっと少なく制限されます。
よくある質問
標準ワークフローと Express ワークフローの違いは何ですか?
標準ワークフローは最大 1 年間実行でき、各ステップを正確に 1 回だけ実行し、詳細な履歴が残るため、承認などの長いプロセスに向いています。Express ワークフローは最大 5 分で非常に高いスループットを持ち、実行回数と実行時間で課金されるため、大量のイベント処理に向いています。
Step Functions の料金はどのように決まりますか?
標準ワークフローは状態遷移の回数で課金されます。Express ワークフローは実行回数、実行時間、メモリで課金されます。小さなステップを何度も繰り返すワークフローでは Express を検討しましょう。
AWS 認定試験では Step Functions について何が問われますか?
複数の Lambda や AWS サービスのオーケストレーション、エラー処理のための Retry と Catch、人による承認待ち(コールバック)、標準と Express の選択、中間の Lambda を使わずに AWS サービスを直接呼び出すことなどです。