Microsoft Azureスマート解説【第5回】
縁の下の力持ち「Microsoft Azureストレージ」の3つの機能を使い分ける
「Microsoft Azure ストレージ」には、3種類のストレージが用意されている。これらのストレージは、格納するデータの性質やサイズ、格納後の利用方法、実装の際に適用するデザインパターンなどに応じて使い分ける。
Microsoft Azure ストレージとは
「Microsoft Azure ストレージ」とは、さまざまな種類のデータを格納するためのサービスである。ストレージの種類として、「BLOB」「Table」「Queue」の3種類のストレージが用意されている。これらのストレージは、格納するデータの性質やサイズ、格納後の利用方法、実装の際に適用するデザインパターンなどに応じて使い分ける。
BLOBはオブジェクトストレージおよびブロックストレージである。主に、大量の非構造テキストやビデオ、オーディオ、画像などのバイナリデータを格納するために使用する。Tableは分散Key-Valueストア(分散KVS)で、アプリケーションのログデータなどの半構造化データを格納するために使用する。Queueはメッセージキューの機能を持ったストレージだ。主にアプリケーション間でメッセージをやりとりするために使用する。
本サービスでは、ストレージアカウントという単位で管理を行う。1ストレージアカウントに対してBLOB、Table、Queueを複数個作成することができ、1ストレージアカウント当たり最大500Tバイト(2014年7月24日時点)のデータを格納することができる。そのため、よほどのことがない限り、データ容量を気にせずに使用することができる。
堅牢にデータを格納する仕組み
本ストレージサービスは極めて堅牢なデータ保管の仕組みを持っている。各ストレージアカウントでのデータ冗長化の方式として「ローカル冗長」「地理冗長」「読み取りアクセス地理冗長」の3種類から選択することができる。
ローカル冗長では、データを同じデータセンター内の異なる3つのストレージへ複製して格納する。地理冗長では、さらに異なるデータセンター(セカンダリリージョン)の3つのストレージへ複製して格納する。
つまり、データは最低でも3重化されて格納されており、また、マルチリージョンでデータを6重化して格納させることもできる。ストレージアカウントを複数利用することも可能なので、よほどの用途でなければ無尽蔵にデータを格納できるといえるだろう。もちろん、情報の論理的な整合性はユーザーが担保する必要があるとはいえ、障害によって消失する可能性を極限まで軽減することができると考えて差し支えない。
縁の下の力持ち
本ストレージサービスは、単純にファイルサーバとして使うようなストレージサービスとは異なる。BLOBストレージ、Tableストレージ、Queueストレージを適切に使いこなすことで、クラウドシステムの可用性およびスケーラビリティを劇的に向上させることができる。「Microsoft Azure クラウドサービス」や「Microsoft Azure Webサイト」などのように注目されやすいサービスではないが、それらのサービスをサポートする、まさに縁の下の力持ちといえる。一方で、使い方を誤ると性能ダウンやコスト増加を引き起こす可能性があるので注意が必要だ。
以降、各ストレージの概要および活用方法について説明する。
BLOBストレージ
概要
BLOBストレージはオブジェクトストレージおよびブロックストレージであり、大量の非構造テキストや動画、画像などのバイナリデータ、VHD(仮想ディスク)ファイルを格納するために使用する。Amazon Web Services(AWS)では「Amazon S3(Simple Storage Service)」と「Amazon EBS(Elastic Block Store)」に相当するサービスといえる。
BLOBストレージでは、1つのコンテナ(フォルダに相当)に複数のBLOB(ファイルに相当)を配置できる。基本的に、コンテナ内のBLOBへアクセスするためには、アクセスキーによる認証が必要である。しかし、コンテナを「パブリックコンテナ」に設定することで、認証不要で全世界のユーザーがアクセスできるようになり、コンテンツ配信サーバとして用いることができる。また、共有アクセス署名(Shared Access Signature)を用いることで、非常に限定した範囲にのみ配信を行うことも可能である。
BLOBの利用方法は多岐にわたる。基本的には、Microsoft Azure クラウドサービス/仮想マシンのVHDファイルやログデータの格納に利用される。それ以外には、動画コンテンツをパブリックコンテナへ配置することで、ユーザーへ動画配信をすることができる。また、「Microsoft Azure CDN」と連携することで、全世界へ高速に分散配信をすることもできる。そして、ビックデータ分析サービス「Microsoft Azure HDInsight」と連携することで、BLOB内の大量データに対して高速なデータ分析を行うことも可能である。
活用方法
BLOBストレージの活用方法の1つとして、動画や画像などデータサイズが大きいコンテンツの配信が挙げられる。一般的に動画はデータサイズが大きく、Webサーバから配信すると、Webサーバの帯域圧迫や、CPU負荷を引き起こす。これが原因で、大量にユーザーがアクセスしてきた際に配信遅延や、最悪の場合、配信不能を引き起こす可能性がある。また、画像もデータサイズが小さいとはいえず、配信する数が多くなると通信帯域圧迫の原因となる。これらの問題は、Microsoft Azure Webサイトでは自動スケール機能で対応することができるが、その場合、多くのサーバが必要となりコストが増大してしまう。
そこで、動画および画像ファイルの配信をBLOBストレージから行わせるようにする。ストレージアカウントは、ローカル冗長ストレージで送信15Gbps、地理冗長ストレージで送信10Gbpsの性能を持つため、大量のユーザーがアクセスしてきても高速にコンテンツを配信することができる。もしWebサイトの公開範囲が広く、世界中からアクセスされる場合にはMicrosoft Azure CDNを用いると、世界中に配置されたエッジサーバからコンテンツを分散配信することができる。これらにより、Webサイトの帯域圧迫やCPU負荷を軽減でき、大量のユーザーに対し、非常に少ないWebサーバで対応できるようになる。
Tableストレージ
概要
Tableストレージは分散KVSであり、構造的なデータを格納することができる。AWSでは「Amazon DynamoDB」に相当するサービスといえる。KVSとは「キー」と「値」のペアで保存する方式のストレージである。キーと値のペアだけの単純な構造のため、分散配置が容易である。そのためシャーディングやパーティション分割をすることなく格納するデータ量を容易にスケールアウトできる。
Tableストレージでのキーと値のペアは「エンティティ」と呼ぶ。エンティティのキーは「PartitionKey」と「RowKey」の2つで構成される。PartitionKeyでは、エンティティをどのパーティションに所属させるかを指定する。同じPartitionKeyのエンティティは一括して取得することができるため、同時に取得することが多いエンティティは同じパーティションに所属させるべきである。ただし、1つのパーティションに多くのエンティティを所属させると検索性能が落ちるため、適切にパーティション設定を行う必要がある。RowKeyには、同じパーティション内でエンティティを一意に特定するための文字列を指定する。エンティティの値には、複数のプロパティを設定することができる。プロパティのデータ型としては、文字列、数値、小数、論理型、日付などが選択できる。
Tableストレージでは、正規化したテーブル間のリレーション設定やトランザクション処理を行うことができない。もしこれらを要するデータ管理を行うのであれば、リレーショナルデータベースサービスである「Microsoft Azure SQLデータベース」を用いるべきである。
活用方法
Tableストレージの活用方法の1つとして、大量のデバイスから情報を収集する、いわゆるIoT(モノのインターネット)ソリューションにおける、収集情報の格納先としての利用が挙げられる。一般的に各デバイスから送られてくる情報は、BLOBに書き込むのに適するほど大きくない。しかし累積して莫大なデータ量となるため、リレーショナルデータベースだといずれ格納しきれなくなる。
そこでTableストレージの利用が視野に入る。Tableストレージは小規模で大量なデータを格納するのに適しており、最大500Tバイトのほぼ無尽蔵なデータ容量を持つ。また、パーティションキーを利用したデータの配置設計を適切に行うことで、データ量が多くなっても高速な検索性能を保つことができる。もし収集した情報を分析するのであれば、Tableストレージの全エンティティをマージしてBLOBストレージへ格納し、HDInsightでビックデータ分析を行うこともできる。
Queueストレージ
概要
Queueストレージはメッセージキューストレージであり、主にアプリケーション間のメッセージングに使用される。AWSでは「Amazon SQS(Simple Queue Service)」に相当するサービスといえる。Queueストレージに対して、テキストまたは少量のバイナリデータを投入できる(エンキュー)。また、投入したものを取り出すことができる(デキュー)。取り出し方式は、先入れ先出し(FIFO:First In First Out)方式であり、投入した順に取り出すことができる。格納できるメッセージは最大64Kバイトで、7日間しか保管することができないため、長期保管には向いていない。
活用方法
連続した処理をMicrosoft Azure クラウドサービスのWorkerロールなどで分離して、それらをQueueストレージで連携させることによって、処理の非同期化を実現することができる。処理の非同期化により、変動が激しい処理の負荷を平準化できる。突発的に大きい処理負荷が発生しても、Queueストレージにより処理要求をいったん吸収し平準化、リクエストをロストせずに全て処理することが可能だ。
例えば、Microsoft Azure Webサイトで全てのリクエストを受け付けて処理している場合、負荷の高い処理についても同様に処理すると、WebサイトのスレッドやCPUなどのリソースが占有されてしまい、リクエストが突発的に増大した際に処理しきれなくなり、リクエストをロストしてしまう可能性がある。これに関し、非同期でのリクエストを許容するサービスについてはQueueストレージに投入し、バックグラウンドで稼働するタスク(クラウドサービスのWorkerロールなど)に渡すように設計することが可能だ。この設計により、タスクで処理しきれないほどのリクエストが突発的に発生しても、リクエストはQueueストレージに蓄積されているため、リクエストがロストすることがない。リクエストの平均量を処理しきれるだけのタスクが稼働していれば、時間をかけて全て処理しきることができる。
よいクラウドシステムを構築するためのキーとなるAzureストレージ
以上のように、ストレージサービスのBlobストレージ、Tableストレージ、Queueストレージは、それぞれシステムのスケールアウトや可用性向上のために活用することができる。
Blobストレージは、データサイズの大きい動画などのコンテンツを配信するMicrosoft Azure Webサイトで活用することで、Webサイトへの負荷を低減でき、大量のユーザーに少ないサーバ台数で対応できるようになる。Tableストレージは、大量のデバイスから送られてくる比較的サイズの小さい情報の格納先に活用することで、データのスケールアウトを実現することができる。Queueストレージはサービス間連携で活用することで、処理の非同期化、負荷の平準化を実現することができる。ストレージサービスは、ストレージ用途だけではなく、メッセージングシステムとしても活用することで、真の価値を発揮すると言っても過言ではない。
今回紹介した方法以外にも活用方法は多岐にわたり、クラウドデザインパターンに合致した使い方だけでなく、アイデア次第でさまざまな応用ができるだろう。各ストレージを適切に使うことができれば、よりよいクラウドシステムを構築できるようになる。
日山雅之(ひやま まさゆき)
株式会社FIXER Enterprise Cloud Unit クラウドエンジニア
学生時代に地元のITベンチャー企業にてプログラミングのアルバイトを行い、そこでプログラミングの奥深さに魅了され、スーパープログラマを目指す。大学院を卒業後、現日立システムズに入社し、App Bridgeシリーズの開発に携わる。その後、プログラミング技術をより高めるべく株式会社FIXERに入社。Microsoft Azureの虜になる。マイクロソフト認定ソリューションデベロッパー(WebApplication)およびAWS認定ソリューションアーキテクト(アソシエイト)。
【FIXER公式サイト】http://www.fixer.co.jp/
【cloud.config公式サイト】http://www.cloud-config.jp/
Copyright © ITmedia, Inc. All Rights Reserved.
Microsoft Azureスマート解説
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
2
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
5
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
6
【漫画付き】ひとり情シス協会が明かす、RAG導入でしくじる企業「2つの共通点」
-
7
AI時代のITインフラ戦略とは? 販売代理店が知っておきたい最新トレンド
-
8
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
9
人間のせいでAIエージェントの生産性が上がらない
-
10
「IBM i(AS/400)はクローズドなシステム」という誤解 DXに寄与する一歩
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー