Azureには、メッセージキューイング(MQ)サービスが三つあり、2系統に分かれる。Azure Storage系の「Azure Storage Queue(Azure Queue)」と、Azure Service Bus系の「Azure Service Bus Queue Standard」「Azure Service Bus Queue Premium」だ(図1)。

図1 三つのメッセージングキューイングサービス
図1 三つのメッセージングキューイングサービス
[画像のクリックで拡大表示]

 Azure QueueとService Bus Queue Standardは、Azureが正式サービスを開始した2010年から提供されている。

 Azure Queueは大規模システム向けに、性能と拡張性を重視しつつ、最小限の機能で料金を抑えたサービスとして投入された。

 業務システムなどでは、メッセージングサービスに多様な機能が求められる。そのニーズに応えるのが、多機能なService Bus Queue Standardだった。

 Service Bus Queue Standardは複数のユーザーによるリソース共有型で、リソースを取り合って性能が落ちる「ノイジーネイバー(うるさい隣人)問題」が発生する。そこで2016年7月に、リソース専有型のService Bus Queue Premiumが追加された。

 今回のサービス評価では、Azure Queue、Service Bus Queue Standard、同Premiumを取り上げる。各サービスを順に詳しく解説したうえで、性能を測定して比較する。

機能を絞ったAzure Queue

 Azure Queueは、REST APIを使用して大量のメッセージを格納するメッセージキューイングサービスだ。機能は単純で、メッセージのエンキュー(入力)、デキュー(出力)、peek(内容の参照)、削除、更新、不可視時間(メッセージが見えないようにする時間)の延長ぐらいである。機能は最小限だが、低レイテンシー、ある程度予測可能な性能、低料金などの特徴を持つ。

 Azure QueueはストレージサービスAzure StorageのPartition層で実装されている。Azure Storage系の各サービスと同様に、制限付きアクセス権限を付与できる「Shared Access Signature」、データを冗長化する「GRS」「RA-GRS」などの機能が利用できる。