お世話になっております、日商エレの佐藤です。
ITプラットフォーム事業本部でコンピューティング系のプリセールスを担当しています。
今回はAzureのオブジェクトストレージであるBLOB(ブロブ)ストレージを使ってみたいと思います。昨今、オブジェクトストレージの技術は、Webサービスの写真、動画、テキストの保管場所として多く利用されています。身近に利用しているサービスとして、Facebook、Twitter、InstagramなどのSNSやNetflixなどの動画配信サービスが有名ですね。アプリケーションからの利用を意識したストレージと言えます。

※画面データは2018/01/12 時点のものです。



1.オブジェクトストレージとは?

オブジェクトストレージは、大量のデータの書き込み、読み出しを得意とし、容量の拡張性(スケーラビリティ)に優れています。データへのアクセス方法はRESTful API(HTTP通信)を使い、データは分散保存されます。データをオブジェクトという単位で扱うストレージ アーキテクチャーです。1つのオブジェクトは、データとメタデータが結合されています(写真、動画、テキストなどのデータとデータを管理するID情報を持つメタデータ)。データをフラットな空間に格納するため、ディレクトリ構造は持ちません。オブジェクトを格納する入れものを、コンテナーもしくはバケットと呼ばれます(Azureではコンテナーと呼んでいます)。このコンテナーは複数もつこともできます。

オブジェクトストレージ

2.ファイルストレージと何が違うの?

ファイルストレージとオブジェクトストレージの仕組み違いを分かりやすく説明するたとえとして駐車場を使います。1つのデータを1台の車だと考えてください。違いを一言でいうと、下図の通り 車をどこに駐車したか(データをどこに格納したか)を意識するか否かですね。

ファイルストレージ 自走式 立体駐車場
大規模商業用施設にある立体駐車場で運転手が
自ら運転し駐車するタイプ。どこに停めたかを覚えておく必要がある。
オブジェクトストレージ 機械式(タワー型) 立体駐車場
車を収納可能なエレベーターに駐車。IDを覚えていれば、
どこに停めたか意識する必要ない。

ファイルストレージとオブジェクトストレージの違い

3.オブジェクトストレージの向き不向き

ここまでの説明を聞くと、オブジェクトストレージ万能じゃない!と思ってしまいますが何事も得意不得意はあるものです。
先の例にあるとおり、容量が増え続ける写真、動画、テキストやログ、バックアップデータなどの保存に向いています。
一方で、高いI/O性能が要求されるデータベースやトランザクション処理、ログのリアルタイム更新などのデータの更新処理としては、不向きなストレージと言えます。利用用途に合わせてストレージを使い分けましょう。

4.Azure BLOBストレージについて

前置き長くなりましたので、そろそろ本題に入っていきたいと思います。Azureストレージで提供されているサービスは、BLOB、Table、Queue、Fileの4種類あり、BLOBストレージはそのひとつとなります。

BLOB オブジェクトストレージ 写真、動画、テキスト、ログなどの
保存を得意とするストレージ
Table NoSQLデータベース リレーショナルを持たない構造化ストレージ
Queue キューストレージ(メッセージング) メッセージ交換のためのストレージ
File ファイルストレージ データ格納・ファイル共有

Azureストレージ

ストレージ アカウント内のデータは、持続性と高可用性を保証するため、レプリケートされます。 レプリケーション オプションは4つ用意されております。オプションの詳細については以降の「ストレージアカウント作成」で説明しますが、簡単に言うとローカル冗長化ストレージ(LRS)に代表されるリージョン内のレプリカされる仕組みや、地理冗長化ストレージ(GRS)等の別リージョンへさらにレプリカを作る仕組みがあります。レプリケーションのイメージは下図の通りです。

Azure BLOB Storage

また、アクセスのレベル属性として、頻繁にアクセスされるデータに適した「ホット」か、データへのアクセス頻度は低いが長期保管するデータに適した「クール」が選択できます。ストレージGBの価格は、クール、ホットの順に高くなり、データへのアクセスにかかる費用は、逆にホット、クールの順に高くなります。データアクセスパターンがわからない場合、まず最低でも1ヶ月はホットを試してから実際の使用状況に応じて、クールに変更した場合に費用を節約できるかどうかを判断されることをMicrosoft社は推奨しています。コストについてはAzure料金計算ツールで事前にシミュレーションされることをお勧めします。

5.BLOBストレージ作成手順

まず、最初にAzureストレージ アカウントを作成します。

(1)Azure Portalにログインし、左上の「新規」 – 「Storage」 – 「ストレージ アカウント – Blob、File、Table、Queue」の順にクリックします。

Azure Portal

(2)ストレージアカウントを作成します

Azure Portalストレージアカウントの作成

【名前】
ストレージアカウント名を入力します。ここで作成したストレージアカウント名がURLとして利用されますのでユニークな名前である必要があります。

【デプロイモデル】
利用が推奨されている「Resource Manager」を選択します。

【アカウントの種類】
「Storage(汎用v1)」「StorageV2(汎用v2)」「BLOBストレージ」 の3つの種類からアカウントは選択できます。汎用v1とv2の違いは、汎用v2にはアクセス層(クール、ホット)が選択可能です。汎用v1・v2とBLOBストレージの違いは、汎用v1とv2アカウントはBLOB、Table、Queue、Fileの利用が可能ですが、BLOBアカウントはBLOBのみ利用可能です。

【パフォーマンス】
「Standard」と「Premium」の2種類から選択できます。StandardはHDDタイプ、PremiumはSSDタイプとなります。今回は検証のため、Standardを選択します。

【レプリケーション】
レプリケーションは以下の4種類から選択可能です。

レプリケーションの方法 ローカル冗長
ストレージ(LRS)
ゾーン冗長
ストレージ(ZRS)
地理冗長
ストレージ(GRS)
読み取りアクセス
地理冗長ストレージ
データコピー数 <計3つ>
1リージョン内に3つ
(プライマリ)
<計3つ>
1リージョン内に3つ
(プライマリ)
<計6つ>
プライマリリージョン内に3つ
セカンダリリージョン内に3つ
<計6つ>
プライマリリージョン内に3つ
セカンダリリージョン内に3つ
複数のデータセンター間での
データのレプリケート
いいえ 可能 あり あり
プライマリ拠点に加えて
セカンダリ拠点からも
データの読み取り可能
いいえ いいえ いいえ あり

 

【アクセス層】
「クール」「ホット」の2種類から選択できます。クールはアクセス頻度の低いデータ向け、ホットは頻繁にアクセスされるデータ向け

【安全な転送が必須】

暗号化使用の有効か無効かを選択します。例えば、無効の場合、HTTPS/HTTP通信の転送が可能です。
有効な場合、HTTPS通信の転送は可能です。HTTP通信は無効となります。以後、無効化はできません。

【サブスクリプション】
プルダウン選択が従量課金のみであったため、従量課金を選択します。

【リソースグループ】
今回は新規にリソースグループを作成します。

【場所】
プライマリリージョンとして「東日本」を選択します。レプリケーションでGRSを選択していますのでセカンダリリージョンは西日本が自動的に選択(バックグラウンドで処理されます)されます。

【仮想ネットワーク】
今回は検証用なので、無効を選択します。

【作成】
ストレージアカウント作成が完了したら「作成ボタン」をクリックします。

(3)ストレージ アカウント作成完了すると通知が届きます。「リソースに移動」をクリックします。

ストレージ アカウント作成完了通知

(4)ストレージアカウントの概要が表示されます。アカウントの種類として汎用V2を選択したので、4種類のサービスが表示されています(BLOBストレージのアカウントを選択した場合はBLOBのサービスしか表示されません)。
各サービスは即利用可能ですが、今回はBLOBストレージを作成するため、次のステップであるコンテナーを作成していきますので、サービス内の「BLOB」をクリックします。

ストレージアカウントの概要

(5)コンテナーを作成するため、上段の「+コンテナー」をクリックします。
コンテナーは複数作成できますので、今回作成するコンテナー名は “container01″とします。
パブリック アクセス レベルとして3つの種類から選択できます。コンテナーとそのBLOBに対する匿名のパブリック読み取りアクセスを有効にすることができます。そうすることで、アカウント キーを共有せず、Shared Access Signature (SAS) も必要とせずに、これらのリソースに対する読み取り専用のアクセスを付与できます。

  • プライベート(匿名アクセスはありません)
  • BLOB(BLOB専用の匿名読み取りアクセス)
  • コンテナー(コンテナーとBLOBの匿名読み取りアクセス)

コンテナーの作成

(6)”container01″というコンテナーが作成されました。BLOBにテストデータを格納するため、「container01」をクリックします。

作成されたコンテナー選択

(7)データをアップロードします。
「アップロード」 – 「ファイル選択」 – 「開く」 – 「アップロード」の順にクリックします。

データのアップロード

(8)アップロードが完了すると以下のようにファイル名が表示されます。

アップロード完了画面

(9)Azure Storage Explorerを使うとより効率的なストレージ管理が行えます。Windows、Mac、Linux に対応しています。FTPクライアントソフトのように、アップロードやダウンロードが簡単に行えます。Azure Storage Explorerは、Microsoft社から無償ダウンロード可能です。是非、お試しください。

Azure Storage Explorer


この記事を読んだ方へのオススメコンテンツはこちら