Azure Queue Storageとは?シンプルな持続性に優れた大規模メッセージングを実現!

入力されたデータを順次処理するために利用されるQueue(キュー)。日本語では待ち行列とも表現されるコンピューターの基礎的な仕組みです。Queueの制御はコンピューターが動作するあらゆるシーンで利用されます。Microsoftが提供するAzureにもQueueを制御するサービスがあり「Azure Queue Storage」もそのうちの1つです。今回は、Azure Storageを利用して制御されるAzure Queue Storageの特徴やその使いどころについて解説します。

Azure Queue Storageとは

Azure Queue Storageとは、Azureで提供されているストレージを利用したメッセージングサービスです。メッセージングとは、離れたシステム間でやり取りするデータ交換のことを指します。アプリケーション同士が連携するためにメッセージをやり取りしますが、そのメッセージを一時的に保管しておく場所の1つがキューです。

Azure Queue Storage への接続はHTTPあるいはHTTPSプロトコルを利用するため、URL形式で接続でき、クラウド上に存在するキューとして世界中のどこからでもアクセスできます。

Azure Queue Storage はAzureのストレージのアカウントを利用するため、Azureストレージのアカウントが必要です。Azure Queue Storageにおけるメッセージ容量は最大64KBで、最大7日間メッセージを保存できます。

また、Azure Queue Storageは非同期処理ができるというメリットを持ち、受信側の状態に関わらずメッセージを送信できますので、システムを利用するユーザーの待ち時間を削減できます。

Azure Queue Storageの特徴

次にAzure Queue Storageのいくつかの特徴を見ていきましょう。

非同期でメッセージを処理

Azure Queue Storageではキューメッセージの非同期処理が可能です。
非同期処理に対応していないキューサービスでは、システムに要求を送信してから応答があるまで待ち状態が発生しますので、送信側は要求の送信処理を待たなければなりません。しかし、非同期処理ができることにより、送信側は受信側の応答を待たずに次のメッセージを送信ができるのです。

最大64KBのメッセージサイズと大容量のキューサイズ

Azure Queue Storageは、最大64KBのメッセージを大容量のキューストレージに格納できます。
また、キューを格納する容量は、Azureストレージを利用しているため大容量です。オンプレミスでサーバー運用をする場合には、そのストレージ容量に合わせてキューデータのサイズをコントロールする必要があるでしょう。しかし、Azure Queue Storageでは利用しているAzureストレージの総容量を超えない限りメッセージを格納できます。

最大7日のメッセージ保存

Azure Queue Storageでメッセージを保存できる期間は最大7日間です。ただし、バージョン2017-07-29以降では、最大有効期間をパラメーターで任意に設定できるようになりました。
例えば、パラメーターを「-1」に設定することで、メッセージの有効期限が切れないように設定することも可能です。パラメーターを設定しない場合には、有効期限は最大7日に設定されます。
※バージョン2017-07-29より前の場合、最大有効期間は7日間です。

プロトコルはHTTPおよびHTTPS

Azure Queue Storageでは、HTTPあるいはHTTPSのプロトコルを使用します。ですので、キューをURL形式でアドレス指定できるのです。
例えば「.Net」でAzure Queue Storageを利用する例です。
Storage Accountを「testaccount」、Queuesを「qmessage」だと仮定した場合は、以下のようなURL形式でキューにアクセスします。
※キューの名前に関しては、すべて小文字で指定します。
・https://testaccount.queue.core.windows.net/qmessage
このように、クラウド上にあるキューをURLで指定するため、どこからでもアクセス可能なキューとして利用できます。

Queue StorageとService Bus Queueの違い

Azureのキューサービスには、Queue StorageとService Bus Queueの2種類があります。

Queue Storageは前述の通りAzureストレージサービスの一部ですが、Service Bus QueueはAzure Service Busというサービス群の1つです。

Service Bus Queueは、例えば企業のシステム内でオンプレミスとクラウドベースのアプリケーションやデータなどを統合する際に利用できるもので、キューサービスとしてQueue Storageよりも多機能であり複雑な処理が可能です。

双方とも利用目的は似ていますが、Azure Service Busのキューサイズは最大80GBで、最大メッセージサイズは256KBであるといった違いがあります。

Azure Queue Storageのユースケース

Azure Queue Storageは大容量のキューが必要な場合や、データ急増でスケールが必要な場合に対応できます。

Azure Queue StorageはAzureストレージを利用して大容量のキューを保管できるため、大量のデータをやり取りするWebサービスに利用できるでしょう。

Webサーバーに大量のバッチ処理が必要で、キューサイズが80GBを超えてしまう場合、Service Bus Queueでは容量不足です。このとき、Azure Queue Storageを利用することで容量不足を解決できます。

また、サービスのトラフィックに応じて適正な規模でデプロイできますので、キューの長さを監視して、システムへの急激な要求増に応じたスケールが可能です。

まとめ

Azure Queue StorageはAzureストレージを利用して、大容量のクラウドキューストレージとして利用できます。大量のバッチ処理などをする際、要求が容量不足でエラーを起こしてしまうことはほとんど考えられないでしょう。サービスの応答待ちでユーザーにストレスを与えるような状況も、非同期処理が解消します。大規模なワークロードが必要なシステムでは、Azure Queue Storageのシンプルで持続性に優れたメッセージキューを有効に利用しましょう。

ネットワークからクラウドまでトータルサポート!!
NTT東日本のクラウド導入・運用サービスを確認してください!!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る