Azure Blob Storage の概要
Azure Blob Storage は、Microsoft のクラウド用オブジェクト ストレージ ソリューションです。 Blob Storage は、テキスト データやバイナリ データなどの大量の非構造化データを格納するために最適化されています。 非構造化データとは、特定のデータ モデルや定義に従っていないデータであり、テキスト データやバイナリ データなどがあります。
About Blob Storage
Blob Storage は、次の目的で設計されています。
- 画像またはドキュメントをブラウザーに直接配信する。
- 分散アクセス用にファイルを格納する。
- ビデオおよびオーディオをストリーミング配信する。
- ログ ファイルに書き込む。
- バックアップと復元、ディザスター リカバリー、アーカイブのためのデータを格納する。
- オンプレミス サービスまたは Azure ホステッド サービスで分析するデータを格納する。
ユーザーまたはクライアント アプリケーションは、世界のどこからでも、HTTP/HTTPS 経由で Blob Storage 内のオブジェクトにアクセスできます。 Azure Storage REST API、Azure PowerShell、Azure CLI、または Azure Storage クライアント ライブラリを使用して、Blob Storage 内のオブジェクトにアクセスできます。 各種言語に対応したクライアント ライブラリが用意されています。その例を次に示します。
また、クライアントは、SSH ファイル転送プロトコル (SFTP) を使用して Blob Storage に安全に接続し、ネットワーク ファイル システム (NFS) 3.0 プロトコルを使用して Blob Storage コンテナーをマウントすることもできます。
Azure Data Lake Storage Gen2 について
Blob Storage では、Microsoft のクラウド向けのエンタープライズ ビッグ データ分析ソリューションである Azure Data Lake Storage Gen2 がサポートされています。 Azure Data Lake Storage Gen2 では、階層型のファイル システムに加え、Blob Storage の利点が提供されます。その例を次に示します。
- 低コスト、階層型ストレージ
- 高可用性
- "強固" 整合性
- ディザスター リカバリー機能
Data Lake Storage Gen2 について詳しくは、「Azure Data Lake Storage Gen2 の概要」をご覧ください。
Blob Storage のリソース
Blob Storage には、3 種類のリソースがあります。
- ストレージ アカウント
- ストレージ アカウント内のコンテナー
- コンテナー内の BLOB
次の図に、これらのリソースの関係を示します。
ストレージ アカウント
ストレージ アカウントは、データ用の一意の名前空間を Azure 内に用意します。 Azure Storage 内に格納されるすべてのオブジェクトには、一意のアカウント名を含むアドレスが割り当てられます。 アカウント名と Blob Storage エンドポイントの組み合わせによって、ストレージ アカウント内のオブジェクト用のベース アドレスが形成されます。
たとえば、ストレージ アカウントの名前が mystorageaccount の場合、Blob Storage の既定のエンドポイントは次のようになります。
http://mystorageaccount.blob.core.windows.net
次の表では、Blob Storage でサポートされているさまざまな種類のストレージアカウントについて説明します。
ストレージ アカウントの種類 | パフォーマンス レベル | 使用 |
---|---|---|
汎用 v2 | Standard | BLOB、ファイル共有、キュー、テーブル用の Standard タイプのストレージ アカウント。 Blob Storage または他のAzure Storage サービスの1つを使用するほとんどのシナリオで推奨されます。 |
ブロック BLOB | Premium | ブロック BLOB と追加 BLOB 用の Premium タイプのストレージ アカウント。 トランザクション レートが高く、比較的小さなオブジェクトが使用されるシナリオ、またはストレージ待ち時間が一貫して短いことが要求されるシナリオに推奨されます。 Premium ブロック BLOB アカウントのワークロードの詳細については、こちらをご覧ください... |
ページ BLOB | Premium | ページ BLOB に特化した Premium Storage アカウントの種類。 Premium ページ BLOB アカウントのワークロードの詳細については、こちらをご覧ください... |
ストレージ アカウントの詳細については、「Azure ストレージ アカウントの概要」を参照してください。 レガシストレージアカウントの種類の詳細については、「 レガシストレージアカウントの種類」を参照してください。
ストレージ アカウントの作成方法については、「ストレージ アカウントの作成」を参照してください。
Containers
ファイル システムのディレクトリと同じように、コンテナーを使用して BLOB のセットを整理できます。 ストレージ アカウントに含めることができるコンテナーの数には制限がなく、1 つのコンテナーに格納できる BLOB の数にも制限はありません。
コンテナー名は、コンテナーまたはその BLOB をアドレス指定するために使用される一意の URI (Uniform Resource Identifier) の一部になるため、有効な DNS 名である必要があります。 コンテナーに名前を付けるときは、次の規則に従います。
- コンテナー名の長さは 3 ~ 63 文字にする必要があります。
- コンテナー名は英文字または数字で始まり、英小文字、数字、ダッシュ (-) 文字のみを含めることができます。
- 2 つ以上の連続するダッシュ文字は、コンテナー名には使用できません。
コンテナーの URI は次のようになります。
https://myaccount.blob.core.windows.net/mycontainer
コンテナーの詳細については、「Naming and Referencing Containers, Blobs, and Metadata」(コンテナー、BLOB、およびメタデータの名前付けと参照) を参照してください。
BLOB
Azure Storage では、3 種類の BLOB がサポートされています。
- ブロック BLOB には、テキストとバイナリ データが格納されます。 ブロック BLOB は、個別に管理できるデータ ブロックで構成されます。 ブロック BLOB は、最大約 190.7 TiB のデータを格納できます。
- 追加 BLOB は、ブロック BLOB と同様にブロックで構成されますが、追加操作用に最適化されています。 追加 BLOB は、仮想マシンのデータのログ記録などのシナリオに最適です。
- ページ BLOB には、最大 8 TiB のランダム アクセス ファイルを格納できます。 ページ BLOB は、仮想ハード ドライブ (VHD) ファイルを格納し、Azure 仮想マシン用のディスクとして機能します。 ページ BLOB について詳しくは、「Azure ページ BLOB の概要」をご覧ください
異なる種類の BLOB の詳細については、「Understanding Block Blobs, Append Blobs, and Page Blobs」(ブロック BLOB、追加 BLOB、ページ BLOB について) をご覧ください。
BLOB の URI は次のようになります。
https://myaccount.blob.core.windows.net/mycontainer/myblob
または
https://myaccount.blob.core.windows.net/mycontainer/myvirtualdirectory/myblob
BLOB に名前を付けるときは、次の規則に従います。
- BLOB 名には、任意の文字の組み合わせを含めることができます。
- Azure Storage の BLOB について、BLOB 名は 1 ~ 1,024 文字で指定する必要があります。
- BLOB 名では大文字と小文字が区別されます。
- URL の予約文字は適切にエスケープしてください。
- BLOB 名を構成するパス セグメントの数には制限があります。 パス セグメントは、ディレクトリまたは仮想ディレクトリに対応する連続する区切り文字 (例えば、スラッシュ
/
など) の間の文字列です。 次のパス セグメントの制限は、BLOB 名に適用されます:- ストレージ アカウントで階層型名前空間が有効になっていない 場合、BLOB 名を構成するパス セグメントの数は 254 を超えることはできません。
- ストレージ アカウントで階層型名前空間が有効になっている場合、BLOB 名を構成するパス セグメントの数が 63 を超えることはできません (コンテナー名とアカウント ホスト名のパス セグメントを含む)。
Note
ドット (.)、スラッシュ (/)、またはこの 2 つの文字のシーケンスあるいは組み合わせで終わる BLOB 名は使用しないでください。 パス セグメントはドット (.) で終わる必要はありません。
BLOB 名前付けの詳細については、「コンテナー、BLOB、およびメタデータの名前付けと参照」を参照してください。
Blob Storage にデータを移動する
既存のデータを Blob Storage に移行するためのソリューションは多数存在します。
- AzCopy は Windows と Linux 用の使いやすいコマンド ライン ツールであり、Blob Storage 間、コンテナー間、またはストレージ アカウント間でデータをコピーします。 AzCopy の詳細については、「AzCopy v10 を使用してデータを転送する」をご覧ください。
- Azure Storage Data Movement Library は、Azure Storage サービス間でデータを移動するための .NET ライブラリです。 AzCopy ユーティリティは、Data Movement Library を使用して構築されています。 詳細については、Data Movement Library の参照ドキュメントをご覧ください。
- Azure Data Factory では、Azure リソースのアカウント キー、Shared Access Signature、サービス プリンシパル、またはマネージド ID を使用した Blob Storage 間のデータのコピーがサポートされています。 詳しくは、「Azure Data Factory を使用した Azure Blob Storage との間でのデータのコピー」をご覧ください。
- Blobfuse は Azure Blob Storage 用の仮想ファイル システム ドライバーです。 Linux ファイル システムでは、BlobFuse を使用して、お客様のストレージ アカウント内の既存のブロック BLOB データにアクセスできます。 詳細については、「BlobFuse2 Preview とは (プレビュー)」を参照してください。
- Azure Data Box サービスは、大規模なデータセットやネットワーク上の制約によって有線でのデータのアップロードが非現実的になったときに、オンプレミスのデータを Blob Storage に転送するために使用できるサービスです。 データのサイズに応じて、Azure Data Box Disk、Azure Data Box、または Azure Data Box Heavy デバイスを Microsoft に要求できます。 その後にデータをそれらのデバイスにコピーし、Microsoft に送り返すことで、Blob Storage にアップロードすることができます。
- Azure Import/Export サービスを使用して、お客様が用意したハード ディスクを使用して、大量のデータをお客様のストレージ アカウントにインポートまたはお客様のストレージ アカウントからエクスポートすることができます。 詳細については、「Azure Import/Export サービスとは」を参照してください。