Cloud Service
Azure Blob Storage
事実上無制限・高耐久のオブジェクトストレージ。静的サイト配信からバックアップ、データレイクまで何でも入る。AWS の Amazon S3 に相当する Azure の基本ストレージ。
- 1.ファイルを無制限に放り込める高耐久オブジェクトストレージ。
- 2.保存量に加えトランザクションや取り出しにも課金される。
- 3.アクセス頻度で層を使い分け、配信は CDN 併用が定石。
解決する課題
サーバーのディスク容量や物理的な冗長化を気にせず、大量の非構造化データを安全に保管できます。
- ストレージアカウント単位で事実上無制限にファイルを保存
- 既定で複数のフォールトドメインへ複製(LRS)、設定により別リージョンへも自動複製(GRS)
- HTTP(S) で直接アクセスでき、静的サイトやメディア配信にそのまま使える
- アクセス層(Hot / Cool / Cold / Archive) でアクセス頻度に応じてコストを最適化
主要概念と用語
- ストレージアカウント: Blob/Files/Queues/Tables をまとめる最上位の名前空間。名前はグローバルで一意(
https://<account>.blob.core.windows.net) - コンテナー: BLOB を入れる入れ物(S3 のバケットに相当)。アカウント内に複数作成
- BLOB(オブジェクト): 保存する実体(データ+メタデータ)。3種類ある
- ブロック BLOB: 一般的なファイル/オブジェクト用。最大約 190.7 TiB
- 追加 BLOB: ログなど末尾追記に最適化
- ページ BLOB: ランダムアクセス用。マネージドディスクの実体(最大 8 TiB)
- アクセス層: Hot / Cool / Cold / Archive。保存コストと取り出しコスト/レイテンシのトレードオフ
- 冗長性オプション: LRS / ZRS / GRS / GZRS / RA-GRS。どこまで複製するか
- 階層型名前空間(HNS): 有効化すると Azure Data Lake Storage Gen2 として、本物のディレクトリと POSIX 風 ACL が使える
仕様・制限・クォータ
- 1ブロック BLOB は最大約 190.7 TiB(50,000ブロック × 最大4000 MiB)
- ストレージアカウントの既定容量上限は 5 PiB(申請で拡張可能)
- 既定で 匿名公開は不可(ストレージアカウントの「BLOB への匿名アクセスを許可」が既定で無効)
- 読み取り/書き込み/削除は強い整合性(書き込み後ただちに最新が読める)
- コンテナー名・BLOB 名はパス文字列。「フォルダ」は HNS 無効時は見かけ上の表現
内部の仕組み
Blob Storage はキー(コンテナー名+BLOB 名)から実体を引く分散オブジェクトストアです。データはまずローカルリージョン内で 3つのコピー(LRS)に冗長化され、これが高耐久の基盤になります。HNS が無効なフラット名前空間では images/2026/cat.png のような名前は単なるキーで、/ はディレクトリ風に見せるための区切り文字にすぎません。
冗長性オプションによって複製範囲が変わります。
- LRS(ローカル冗長): 単一データセンター内で3コピー
- ZRS(ゾーン冗長): リージョン内の3つの可用性ゾーンへ同期複製
- GRS(地理冗長): プライマリで LRS、さらに数百km離れたセカンダリリージョンへ非同期複製
- GZRS: プライマリで ZRS、加えてセカンダリリージョンへ複製(最も堅牢)
- RA-GRS / RA-GZRS: 上記に加えセカンダリからの読み取りを許可
GRS の16ナインは耐久性(データを失わない確率)であり、可用性(アクセスできる割合)とは別指標です。さらにセカンダリへの複製は非同期のため、フェールオーバー時に直近の書き込みが失われる可能性(RPO > 0)があります。RPO を 0 にしたいなら同期複製の ZRS を検討します。
設計パターン / ベストプラクティス
- 静的サイト配信: Blob の「静的 Web サイト」機能 + Azure CDN / Front Door(このパターンは S3 + CloudFront に相当)
- データレイク: HNS を有効化した ADLS Gen2 に生データを集約し、Synapse / Databricks / Fabric で分析
- イベント駆動: BLOB 作成を Event Grid で検知し、Azure Functions を起動(サムネ生成・ETL など)
- ライフサイクル管理: 一定期間アクセスのない BLOB を Hot → Cool → Cold → Archive へ自動移行し、最終的に削除
- 不変ストレージ(Immutable / WORM): 改ざん防止が必要なログ・証跡に対し、時間ベース保持またはリーガルホールドを適用
運用・監視・トラブルシュート
- Azure Monitor / Storage の Metrics で容量・トランザクション・レイテンシ・可用性を監視
- 診断設定 + Storage Analytics ログでアクセス監査(S3 Server Access Logging 相当)
- AzCopy で大量データの高速コピー/同期/移行
- 「403 / AuthorizationFailure」は RBAC ロール未割り当て・SAS の期限切れ/権限不足・ネットワーク規則(ファイアウォール) が大半。「404」はコンテナー名や BLOB パスのミスを疑う
コスト
「保存量(GB)」だけでなく、「トランザクション数」「取り出し(読み取り)」「データ転送(下り)」にも課金されます。アクセス頻度でアクセス層を使い分けます。
| アクセス層 | 想定アクセス | 特徴 |
|---|---|---|
| Hot | 高頻度 | 保存単価は高い/取り出しは安い。標準・低レイテンシ |
| Cool | 低頻度(30日以上保持) | 保存安い/取り出し課金あり。即時アクセス可 |
| Cold | まれ(90日以上保持) | Cool よりさらに保存安い/取り出しは高い。即時アクセス可 |
| Archive | アーカイブ(180日以上) | 最安。オフライン。読むにはリハイドレート(数時間)が必要 |
セキュリティ
- 匿名公開を無効(ストレージアカウント既定)にして意図しない公開を防ぐ
- アクセス制御は Microsoft Entra ID + RBAC(例: Storage Blob Data Reader/Contributor)を基本とし、最小権限を徹底。一時的な委譲にはユーザー委任 SAS(アカウントキー不要)を使う
- 保存時暗号化 SSE(Microsoft マネージドキー、既定で常時有効)、必要に応じ Key Vault のカスタマーマネージドキー(CMK)。転送時は TLS を強制(「セキュア転送が必須」を有効化)
- プライベートエンドポイントでストレージをプライベート IP 化し、パブリックインターネットからの到達を遮断
アカウントキーをアプリに直書きしたり、コンテナーを匿名公開にして配信するのは NG。アカウントキーが漏れるとアカウント全体を掌握されます。アプリからはマネージド ID + RBAC、一時共有はユーザー委任 SAS(短い有効期限)、配信は CDN / Front Door を使い、ストレージはプライベートのまま安全に公開します。
関連サービス・比較(AWS との対応)
| 観点 | Azure Blob Storage | Amazon S3 |
|---|---|---|
| 位置づけ | Azure の基本オブジェクトストレージ | AWS の基本オブジェクトストレージ |
| 入れ物の単位 | ストレージアカウント>コンテナー | バケット |
| アクセス層 | Hot / Cool / Cold / Archive | Standard / Standard-IA / Glacier 系 |
| 地理冗長 | GRS / GZRS(既定で選択可) | CRR(クロスリージョンレプリケーション) |
| 権限付与 | Entra ID + RBAC / SAS | IAM / バケットポリシー |
| データレイク | ADLS Gen2(HNS 有効化) | S3 + Lake Formation / Athena |
| イベント連携 | Event Grid → Functions | S3 Event → Lambda |
ハンズオン / CLI例
# リソースグループを作成
az group create --name demo-rg --location japaneast
# ストレージアカウントを作成(地理冗長 GRS、TLS1.2 必須、匿名公開は無効)
az storage account create \
--name mystorageacct2026 \
--resource-group demo-rg \
--location japaneast \
--sku Standard_GRS \
--kind StorageV2 \
--min-tls-version TLS1_2 \
--allow-blob-public-access false
# コンテナーを作成(Entra ID 認証を使用)
az storage container create \
--name media \
--account-name mystorageacct2026 \
--auth-mode login
# ファイルをアップロード(アクセス層を Cool に指定)
az storage blob upload \
--account-name mystorageacct2026 \
--container-name media \
--name index.html \
--file ./index.html \
--tier Cool \
--auth-mode login
# 暗号化の状態を確認
az storage account show \
--name mystorageacct2026 \
--resource-group demo-rg \
--query "encryption.services.blob" -o json
Azure Service
Azure Blob Storageを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ストレージ
比較で見る軸
クラウド: Azure / カテゴリ: ストレージ / 難易度: basic
導入後に効く点
保存量に加えトランザクションや取り出しにも課金される。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Azure
- カテゴリ
- ストレージ
- 難易度
- basic
- 関連資格
- —
- 設計柱
- reliability / security / cost / performance
判断チェックリスト
- 自社の用途が「ストレージ / reliability」に近いか確認する。
- 強みである「ファイルを無制限に放り込める高耐久オブジェクトストレージ。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。
他クラウドの同等サービス
役割が近いサービスです。設計の置き換えや比較検討の参考に。