Q59 — AWS SAA-C03 第12章

第 59/100 問 | ← 第12章

Q859. ある企業が、イベント駆動型の注文処理システムを設計しています。各注文は、作成後に複数の検証ステップを必要とします。各検証ステップは、冪等性を持つAWS Lambda関数によって実行されます。各検証ステップは他の検証ステップから独立しており、個々の検証ステップでは注文イベント情報の一部(サブセット)のみが必要です。企業は、各検証ステップ用Lambda関数が、その関数に必要な注文イベント情報のみにアクセスできるようにすることを望んでいます。また、将来的なビジネス変更にも対応できるよう、注文処理システムのコンポーネント間は疎結合(ローズリーコープルド)である必要があります。これらの要件を満たすソリューションはどれですか?

正解: C. Amazon EventBridge イベントバスを作成します。各検証ステップごとにイベントルールを作成し、入力トランスフォーマー(input transformer)を設定して、各ターゲットの検証ステップ用Lambda関数に必要なデータのみを送信するように構成します。

解説

イベント駆動型の注文処理システムを設計し、コンポーネント間の疎結合性を確保するとともに、各検証ステップ用Lambda関数が注文イベントから必要な情報のみを受け取れるようにするには、以下の選択肢Cが最も適しています。選択肢Cでは、Amazon EventBridgeイベントバスを活用し、各検証ステップごとに専用のイベントルールを定義します。さらに、入力トランスフォーマー(input transformer)を活用することで、各ターゲットLambda関数に送信されるデータを厳密に制御・変換できます。これにより、各検証ステップが実際に必要な注文イベントの一部(サブセット)のみを受け取り、不要なデータへのアクセスを防ぐことができます。EventBridgeは、イベントのルーティング、フィルタリング、変換を柔軟かつスケーラブルに実現でき、複数のイベントソースやターゲットとの統合も容易です。そのため、今後のビジネス要件の変化にも柔軟に対応可能な疎結合アーキテクチャを実現できます。一方、選択肢Aは、各ステップごとにSQSキューと変換Lambda関数を用意するため、インフラストラクチャの複雑さと管理コストが増加します。選択肢BのAmazon SNSは、パブサブ型の配信には優れていますが、メッセージ本文の細かいフィルタリングやデータ変換の柔軟性に限界があり、本ユースケースのような精密なデータ制御には不十分です。選択肢Dは、変換Lambda関数による同期呼び出しと並列スレッド管理を導入するため、処理が密結合化し、イベント駆動型システムの非同期性・耐障害性といったメリットを損なう可能性があります。したがって、疎結合性、必要なデータのみの提供、将来の拡張性という観点から、選択肢Cが最適なソリューションです。