ある広告テクノロジー企業が、リアルタイム入札システムをStep Functionsで実装している。数百万の入札リクエストが1日に処理され、各ワークフローは10秒以内に完了する。Standard Workflowsを使っているが、コストが想定を大幅に超過している。パフォーマンスを維持しながらコストを最適化するための最も適切な変更はどれか。
- A. Step FunctionsをLambdaの逐次呼び出し(chain)に置き換え、ステート管理をDynamoDBで行う
- B. Standard WorkflowsをExpress Workflows(非同期モード)に移行する。実行履歴はCloudWatch Logsに転送し、ログインサイトで監視する
- C. Standard WorkflowsのExpressMode設定を有効化してコストを削減する
- D. Step FunctionsのParallelステートを使い、複数の入札処理を1つのワークフローにまとめることで実行数を削減する
解答と解説を見る
正解: B
Express Workflowsは高頻度・短時間のワークフローに最適化されており、Standard Workflowsと比較して大幅にコストが低い(実行時間×メモリ課金で、Standard Workflowsの状態遷移ごとの課金より安価)。非同期モードは最大5分間(300秒)実行でき、10秒以内完了の要件には十分対応する。実行履歴はCloudWatch Logsに転送することで監視は維持できる。CのStandard WorkflowsにExpressModeという設定は存在しない。Standard WorkflowsとExpress Workflowsは別のワークフロータイプであり、設定で切り替えはできない。Dの複数入札を1ワークフローにまとめる方法は設計の大改修が必要で、入札の独立性(タイムアウト・失敗の独立制御)が失われる。Aのステップ管理をDynamoDBに移行する方法はStep Functionsの利点(ビジュアルモニタリング・エラーハンドリング・リトライ設定)を失い、再実装コストと運用コストが高い。
📚 関連サービスの解説: Amazon CloudWatch