COLUMN
Azure Queue Storage(キュー ストレージ)とは?特徴と使い方
Azure Queue Storage(キュー ストレージ)とは、Azureより提供されている、ストレージを利用したメッセージングサービスです。非同期でメッセージを処理できるため、ユーザー側に待ち時間が発生しないなどのメリットがあります。
本記事では、Azure Queue Storageの概要と特徴、ユースケースや基本的な使い方を紹介します。同じキューを提供するサービスであるAzure Service Busとの違いについても解説しますので、ぜひご覧ください。
【入門編】「NTT東日本がおすすめするクラウド導入を成功させるためのお役立ちマニュアル」のダウンロードはこちら!
目次:
- 1.Azure Queue Storageとは?概要と特徴
- 1-1.特徴1:非同期でメッセージを処理
- 1-2.特徴2:最大64KBのメッセージサイズと大容量のキューサイズ
- 1-3.特徴3:最大7日のメッセージ保存
- 1-4.特徴4:プロトコルはHTTPおよびHTTPS
- 2.Azure Queue StorageとAzure Service Busの違い
- 3.Azure Queue Storageのユースケース
- 4.Azure Queue Storageの基本的な使い方
- 4-1.キューを作成する
- 4-2.キューストレージに出力する function を作成する
- 4-3.キューストレージをトリガーとする function を作成する
- まとめ
1.Azure Queue Storageとは?概要と特徴
Azure Queue Storageとは、Microsoft社が提供するクラウドサービス「Azure」の非同期メッセージングサービスです。メッセージングとは分離したシステム間でのメッセージ交換を指す用語で、Azure Queue Storageはストレージアカウントの中に「キュー」と呼ばれる入れものをつくり、中に複数のメッセージを格納できる仕組みです。
Azure Queue Storageは多くの特徴を持ち、ユーザーに利便性をもたらします。具体的にどのような特徴があるのか、見ていきましょう。
1-1.特徴1:非同期でメッセージを処理
Azure Queue Storageではキューメッセージの非同期処理が可能です。
非同期処理に対応していないキューサービスでは、システムに要求を送信してから応答があるまで待ち状態が発生するため、送信側は要求の送信処理を待たなければなりません。しかし非同期処理ができることにより、送信側は受信側の応答を待たずに次のメッセージを送信できます。
1-2.特徴2:最大64KBのメッセージサイズと大容量のキューサイズ
Azure Queue Storageは、最大64KBのメッセージをキューストレージに格納できます。また、キューの格納先はAzureストレージを利用しているため大容量です。
オンプレミスでサーバー運用をするときには、ストレージ容量に合わせてキューデータのサイズをコントロールする必要があるでしょう。しかしAzure Queue Storageでは、利用しているAzureストレージの総容量を超えない限りメッセージを格納できます。
1-3.特徴3:最大7日のメッセージ保存
Azure Queue Storageでメッセージを保存できる期間は最大7日間です。ただし、バージョン2017-07-29以降では、最大有効期間をパラメーターで任意に設定できるようになりました。
たとえば、パラメーターを「-1」に設定することで、メッセージの有効期限が切れないように設定することも可能です。パラメーターを設定しない場合には、有効期限は最大7日に設定されます。
※バージョン2017-07-29より前の場合、最大有効期間は7日間です。
1-4.特徴4:プロトコルは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で指定するため、どこからでもアクセスできるキューとして利用可能です。
2.Azure Queue StorageとAzure Service Busの違い
Azure Queue Storageと混同しやすいサービスに、Azure Service Busがあります。どちらも同じくキューを提供するサービスですが、Azure Queue StorageはAzure Storageの一種、Azure Service BusはAzure Storageと並ぶサービスのひとつであると認識すれば、わかりやすいのではないでしょうか。
Azure Queue Storageは、シンプルなメッセージキューを提供するサービスで、分散システムでメッセージングを行うときに向いています。一方でAzure Service Bueは、Azure Queue Storageよりも高度な統合パターンがサポートされています。
またAzure Service Busのキューのサイズは80GBで、最大メッセージサイズは256KBです。Azure Queue StorageとAzure Service Busのどちらを利用しようか迷う場合、容量も確認して最適なほうを選ぶとよいでしょう。
3.Azure Queue Storageのユースケース
Azure Queue Storageは大容量のキューが必要な場合や、データが急増してスケールが必要な場合に対応できます。Azureストレージによって大容量のキューを保管できるため、大量のデータをやり取りするWebサービスに利用できるでしょう。
Webサーバーに大量のバッチ処理が必要で、キューサイズが80GBを超えてしまうなら、Service Busでは容量不足です。このとき、Azure Queue Storageを利用することで容量不足を解決できます。
また、サービスのトラフィックに応じて適正な規模でデプロイできますので、キューの長さを監視して、システムへの急激な要求増に応じたスケールが可能です。
4.Azure Queue Storageの基本的な使い方
非同期でメッセージを処理でき、最大64KBと大容量のキューサイズを持つAzure Queue Storageは、マイクロサービスにおいて重要な役割を持っています。マイクロサービスとは、独立して機能する個々のサービス(コンポーネント)を組み合わせて、アプリケーションを構築するシステム設計の考え方です。
最後に、Azure Queue Storageの基本的な使い方について解説します。
- キューを作成する
- キューストレージに出力するfunctionを作成する
- キューストレージをトリガーとするfunctionを作成する
順番に見ていきましょう。
4-1.キューを作成する
はじめにメッセージを格納するためのキューを作成します。そのためには、キューストレージとして利用するためのストレージアカウントが必要です。ストレージアカウントはBlobストレージやAzure Fileのストレージアカウントを利用してもかまいません。
ただしネットワークのアクセス制限がかかっていると、functionとの連携がうまくいかないことがあるため、専用のストレージアカウントを作成しておくとよいでしょう。Azure portalの左に配置されている「ストレージアカウント」から「作成」を選択し、キュー専用のストレージアカウントを作成します。
新しいアカウントページのメニューより「キュー」を選択すれば、作成は完了です。作成したばかりのキューであるため、メッセージは「結果がありません」と表示されています。
4-2.キューストレージに出力する function を作成する
キューを作成したら、キューストレージに出力するfunctionを作成します。functionとは機能や役割という意味の言葉で、あるコードにより一定の処理を実施し、結果を示す機能です。
ここではHTTPアクセスをトリガーにして、キューストレージにメッセージを書き込むfunctionを作成しましょう。functionは「関数アプリ」のサービス画面を開いて作成します。ランタイムを「node.js」とし、「ホスティング」タブに上記で作成したストレージアカウントを指定してください。
前述のとおり、BlobストレージやAzure Fileアカウントでも利用できますが、アクセス制限のかかっているアカウントを指定するとデプロイに失敗してしまうため、注意しましょう。関数アプリを作成した後は、「テンプレート」でHTTP triggerを選択します。
関数を作成したら、出力設定をします。「統合」をクリックすると「トリガー」「入力」「関数」「出力」が表示されるため、「出力」の「追加」をクリックしましょう。詳細のQueue nameには作成したキューの名前を、「Storage account connection」には、接続先となるキューストレージを指定してください。
次にコードを記述します。「コードとテスト」を開いて、index.jsに公式ドキュメントにて公開されているサンプルコードをコピーして貼り付けましょう
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
if (req.query.name || (req.body && req.body.name)) {
context.res = {
// status: 200, /* Defaults to 200 */
body: "Hello" + (req.query.name || req.body.name)
};
context.bindings.outputQueueItem = "Name passed to the function: " +
(req.query.name || req.body.name);
}
else {
context.res = {
status: 400,
body: "Please pass a name on query string"
};
}
context.done();
}
貼り付けが終わったあとは、実際に関数を実行してみましょう。「関数のURLを取得」よりURLを取得し、末尾に”?name=1st_test”と入れてみてください。
200okが返ってくれば成功で、ストレージアカウントのキューには先ほど指定したクエリ値”1st-test”と入力されています。
4-3.キューストレージをトリガーとする function を作成する
キューストレージに出力するfunctionを作成したら、今度はキューストレージをトリガーとするfunctionを作成します。関数アプリは同じでも別でも、キューストレージが共通していればかまいません。
情報メニューにある「関数の追加」をクリックし、「Azure Queue Storage trigger」を選択しましょう。トリガーとなるストレージアカウントとキューは、出力設定で設定したものを指定してください。
指定したあと、先ほどのキューの画面を確認してみると、1回実行されているため”1st_test”のメッセージテキストがなくなっています。キュー内のメッセージがトリガーとなり、関数が実行され、メッセージがデキューされたことがわかります。
まとめ
Azure Queue Storageは、Azureから提供されているストレージサービスを利用したメッセージングサービスです。Azure Queue Storageは非同期でメッセージを処理できたり、最大64KBという大容量のキューサイズを持っていたりと、多くの特徴があります。
Azure Queue Storageを利用すれば、大量のバッチ処理をする際も容量不足でエラーを起こしてしまうことはほとんど考えられず、応答待ちでユーザーにストレスを与える状況にもなりません。Azure Service Busなど別のキューサービスもありますが、それぞれのサービスの特徴を捉え、自社にとって有効なサービスを利用しましょう。
RECOMMEND
その他のコラム
無料ダウンロード
自社のクラウド導入に必要な知識、ポイントを
この1冊に総まとめ!
あなたはクラウド化の
何の情報を知りたいですか?
- そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
- 【AWS・Azure・Google Cloud】
どれが自社に最もマッチするの? - 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
- 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?
初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。
NTT東日本では
そんなあなたにクラウド導入に必要な情報を
1冊の冊子にまとめました!
クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・
- システムインフラの維持にかかるトータルコストがあまり変わらない。。
- 情シス担当者の負担が減らない。。
- セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
-
そもそも”クラウド化”とは?
その本質的なメリット・デメリット - 自社にとって
最適なクラウド環境構築のポイント - コストを抑えるための
具体的なコツ - 既存環境からスムーズにクラウド化を
実現するためのロードマップ
など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。
面倒でお困りのあなたへ
クラウドのご相談できます!
無料オンライン相談窓口
NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!
NTT東日本が選ばれる5つの理由
- クラウド導入を
0からワンストップでサポート可能! - 全体最適におけるコスト効率・業務効率の改善を
中立的にご提案 - クラウド環境に問題がないか、
第3者目線でチェック
してもらいたい - 安心の24時間・365日の対応・保守
- NTT東日本が保有する豊富なサービスの組み合わせで
”課題解決”と”コスト軽減”を両立
特に以下に当てはまる方はお気軽に
ご相談ください。
- さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
- オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
- オンプレミスとクラウド移行した際のコスト比較を行いたい
- AWSとAzure、どちらのクラウドが自社に適切かわからない
- クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
- クラウド利用中、ネットワークの速度が遅くて業務に支障がでている
クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。