DVA-C02:AWS Certified Developer - Associate AWS サービスを用いた開発 問1
AWS サービスを用いた開発/AWS でホストされるアプリのコード開発複数のマイクロサービスが、注文作成などの特定のイベントに応じて疎結合に反応する、ルールベースのイベント駆動アーキテクチャを構築したいと考えています。最も適切なのはどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「AWS サービスを用いた開発」に対応。実際の試験問題ではありません)
- AAmazon EventBridge のイベントバスとルールを使い、イベントを条件に応じて複数のターゲットへ配信するイベント駆動アーキテクチャにする
- B各サービスが互いを同期的に直接呼び出す密結合な構成にする
- Cすべてのロジックを 1 つのモノリスにまとめて処理する
- D各サービスがデータベースを定期的にポーリングして変化を探す
正解:A
解説
Amazon EventBridge は、イベントバスに届いたイベントをルールで評価し、条件に一致したものを複数のターゲット(Lambda、SQS、Step Functions など)へ配信するサーバーレスのイベントルーターです。発行側と受信側が互いを直接知らなくてよいため、疎結合なイベント駆動アーキテクチャをルールベースで構築できます。
選択肢ごとの解説
- A正しい。EventBridge のイベントバスとルールにより、イベントを条件に応じて複数ターゲットへ配信する疎結合なイベント駆動設計を実現できます。
- B誤り。同期的な直接呼び出しは密結合になり、イベント駆動・疎結合の要件に反します。
- C誤り。モノリスにまとめるのは、独立したマイクロサービスがイベントに反応するという要件に反します。
- D誤り。DB のポーリングは遅延と無駄が大きく、イベント駆動のルールベース配信にはなりません。