ある金融サービス企業が、Step Functionsを使って与信審査ワークフローを実装している。各ステップは外部APIを呼び出し、ワークフロー全体の完了まで最大30分かかる場合がある。また、各ステップの実行状況は精細な監査ログとして記録する必要がある。最も適切なStep Functionsのワークフロータイプはどれか。
- A. Express WorkflowsをLambdaでネストして呼び出し、各ステップの結果をDynamoDBに記録する
- B. Express Workflows(同期モード)を使い、最大5分のタイムアウトを超えたら別のワークフローに引き継ぐ
- C. Express Workflows(非同期モード)を使い、CloudWatch Logsにすべての実行履歴を送信する
- D. Standard Workflowsを使い、Step Functions実行履歴APIとCloudWatch Logsを組み合わせて監査ログを取得する
解答と解説を見る
正解: D
Standard Workflowsは最大1年間の実行期間をサポートし(30分は問題なし)、各ステップの状態遷移履歴がStep Functions実行履歴として完全に保存される。このため精細な監査ログの要件に最適である。実行ごとの課金体系(ステート遷移単位)であり、長時間ワークフローに適している。CのExpress Workflows(非同期)は最大5分の実行制限があるため30分のワークフローを実行できない。さらに非同期モードでは実行結果を直接受け取れず、CloudWatch Logsの転送設定が必要になるが、監査目的には標準化された実行履歴APIが使えないデメリットがある。BのExpress Workflows(同期モード)も最大5分制限があり、30分ワークフローには使用できない。Aのネストと手動DynamoDB記録は追加コードと管理負荷が発生し、Step Functionsの組み込み機能を活かしていない。
📚 関連サービスの解説: AWS Step Functions ・ Amazon CloudWatch