Azureのストレージキューとは?
Azureのサービス ストレージキューとは?
ストレージキューはアプリケーションのコンポーネント間で行われるメッセージングのストレージです。主に使用される状況は非同期通信時です。送信側のコンポーネント数が多い場合や、メッセージングの頻度や速度が早い場合にストレージが必要になります。送信側はキューにメッセージを追加していきますが、受信側はキューの先頭からメッセージを処理していきます。キューに作業のバックログができるためこのような処理方法が可能となります。これを利用して異なるサーバ間でのメッセージの受け渡し、キューのデキュー先を分散することによる負荷分散、障害時の回復力の構築といったことが可能になります。Azureのストレージキューにはストレージキューとサービスバスキューの2種類がありますが、今回はストレージキューについてご紹介します(2種類の違いについてはこちらをご参照ください)。
キューの使用方法
キューを使用するにはストレージアカウント(汎用v2アカウントあるいは汎用v1アカウント)が必要になります。
キューを作成するには、ポータル上で作成する方法とコードを使用して作成する方法があります。
ポータル上で作成する方法
ストレージアカウントのメニューに[Queueaサービス]セクションの[キュー]項目を選択すると画面タブ上に[キュー][変更][キューの削除]というタブがでてきます。それぞれのタブ上でキューに任意の操作ができます。
コードを使用して作成する方法
様々な言語で作成することができます。公式ページでは.NET、JAVA、Python、JavaScriptといった言語でのチュートリアルを掲載しています。それぞれの言語での開発環境の構築方法や統合開発環境での設定方法もAzure公式サイトの[Learn]という学習用の項目で検索すると表示してくれます。統合開発環境ではAzure用のプラグイン等が用意されていることが多く適用すればすぐに環境を構築することができます。
キューのセキュリティ
キューへのアクセスに必要な権限
Azureポータルを使用してキューデータにアクセスするにはアカウントアクセスキーを使用する方法とAzure ADアカウントを使用する方法があります。これらのアクセスにはロールの権限が必要になります。
アカウントアクセスキーを使用する場合
下記のMicrosoft.Storage/storageAccounts/listkeys/actionを含むロールが割り当てられている必要があります。
- ・Azure Resource Managerの所有者ロール
- ・Azure Resource Managerの共同作成者ロール
- ・Storage Accountの共同作成者ロール
このロールが割り当てられている場合にアカウントキーでキューデータにアクセスします。
Azure ADアカウントを使用する場合
自分のAzure ADアカウントが下記2つの条件に当てはまる場合にキューデータにアクセスできます。
- ・Azure Resource Managerのリーダーロールがストレージアカウント以上のレベルに割り当てられている。
- ・下記のいずれかのロールが割り当てられている
- ストレージキューデータ共同作成者
- ストレージキューデータ閲覧者
- キューデータへのアクセスロールが組み込まれたカスタムロール
暗号化の管理
ストレージキュー内ではすべてのデータは暗号化されており、キーはスコープによりMicrosoftに管理されています。しかし、独自のキー指定やバージョンの更新、ローテーション、アクセス制御の取り消しといった、より高度な管理を行いたい場合はカスタマーマネージドキーを作成して管理します。カスタマーマネージドキーを使用するアカウントを作成する場合の注意点は承認まで時間がかかることやリージョンが限られていることが上げられます。
クライアント側の暗号化
Java等の言語にはストレージ用クライアントライブラリが用意されています。これらはAzure ストレージにアップロードする前の暗号化やダウンロード時の復号化を支援します。暗号化と復号化はエンベロープ手法によって行われます。
ストレージキューのテスト
Azuriteオープンソースエミュレーターを使用しストレージキューアプリケーションをローカル環境でテストすることが可能です。ローカルでのテストが完了したらクラウドのStorageアカウントに切り替えることが可能です。以前はAzureストレージエミュレータを使用していましたが、現在はAzuriteが優先されます。またAzuriteはAzure Storage APIをサポートするために今後とも更新されます。
終わりに
以上ストレージキューについての使用方法、セキュリティ、テスト方法の概要を紹介しました。他にもディザスターリカバリーや冗長化の方法が公式サイトでは紹介されています。参照することでより深くストレージキューについて理解できるでしょう。