過去問ドリル

AZ-305:Designing Microsoft Azure Infrastructure Solutions インフラストラクチャソリューションの設計 問3

インフラストラクチャソリューションの設計/アプリケーションアーキテクチャの設計

ある EC サイトでは、注文メッセージを受け取って在庫引当・決済・出荷指示を行うバックエンド処理を設計しています。同一顧客の注文は到着順に処理する必要があり、同じ注文の二重送信は取り除きたく、処理に繰り返し失敗したメッセージは後で調査できるよう別の場所に隔離する必要があります。メッセージのスループットは中程度です。メッセージング基盤として適切なものはどれですか。

当サイトのオリジナル問題(AZ-305:Designing Microsoft Azure Infrastructure Solutionsの出題範囲「インフラストラクチャソリューションの設計」に対応。実際の試験問題ではありません)

正解:B

解説

Azure Service Bus は企業向けのメッセージブローカーで、セッションによる先入れ先出し(FIFO)の順序保証、重複検出、配信不能(デッドレター)キュー、トランザクションなどを備え、注文処理のようなビジネス上重要なメッセージに向いています。Event Hubs は大量のイベントストリームを取り込む用途で、メッセージごとの完了・放棄やデッドレターの仕組みを持ちません。Event Grid はイベントを購読者へプッシュ配信する反応型の基盤です。Queue Storage は大容量で安価ですが、FIFO は保証されず、重複検出もありません。

選択肢ごとの解説

  • A誤り。Event Hubs はパーティション内の順序は保てますが、メッセージ単位の重複検出やデッドレターは備えていません。大量のテレメトリ取り込み向けで、注文のような個別メッセージの処理には適しません。
  • B正しい。セッションで顧客ごとの順序を保証し、重複検出で二重送信を除去し、デッドレターキューで失敗メッセージを隔離できます。要件がすべて標準機能で満たせます。
  • C誤り。Event Grid は状態変化などのイベントを購読者へ通知する仕組みで、配信は再試行後に破棄またはデッドレター化されるため、順序保証や重複検出は提供しません。
  • D誤り。Queue Storage は FIFO を保証せず、重複検出の機能もありません。高い順序性と重複排除を求める業務メッセージの要件を満たせません。
AZ-305:Designing Microsoft Azure Infrastructure Solutionsの問題を演習モードで解く