はじめに
本記事では、Azure のオブジェクトストレージサービス「Blob Storage」について、その基本的な構成要素や活用シーン、レプリケーション方式などを詳しく解説します。
オンプレミスからの大容量データ移行やバックアップ保管、世界中からのアクセスを安定して提供する手段を探している方に向けて、Azure Blob Storage のメリットや導入メリットをわかりやすく紹介します。
クラウドでのストレージ運用を検討している方は、ぜひ最後までご覧ください。
Blob Storage とは
「Azure」が提供するオブジェクトストレージサービスです。オブジェクトストレージとは、ファイルストレージのようなディレクトリ構造を持たず、一意のIDによって管理するストレージを指します
Blob Storageでは、格納するデータを「BLOB」、BLOBを格納する入れ物を「コンテナー」と呼びます。
以下のような用途に利用されます。
- バックアップ: データベースやシステムのバックアップ
- メディアファイルの格納: 画像、動画、音声ファイル
- ログデータ: アプリケーションのログや監視データ
引用元
Azure Blob Storage の主要なコンポーネント
- ストレージアカウント
Azure Blob Storageは、ストレージアカウントの一部として管理されます。ストレージアカウントは、データを保存するための基本的なコンテナです。
ストレージアカウントを取得することで、Azure Storageのデータオブジェクトに対して一意の名前空間が提供され、世界中のどこからでもデータへアクセスが可能となります。
アカウントの種類は大きく3種類存在します。
-
汎用v2アカウント
BLOB、ファイル共有、キュー、テーブルを網羅したStandardタイプのアカウント
-
ブロックBLOBストレージアカウント
ブロックBLOB、追加BLOBに特化したPremiumタイプのアカウント
-
ページBLOBストレージアカウント
ページ BLOBに特化したPremiumタイプのアカウント
-
コンテナ
コンテナは、Blobをグループ化するための単位です。ストレージアカウント内に複数のコンテナを作成することができます。コンテナ内にBlobが格納されます。
-
Blob
Blobは、実際に保存されるデータの単位です。各Blobは、指定されたコンテナ内に保存され、アクセスや管理が可能です。
以下の3種類があります。
-
ブロックBLOB
個別管理可能なデータブロックで構成されており、ドキュメントやメディアファイルなど、大量のバイナリデータを効率的にアップロードするのに適しています。
最大で約190.7 TiB のデータが格納できます。
-
追加Blob
ブロックBLOB同様、個別管理可能なデータブロックで構成されており、仮想マシンのデータログや監視ファイルの記録などの追加的な操作に適しています
-
ページBLOB
Azure仮想マシン用のディスクとして用いられます。最大8TBのランダムアクセスファイルを格納できるため、頻繁に読み取り操作や書き込み操作をおこなうケースでの利用が適しています。
引用元
また、Blob Storageは、アクセスレベルに応じて3つの異なるアクセス層を提供します。
- Hot: 頻繁にアクセスされるデータ向け
- Cool: あまりアクセスされないが、長期間保存が必要なデータ向け
- Archive: ほとんどアクセスされない、アーカイブデータ向け
レプリケーション方式
Azure Blob Storageでは、冗長性を確保するため、以下のような4種類のレプリケーション方式が採用されています。
- ローカル冗長ストレージ(LRS)
プライマリリージョンの単一データセンター内に3つのデータコピーを作成します。
- ゾーン冗長ストレージ(ZRS)
プライマリリージョンの異なるデータセンター内に3つのデータコピーを作成します。
- geo冗長ストレージ(GRS)
LRSを使用してプライマリリージョンの単一データセンター内に3つのデータコピーを作成し、さらにセカンダリリージョン内にもコピーを作成します。
- geoゾーン冗長ストレージ(GZRS)
ZRSを使用してプライマリリージョンのプライマリリージョンの異なるデータセンター内に3つのデータコピーを作成し、さらにセカンダリリージョン内にもコピーを作成します。
メリット
- 世界中からアクセス可能
- 大量のデータを格納できる
- 可用性も99.9%以上と高い水準を維持している
- 安全なデータ移行が可能
- データへのアクセス頻度と保存期間に応じて、使用するストレージ層を分けられる
- 冗長性を確保するため、4種類のレプリケーション方式をサポートしている
resource "azurerm_resource_group" "example" {
name = "blob-sample"
location = "eastus"
}
resource "azurerm_storage_account" "example" {
name = "examplestorageacc"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
account_tier = "Standard"
account_replication_type = "LRS"
}
resource "azurerm_storage_container" "example" {
name = "blobcontainer"
storage_account_name = azurerm_storage_account.example.name
container_access_type = "private"
}
この Terraform コードはLRS 冗長性を持つストレージアカウントを作成し、その中にprivateアクセスのBlobコンテナを構築しています。
privateアクセスにすることで、インターネットから直接できずSASトークンやアカウントキーなどの認証情報がないとアクセスできない設定となります。
まとめ
本記事では、Azure Blob Storage の基本概念から主要なコンポーネント、レプリケーション方式までを詳しく解説しました。
ストレージアカウント、コンテナー、Blob の構成により、大容量データの安全な保管やグローバルなアクセスが実現できるほか、LRS、ZRS、GRS、GZRS といった多様なレプリケーションオプションで高可用性が担保されます。
また、Terraform を利用したシンプルなコード例を通じ、実際の環境構築が容易である点も強調しました。
これにより、オンプレミスからクラウドへの移行や、バックアップ、メディアファイルの管理など、さまざまなユースケースにおいて Azure Blob Storage の導入メリットが明確となります。
参考

備考
Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。
