AWS Step Functions: Standard を選ぶのは「5 分超」か「完全な実行履歴が要る」ときだけ
高頻度で短い処理を Standard ワークフローにすると、状態遷移ごとの課金でコストが膨らむ。既定は Express で考え、条件に当てはまるときだけ Standard にする。
どんなときに使う?
- Step Functions で新しいワークフローを作るとき
- 毎秒のように呼ばれる短いワークフローの請求が想定より高いとき
やり方
次のどちらかに当てはまれば Standard、そうでなければ Express を選ぶ。
- 処理が 5 分を超える(Express の実行時間の上限は 5 分)
- 完全な実行履歴が要る(Standard は実行履歴を保持し、コンソールや API でさかのぼれる)
| Standard | Express | |
|---|---|---|
| 最大実行時間 | 長時間(最大 1 年) | 5 分 |
| 課金 | 状態遷移の回数 | リクエスト数と実行時間・メモリ |
| 向いている処理 | 長い業務フロー、人の承認待ち、監査が必要な処理 | イベント処理・API 裏の短い処理など高頻度のもの |
実行の保証も違う(Standard は exactly-once、Express は at-least-once など)。冪等でない処理を Express に載せるなら、重複実行に耐えられるようにしておく。
注意点
- Express の実行ログは CloudWatch Logs に出す設定にしないと追えない
- タイプは作成後に変えられない。迷うなら、どちらの条件に当てはまるかを先に確認する
- 投稿は書籍の要点紹介。上限値・課金の詳細は最新の AWS ドキュメントで確認する