今回は、Azure Storageのうち、オブジェクトストレージ「Azure Blob Storage」と共有ファイルストレージ「Azure File Storage」を取り上げる。

 まず、Azure Blobについて解説する。Azure Blobは、Azureで最も広く使われている汎用的なオブジェクトストレージだ。ドキュメント、動画ファイル、バイナリーなどの非構造化データの格納に利用する。

 現在のAzure Blobには「Block Blob」「Page Blob」「Append Blob」という三つのバリエーションがある。いずれも、REST APIを持っており、httpでアクセスできる。さらに、名前付けルール、スナップショット、アクセス制御、サーバーサイド非同期コピーなどの共通機能を持つ。

 Page BlobとAppend Blobは、特定のワークロード、特定のアクセスパターンに最適化されているのが特徴だ。Page Blobは、ディスクのようにセクター単位のランダムアクセスに向く。用途は、VHD(Virtual Hard Disk)ベースの仮想ディスク。前号の2016年9月号で取り上げたAzure Diskの実体はPage Blogである。Append Blobは、ログ記録を想定したストレージで、オブジェクト末尾への追記に最適化されている。

Fileはサーバーの共有ストレージ

 Azure Fileは、Network Attached Storage(NAS)のマネージドサービスだ。米Microsoftが開発した、アプリケーション層の通信プロトコルSMB(Server Message Block)3.0/2.1でファイル共有を実現する。

 Azure Diskと違い、複数の仮想マシン(VM)から同時に利用できる。オンプレミス(自社所有)環境では、Windows、Linuxサーバー間でファイルサーバーを介しファイルを共有したり受け渡したりすることは一般的だが、これをAzureで実現できる。

 Azure Fileは、Azure Blob、Table、Queueと同じ技術を使っており、可用性、耐久性、スケーラビリティー、冗長化などは同等だ。

 仮想マシンにディスクとしてマウントできるという点でAzure Disk(Page Blob)と同じだが、Azure FileはゲストOSのネットワークインタフェース(NIC)を使う。ホストOSのNICを使うAzure Diskとは、この点が異なる。Azure FileはアプリケーションとNICを共有するので、アプリケーションによる負荷に性能が左右されやすい。

 Azure Diskと違って、ストライピング構成を取れないのに加え、Active Directoryによる認証、ACL(Access Control List)に対応していないという難点もある。さらにAzure File上のファイルにアクセスするには、Azure StorageのアカウントキーかShared Access Signature(SAS)が必要だ。どちらかを各アクセス元に配布しなければならず、多数のクライアントPCからアクセスするファイルサーバーとしての用途には向かない。

料金体系の異なるHotとCool

 Block BlobとAppend Blobには、「Hot Storage」「Cool Storage」という二つのアクセス層(サービス種別)がある。機能(API)と性能は同じで、SLA(Service Level Agreement)と価格体系が違う。

 Hotは冗長構成にしたときの読み込み・書き込みアクセスで99.9%の可用性が保証されるが、Coolでは99%(後述する「読み取りアクセスgeo冗長」の場合は、Hotが99.99%でCoolは99.9%)。高い可用性が求められるならHotである。

 価格については、HotとCoolで違う項目が三つある。ストレージコスト(格納料)、データアクセスコスト(読み込み・書き込みの転送料)、トランザクションコストだ。このうちデータアクセスコストはHotに適用されず、トランザクションコストはHotのほうが安い。一方、ストレージコストはCoolのほうが安価だ。読み込み・書き込みの多いケースはHot、少ないケースではCoolのほうが安い。

 HotとCoolは切り替えられるが、注意点がある。ストレージアカウント単位で行うPage Blobはサポートされない、CoolからHotへの切り替えには全容量分のCoolでの読み込み料金が発生する(HotからCoolへは無料)、といったことだ。