Azureを利用していると必ずBlobストレージを利用しますが、Blobストレージ・ストレージアカウント・DataLakeStorageGen2など、色々と呼び方があるので、自分なりにまとめてみました。
Azure Storageとは
Azure StorageとはAzureのクラウドストレージソリューションの総称のことです。特定のサービスを示す言葉ではありません。また、AzureStorageはIaaSに分類されます。
AzureStorageデータサービスとストレージアカウントの関係性について、正しく理解しておくことが重要です。
Azure Storageデータサービス
Azure Blob/Azure FilesなどがAzure Storageデータサービスと呼ばれており、Azureで提供されるストレージサービスのことを、AzureStorageデータサービスと呼びます。
ストレージアカウント
Azure Storageデータサービスを利用するためには、ストレージアカウントと呼ばれるリソースを作成する必要があります。つまり、ストレージアカウントとは、AzureStorageデータサービスを利用するための箱になります。
AzureStorageデータサービス(Blobストレージなど)を利用するためにはストレージアカウントを作成し、作成したストレージアカウント内にAzureStorageデータサービスを作成する必要があります。1つのストレージアカウントに複数のデータサービスを作成することも可能です。
また、ストレージアカウントを作成する際、パフォーマンスを「Standard」か「Premium」かを選択します。Standardは汎用ストレージのことでHDDが利用されますが、PremiumはSSDが利用されます。また、汎用ストレージはv1とv2があり、現在ではv2が推奨です(v1は互換性のために残っているだけ)。
AzureStorageデータサービス
ストレージアカウントで利用可能な主要なAzure Storageデータサービスは下記の4種類になります(他のデータサービスを知りたい場合はAzureStorageデータサービスを参照)
AzureStorageデータサービス | 概要 |
---|---|
Azure BLOB | テキストおよびバイナリデータのためのオブジェクトストア。ビッグデータ分析に利用可能なDataLakeStorageGen2はこれに属する。AWSのS3にあたる。 |
Azure Files | SMB/NFS/REST APIでアクセス可能なフルマネージドのクラウドファイル共有サービス。要するにNAS。 |
Azure Queue | アプリケーション間の非同期メッセージキューを利用するときに利用する |
Azure Table | 半構造化データを格納可能なキーバリューストア。 |
Azure BLOBはAzure Import/Exportに対応していますが、Azure FilesはImportのみの対応です。また、QueueとTableはImport/Exportに非対応です。
AzureStorageデータサービスのアクセス層(階層構造)
アクセス層(DataLakeStorageGen2では階層型ストレージと呼ばれる)とは、アクセス頻度に応じてコスト最適化・パフォーマンス改善が可能な仕組みです。
すべてのAzureStorageデータサービスで利用できるわけではなく、AzureBLOBとAzureFilesで利用可能です。ただし、利用するBlobの種類(ブロック・追加・ページ)によって、利用できないアクセス層があります。また、汎用ストレージv1では利用できません。
下記はAzureBLOBのアクセス層です。特に、HotとCoolをオンラインアクセス層、Archivedをアーカイブアクセス層と呼びます。
アクセス層 | 概要 |
---|---|
Hot | 高頻度にアクセスするデータを保管するアクセス層 |
Cool | 最低30日間はアクセスしないデータを保管するアクセス層 |
Archived | 最低180日間はアクセスしないデータを保管するアクセス層 |
次に、AzureFilesのアクセス層です。
アクセス層 | 概要 |
---|---|
Premium | 唯一SSDで提供され、最も低遅延 |
トランザクション最適化 | トランザクション負荷が高いシステムで利用される |
Hot | 汎用的に利用可能で、最も一般的なアクセス層 |
Cool | 長期保存用のアクセス層 |
ストレージアカウントのパフォーマンスとサブタイプによる冗長性
ストレージアカウントを作成する際に指定するパフォーマンスの種類によって、利用できるAzureStorageデータサービスは異なります。下の表はそれぞれのパフォーマンスで何を利用できるかを示した表になります。
サブタイプとは、AzurePortalのストレージアカウントのページで表示されるタイプです。
パフォーマンス | サブタイプ | 利用可能なAzureStorageデータサービス |
---|---|---|
Standard(HDD) | StorageV2 | BLOB / Files / Queue / Table |
Premium(SSD) | BlockBlobStorage | BLOB |
Premium(SSD) | FileStorage | Files |
Premium(SSD) | StorageV2 | Blob(現在はマネージドディスクが使われるためほぼ利用されない) |
AzureStorageデータサービスの冗長性
冗長性は、パフォーマンスとサブタイプに応じて、設定できるパラメータが異なります。
パフォーマンス | サブタイプ | 利用可能な冗長性 |
---|---|---|
Standard(HDD) | StorageV2 | LRS / ZRS / GRS / RA-GRS / GZRS / RA -GZRS |
Standard(HDD) | Storage(v1は非推奨) | LRS / GRS / RA-GRS |
Premium(SSD) | BlockBlobStorage | LRS / ZRS |
Premium(SSD) | FileStorage | LRS / ZRS |
Premium(SSD) | StorageV2 | LRS |
各冗長性は下記のとおりです。アルファベットの頭文字を抑えておきましょう。ローカル(L)、ゾーン(Z)、リージョン(G)です。末尾のRSはRedundacy Storageであり、冗長ストレージという意味です。
- LRS (Local RS):同一データセンター内の3つのノードにデータを保存
- ZRS(Zone RS):同一リージョンの3つのデータセンターにデータを保存
- GRS(Geo RS):2つのリージョン(プライマリとセカンダリ)にデータを保存し、それぞれのリージョンの単一データセンター内の3つのノードにデータ保存する
- GZRS(Geo Zone RS):2つのリージョンにデータを保存し、それぞれのリージョンの3つのデータセンターにデータを保存する
- RA-GRS (Read-Access GRS):プライマリとセカンダリ両方に対してデータの読み取りが可能となり、負荷分散が可能となる。
AzCopyコマンド
AzCopyコマンドは、ストレージアカウントからファイルを取得したり、ストレージアカウントにBlobファイルを配置したりすることが可能なCLIツールです。
- azcopy copy:単一のファイル・ディレクトリをコピーする
- azcopy sync:2つのディレクトリを比較し同期を取ることが可能。常にソースディレクトリを基準に同期する