AWS 応用コース

Step Functions で
処理全体を制御する

起動だけで終わらせず、分岐・並列・待機・失敗回復までを状態機械として見える形にします。

TL;DR
  1. 順序と結果追跡をworkflowに出す。
  2. 大量処理はMapで分割・並列化する。
  3. 一時失敗はRetry、回復不能はCatchで扱う。

01 ワークフローを状態機械に出す

Choice Map Parallel Wait Retryの状態機械
処理の判断・待機・並列・回復を状態として表す。
Schedulerは起動まで、Step Functionsは完了までを扱う。 後続タスクの成否や次の遷移をインフラ側で追跡できるため、運用時の調査起点も一つになります。

02 Map で大量処理を分割する

ECS taskを並列起動するMap
入力を小さな単位へ分け、独立したtaskとして並列実行する。

大量の対象を一つの長い処理に閉じ込めず、Mapで分割します。個々の失敗を追いやすくなり、並列度を設計パラメータとして扱えるようになります。

03 Retry/Catch で失敗を設計する

指数バックオフと通知のフロー
一時失敗は再試行し、尽きたら失敗フローへ明示的に遷移する。

一時的なDBメンテナンスやAWS側の失敗はRetryで吸収し、回数を超えたものだけCatchで通知・記録・代替処理へ回します。失敗時の挙動をアプリの偶然に任せません。

結論: workflowの状態遷移に順序と回復を出すことで、複雑な非同期処理を観測・改善できる形にします。