DVA-C02:AWS Certified Developer - Associate AWS サービスを用いた開発 問9
AWS サービスを用いた開発/AWS でホストされるアプリのコード開発複数の Lambda 関数を順序立てて実行し、各ステップの成功・失敗に応じた分岐・リトライ・エラー処理を含むワークフローを、アプリ側で状態管理のコードを書かずに構築したいと考えています。最も適切なのはどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「AWS サービスを用いた開発」に対応。実際の試験問題ではありません)
- AAWS Step Functions のステートマシンでワークフローをオーケストレーションし、分岐・リトライ・エラー処理を宣言的に管理する
- B1 つの Lambda 関数に全ステップを詰め込み、状態管理を自前で実装する
- C各 Lambda が cron で順番を期待して個別に起動する
- D担当者が各ステップを手作業で順番に実行する
正解:A
解説
AWS Step Functions は、複数の処理(Lambda など)をステートマシンとしてオーケストレーションするサービスです。ステップの順序、条件分岐、リトライ、キャッチ(エラー処理)を宣言的に定義でき、アプリ側で状態管理のコードを書かずに、信頼性の高いワークフローを構築できます。
選択肢ごとの解説
- A正しい。Step Functions のステートマシンなら、分岐・リトライ・エラー処理を宣言的に定義してワークフローをオーケストレーションできます。
- B誤り。1 つの関数に全ステップを詰め込んで自前で状態管理すると、複雑になり再利用性・可観測性も損なわれます。
- C誤り。cron での順番依存は、ステップ間の成否連携やリトライ・分岐を適切に扱えません。
- D誤り。手作業での順次実行は自動化・信頼性の要件に反します。