BlobStorageの1つ「ページBlob」の利用
1.概要
Azureストレージは「Azure」を構成する3つの基本コンポーネント(「ファブリック」「ストレージ」「コンピューティング」)の1つで、データの格納場所を提供するサービスです。
クラウドサービス利用形態の1つである「PaaS」を基として、拡張性、可用性、耐久性の3点を兼ねそろえたストレージとされています。
Azureストレージから提供されるストレージのインフラストラクチャーは、提供主の責任で管理・保守が行われるため、ユーザー側に対する運用のコスト軽減にもなっております。
2.4つのストレージサービス
Azureストレージでは「Blob Storage」「Queue Storage」「File Storage」「Table Storage」の4つのストレージサービスを行っております。
今回はその中の1つである「Blob Storage」に焦点を当てていきます。
「Blob」とは「Binary Large Objects」の頭文字を取った略称です。Azureにおけるストレージサービスの1つです。主にドキュメント、静止画、動画等のソーシャルメディア・コンテンツをはじめ、webアプリのテキスト、イメージ等のバイナリーファイルの格納も行っている一般的なストレージタイプです。
Blobはオブジェクトストレージで構成された「単一障害点のないスケーラブルなストレージ」です。
簡単にいうと非構造化オブジェクトをフラットなストレージ空間にユニークにIDを付与して管理するストレージです。
オブジェクトストレージは、ファイルストレージのような「階層構造」を持っておらず、ユニークなIDで管理で管理されているので、ネットワークに接続が可能なストレージであれば、オブジェクトストレージとして利用可能です。つまりは、離れた場所からでもアクセスでき、安価なストレージサーバーを足すことで並列化することもできます。
「Blob Storage」には「ブロック Blob」「追加 Blob」「ページ Blob」の3種類があり、Blob作成時にこの3種類のいずれかを用途に合わせて指定できます。なお、指定したら、変更はできませんので注意が必要です。
1.ブロック Blob
ブロック Blobは、バックアップデータや、ドキュメント、各種メディアファイル等の格納に適したストレージです。
主に大量のデータを効率的にアップロードするのに最適で、ブロック Blobを構成する各ブロックは「ブロックID」で認識されています。各ブロックは子よあされている「サービスバージョン」で許可されているサイズまで異なるサイズに変換することができ、変更、作成は「Put block」操作を使用して一連のブロックを書き込んで行きます。完了したら「Put block List」操作を使用してブロックをBlobにコミットします。
また、ユーザーやクライアントアプリケーションは、世界のどんな場所からでも必要な時に必要な物を「HTTP/HTTPS」経由でストレージにアクセスが可能です。付け加えて、.NETやJava、Node.js等の各種言語にも対応したクライアントライブラリを使用しています。
2.追加 Blob
追加Blobは、ブロックBlobと同じブロックで構成され、追加操作用に最適化されています。
ブロック操作によって、Blobの末尾にのみ、ブロックが追加され、既存のブロックへの更新や削除はサポートされていません。また、ブロックBlobとは異なり、追加BlobのブロックIDは非公開となっています。
3.ページ Blob
ページ Blobはディスクストレージとも呼ばれ、Azureの仮想マシンのディスク、VHDファィルの格納先として使用します。
クラウドサービスの1つである「PaaS」を基としたディスクとして使用ができ、ランダムな書き込みサポートが最適化されています。利用できるサイズは最大で1TBまで拡大できます。また、仮想マシンのディスクバックアップは、ページ Blobによって実行されます。
Azureには、「Premium」と「standard」の2種類の持続性を持ったディスクストレージを採用しています。ページ Blob用は前者の「Premium Storage」を使用することで、一貫した高いパフォーマンスと短い待機時間を提供しております。
<ページ Blobのユース ケース>
Azureの「ページBlob」はクラウドサービスの1形態である「IaaS」のAzureディスクのプラットフォームのバックボーンです。AzureのOSとデータディスクはの両方は、仮想ディスクとして実装をしており、データそのものはAzure Storageプラットフォームにて永続的に仮想マシンに配信されていきます。
AzureディスクはHYPER-V VHD形式で永続化されて、Azure Storageに「ページBlob」という形で格納されます。つまり、Azure IaaS VMの仮想ディスクを使用するだけではなく、Azureの各サービスで利用されているクラウド形態「PaaS」や「DBaaS」のシナリオも実現して、高速でランダムな読み取りと書き込み操作を可能にしています。
<ページ Blobの機能>
- 1.豊富なREST API
- 2.同時アクセス
- 3.耐久性と高可用性
- 4.Azureへのシームレスな移行機能
ページBlobは、アドレス可能性、ステートレス性、接続性、統一インターフェースといった豊富なAPIのほかに共有アクセス、耐久性、セキュリティも提供している。
REST APIとリースメカニズムによって、複数のクライアントがページBlobにアクセスすることが可能です。
「Premium Storage」と「Standard Storage」はどちらも耐久性のあるストレージであり、ページ Blobのデータは耐久性および高可用性を確保するためにレプリケートされています。
Azureはデルタを保持するだけの増分スナップショットを低起用しています。この機能により、最初のコピーのコストはないため、バックアップのコストを大幅に削減できます。差分データを効率的な読み取りやコピー機能だけではなく、バックアップとディザスターリカバリーのエクスペリエンスにつなげられます。
<ストレージパフォーマンス>
Azure ブロックストレージは以下2つのパフォーマンスレベルがあります。
- 1.Standard
- 2.Premium
高容量かつ高スループットが最適化されています。
高いトランザクション率と一貫した1桁台のストレージ待機時間が最適化されています。
領域 | Standard パフォーマンス | Premium パフォーマンス |
利用可能なリージョン | すべてのリージョン | 一部のリージョン |
サポートされているストレージアカウント | 汎用 v2 , BlobStorage , 汎用 v1 | BlockBlobStorage |
高スループットブロックBlobのサポート | 4MiBを超えるMiB PutBlockかPutBlockのサイズ | 256KiBを超えるMiB PutBlockかPutBlockのサイズ |
3.まとめ
Azureを構成するコンポーネントの1つである「ストレージ」は、HTTP/HTTPS経由であればあらゆる場所で必要なデータを取り出したり、保存したりできます。
また、Azure ブロックBlob Storageは2種類のパフォーマンスレベルがあるため、利用するにあたっては高効率的なコストを実現できるオプションを選ぶことが重要になります。