ある企業がAzureでマイクロサービスアーキテクチャを構築している。サービス間でビジネスイベント(注文確定・支払い完了など)を非同期に通知し合いたい。各イベントに対して複数のコンシューマーサービスが独立して反応できるPub/Subパターンで、かつイベントを受け取った後のアクションをサーバーレスに実行したい。最も適切なAzureサービスの組み合わせはどれか。
- A. Azure Queue Storage + Azure Virtual Machines
- B. Azure Event Grid(イベントルーティング)+ Azure Functions(サーバーレスイベントハンドラー)
- C. Azure CDN + Azure SQL Database
- D. Azure ExpressRoute + Azure Batch
解答と解説を見る
正解: B
Azure Event Gridはイベントをトピックにパブリッシュし、複数のサブスクリプション(エンドポイント)に同時にルーティングするPub/Subイベントバスである。Azure Functionsはイベントトリガーで起動するサーバーレス関数実行環境で、Event GridのイベントをトリガーにしてFunctionsを呼び出すことで、イベント発生→複数サービスが独立してサーバーレスに処理するアーキテクチャが実現できる。選択肢AのQueue StorageはP2Pの1対1メッセージキューであり、複数コンシューマーへの同時配信(Pub/Sub)には適さない。VMはサーバーレスでない。選択肢DのExpressRoute + Batchはネットワーク接続と大規模バッチ処理のサービスであり、イベント駆動マイクロサービスには使用しない。選択肢CのCDN + SQLは静的コンテンツ配信とRDBMSの組み合わせで、イベントルーティングとは無関係。
📚 関連サービスの解説: Azure Functions