クラウドエンジニアブログ

Azure Storage 再入門

human05

古林

みなさまこんにちは。クラウドアーキテクトの卵です。

最近、遅ればせながら、コンビニスイーツにハマっています。
今まであまりスイーツを食べないようにしていたのですが(太るから)、何気なく買ったプリンとスフレが一緒になっているようなスイーツがとても美味しく、リピートしていたらいつの間にか他のスイーツも買って食べるようになってしまいました。
最近のコンビニスイーツはレベルが高いですね!いくらでも食べられそうです。
・・・そろそろ、運動しようかな。。。



<目次>
  • はじめに
  • Azure Storage 概要
  • ストレージアカウントの種類
  • ストレージサービスの種類
  • ディスクストレージとの違い
  • おわりに


はじめに

とある案件で、Azure における PaaS サービスをまとめることになりました。そのお客様は PaaS を活用していきたいという思いがあり、PaaS サービスを利用するとしたらどれがいいかを考えているため、弊社としての一押し構成、使い方を紹介するために、改めて PaaS サービスを調査することになりました。

私も得意分野(?)のデータベースと、ストレージ部分をお手伝いさせてもらいました。データベースは比較的サクサクとまとめられたのですが、ストレージについては意外に苦戦しました。

「いつも『Blob』って言っているものって、BLOB ストレージアカウントのことを言っているのか、BLOB ストレージサービスのことを言っているのか、どっちだっけ?」
「今回、PaaS サービスのまとめであるため、IaaS(VM)の話は対象外とするから VM のディスクについては記載しなくてよい、ということだったけど・・・管理ディスク(マネージドディスク)や非管理ディスク(アンマネージドディスク)は、純粋にストレージとして使用する際に関係するんだっけ?」
このあたりで混乱してしまいました。
自分の備忘録も兼ねて、純粋にストレージとして使用する場合における Azure Storage について、Azure Storage を作成する際の情報に沿ってまとめます。

Azure Storage 概要

Azure ポータル画面から Azure Storage を作成する際、ストレージアカウントを作成する必要があります。ストレージアカウントを通じて、Blob 等のストレージサービスにアクセスすることになります。そのため、Blob 等のストレージサービスを決める前に、ストレージアカウントの種類を決める必要があります。
Azure Storage、ストレージアカウント、ストレージサービスの関係性について下図に表します。

<Azure Storage 概要>

Azure Storage 概要

私たちがよく「Blob」と言っている、汎用ストレージという意味での Blob は、上図の Azure Blob ストレージのことを指しています。

ストレージアカウントの種類

前述の通り、ストレージアカウントを通じて Blob 等のストレージサービスにアクセスすることになりますので、ストレージアカウントを決めます。
ストレージアカウントの種類を以下にまとめます。

<ストレージアカウントの種類>

左右にスクロールしてご覧ください。

ストレージアカウント 概要
汎用 v2 アカウント 最新の Azure Storage の機能をサポートし、汎用 v1 と BLOB ストレージアカウントのすべての機能が組み込まれている。汎用 v2 アカウントは、Azure Storage に対してギガバイトあたり最低のキャパシティ価格で提供されている。
汎用 v1 アカウント すべての Azure Storage サービスにアクセス可能であるが、最新の機能が利用できない場合があるほか、GB 単価もやや高いことがある。
汎用 v2 アカウントにアップグレード可能。(元に戻せない)
BLOB ストレージアカウント 非構造化オブジェクトデータをブロック BLOB として格納するための特化されたストレージアカウント(BLOB 専用ストレージアカウント)。
BLOB ストレージアカウントは、汎用 v2 ストレージアカウントで利用できる持続性、可用性、スケーラビリティ、およびパフォーマンス機能と同じものを提供している。
ブロック BLOB と追加 BLOB の格納をサポートしている。ページ BLOB はサポート対象外。
汎用 v2 アカウントにアップグレード可能。(元に戻せない)

     
  • 汎用 v2 アカウント
    Azure Storage を使用するほとんどのシナリオにお勧めのストレージアカウントです。
    (Microsoft も汎用 v2 アカウントを推奨しています。)
    構築ではまずコレを選びます。汎用 v1 アカウントよりもコストは安いように見受けられます。

    【参考: Azure ストレージ アカウントの概要】
    https://docs.microsoft.com/ja-jp/azure/storage/common/storage-account-overview
  •  
  • 汎用 v1 アカウント
    現在では、基本使用しません。(汎用 v2 アカウントを使用します)
    ただし、以下の場合にのみ使用することがあります。    
    • アプリケーションで、Azure クラシックデプロイモデルが必要である場合。
      →汎用 v2 アカウントと BLOB ストレージアカウントは、Azure Resource Manager デプロイモデルのみをサポートしているため、汎用 v1 アカウント一択になります。
    •    
    • アプリケーションがトランザクション集約型である、またはかなりの geo レプリケーション帯域幅を使用するが、大きなキャパシティは不要である場合。
      →汎用 v1 が最も経済的な選択肢になる可能性があります。
    •    
    • Storage Services REST API の 2014-02-14 より前のバージョンか、クライアントライブラリの 4.x より前のバージョンを使用していて、アプリケーションをアップグレードできない場合。
  •  
  • BLOB ストレージアカウント
    大抵の場合、汎用 v2 アカウントで Blob ストレージサービスを使用しているため、私の経験上使用したことがないです。Docs にも「可能な場合は汎用 v2 アカウントを代わりに使用してください。」とあるため、汎用 v2 アカウントを使用した方が良いと思われます。

ストレージサービスの種類

前項で説明したストレージアカウントは、すべての Azure Storage データ オブジェクト(BLOB、ファイル、キュー、テーブル、およびディスク)が含まれています。この Azure Storage データオブジェクトのことを、ストレージサービスと呼びます。
ストレージサービスの種類を以下にまとめます。

<ストレージサービスの種類>

左右にスクロールしてご覧ください。

ストレージサービス 概要
Blob ストレージ テキストおよびバイナリデータのための高度にスケーラブルなオブジェクトストア。
テキストデータやバイナリデータなどの大量の非構造化データを格納するために最適化されている。
Blobには以下3種類のリソースがある。(規模的には1>2>3)

【リソース】
  1. ストレージアカウント :前述の「ストレージアカウント」と同一。
  2. コンテナー:ファイルシステムのディレクトリと同じように、ストレージアカウント内にコンテナーを作成して BLOB のセットを整理できる。ストレージアカウントに含めることができるコンテナーの数には制限がなく、1つのコンテナーに格納できる BLOB の数にも制限はない。
  3. Blob:以下3種類の BLOB をサポート。
    • ブロック BLOB:約 4.7TB までのテキストとバイナリデータを格納可能。個別に管理できるデータブロックで構成される。
    • 追加 BLOB:ブロック BLOB と同様にブロックで構成される。追加操作用に最適化されている。仮想マシンのデータのログ記録などのシナリオに最適。
    • ページ BLOB:最大 8TB のランダムアクセスファイルを格納可能。Azure 仮想マシン用のディスクとして機能する仮想ハードドライブ(VHD)ファイルが格納される。
Files ストレージ クラウドまたはオンプレミスのデプロイ用のマネージドファイル共有。
業界標準の Server Message Block(SMB)プロトコルを介してアクセスできる、完全に管理されたファイル共有を提供。クラウドまたはオンプレミスにある Windows、macOS、および Linux に同時にマウント可能。
Queue ストレージ アプリケーションコンポーネント間の信頼性の高いメッセージングのためのメッセージングストア。
HTTP または HTTPS を使用した認証された呼び出しを介して世界中のどこからでもアクセスできる大量のメッセージを格納するためのサービス。
キューの1つのメッセージの最大サイズは 64KB で、1つのキューには、ストレージアカウントの合計容量の上限に達するまで、数百万のメッセージを格納可能。
Table ストレージ 構造化データのスキーマレスストレージのための NoSQL ストア。構造化データを扱うことが可能。
仮想マシンの診断ログは Azure Table Storage を使用している。
     
  • Blob ストレージ
    大容量のデータや、ファイルデータ(.log、.ppt、.pdf、etc)をそのままため込むシステム、日付指定やそのままファイルをダウンロードするようなシステムに向いています。
    ストレージアカウント内にコンテナーを作成してファイルを管理する場合がほとんどです。
    ディレクトリ設計と同じく、ストレージアカウント内の設計も実施する場合が多いです。

    Blob は3種類ありますが、用途別に選定するのが良いです。
       
    • ブロック BLOB :汎用的に使用可能。ファイルを置くのであればコレを使う。
    •    
    • 追加 BLOB :ログ書き込みに特化。
    •    
    • ページ BLOB :仮想マシンのディスク用。

    【参考: Azure Blob Storage の概要】
    https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-blobs-introduction
  •  
  • Files ストレージ
    ファイルサーバーのように利用したいシステムに向いています。Azure Storage Explorer を使うことで、エンドユーザーも利用可能です。

    便利そうですが、セキュリティ部分を考えると、まだオンプレのファイルサーバーと同じようには使用できないように思われます。(例.ファイル共有用のポートを外部に向けて開ける必要がある→社内セキュリティポリシー的に許されない、等)

    【参考: Azure Files とは】
    https://docs.microsoft.com/ja-jp/azure/storage/files/storage-files-introduction
  •  
  • Queue ストレージ
    Web サーバーとバッチサーバーが連携するようなシステムに向いています。Web サーバーからのキュー処理 → リクエストキューのデータが保存される場合に使用します。
    最近はあまり使用しているのを聞いたことがないです。サードパーティー製品や Azure Cache for Redis を使うことが多いと考えられます。

    【参考:キューの概要】
    https://docs.microsoft.com/ja-jp/azure/storage/queues/storage-queues-introduction
  •  
  • Table ストレージ
    Key-Value 形式、高速アクセス、Web 上で検索して画面表示するようなシステムに向いています。
    最近では Azure Table Storage の代わりに Azure Cosmos DB を推している模様です。

    【参考: Azure の Table Storage の概要】
    https://docs.microsoft.com/ja-jp/azure/storage/tables/table-storage-overview

ディスクストレージとの違い

ディスクストレージは、前述した<ストレージサービスの種類>に記載した通り、Blob ストレージ内のページ Blob を使用しています。ディスクストレージとそれ以外のストレージサービス(ページ Blob 以外)の違いについては、以下、Azure のブログにある図が分かりやすいです。

【参考: Azure ディスクストレージの種類(2018年6月現在)】
https://jpaztech1.z11.web.core.windows.net/Azureディスクストレージの種類(2018年6月現在).html

上記ブログにある図(ディスクストレージ)と、ディスクストレージ以外のストレージを比較すると、以下のような図になると思われます。

<ディスクストレージとディスクストレージ以外のストレージの構成比較>

ディスクストレージとディスクストレージ以外のストレージの構成比較

     
  • ディスクストレージ
    ディスクストレージの特徴は、管理ディスクか非管理ディスクのどちらかを選択する必要がある点です。管理ディスクと非管理ディスクの違いについては、上記ブログに記載があります。現状、制約がなければ管理ディスクを選択します。
    非管理ディスクの場合のみ、ストレージアカウントの種類を選択します。

    また、ディスクの種類に SSD を選択できるのが特徴です。ディスク以外のストレージは、Standard HDD しか選択できません。
  •  
  • ディスク以外のストレージ
    ディスク以外のストレージは、管理ディスク・非管理ディスクの概念がありません。すぐストレージアカウントの種類を選択します。

おわりに

今回の調査 → まとめで、Azure Storage 周りの理解が深まりました。
Azure Storage は、Azure 上にデータを保存する際にほぼ必須となるリソースです。
仕様を確認し、適切な用途で使用することが、良いシステムを作る第一歩だと思います。

皆さんも、Azure Storage を活用していきましょう!



次回予告
  • Azure Backup のインスタンスリストア機能とは


【総合】お問い合わせ

ソリューションに関する全般的なお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録