過去問ドリル

AZ-900:Microsoft Azure Fundamentals Azure のアーキテクチャとサービス 問15

Azure のアーキテクチャとサービス/Azure のストレージサービス

あるWebアプリケーションでは、フロントエンドが受け付けた注文処理の依頼を、バックエンドのワーカーが非同期に取り出して順次処理する設計にしたい。フロントエンドとバックエンドの間で、処理待ちの依頼(メッセージ)を一時的に格納できる、シンプルなキューイングの仕組みをAzure Storage内に用意したい。使用すべきAzure Storageのサービスはどれか。

当サイトのオリジナル問題(AZ-900:Microsoft Azure Fundamentalsの出題範囲「Azure のアーキテクチャとサービス」に対応。実際の試験問題ではありません)

正解:B

解説

Azure Queue Storage は、アプリケーションのコンポーネント間でメッセージを一時的に格納し、キュー(待ち行列)として取り出せるシンプルなメッセージングの仕組みを提供するサービスです。フロントエンドが受け付けた処理依頼をメッセージとしてキューに格納し、バックエンドのワーカーが非同期に取り出して処理するという、処理の分離(デカップリング)に適しています。なお、メッセージは基本的に投入順に近い形で取り出されますが、Azure Queue Storage は厳密な順序(FIFO)を保証するものではありません(厳密なFIFOが必要な場合はメッセージセッションを使う Azure Service Bus キューを検討します)。Azure Files はSMB/NFSプロトコルでアクセスできるフルマネージドのファイル共有サービスであり、キューイングの仕組みは提供しません。Azure Blob Storage は非構造化データ(画像・ログ・バックアップファイルなど)を格納するオブジェクトストレージであり、メッセージを処理待ち行列として扱う仕組みは備えていません。Azure Table Storage はキーと値の形式で構造化データを格納するNoSQLストアであり、属性に基づく検索に向きますが、メッセージの待ち行列処理を目的としたサービスではありません。

選択肢ごとの解説

  • A誤り。Azure Files はSMB/NFSプロトコルでアクセスできるファイル共有サービスであり、メッセージを格納・取り出すキューイングの仕組みは提供しません。
  • B正しい。Azure Queue Storage はメッセージを一時的に格納して取り出せるシンプルなキューイングの仕組みを提供し、フロントエンドとバックエンドの処理を分離する今回の要件に適しています(厳密なFIFOは保証されない点に注意)。
  • C誤り。Azure Blob Storage は画像やログなどの非構造化データを格納するオブジェクトストレージであり、メッセージを処理待ち行列として扱う仕組みは備えていません。
  • D誤り。Azure Table Storage はキーと値の形式で構造化データを格納するNoSQLストアであり、属性に基づく検索に向きますが、メッセージの待ち行列処理を目的としたサービスではありません。
AZ-900:Microsoft Azure Fundamentalsの問題を演習モードで解く