4. Azureのストレージサービス
4.1. Azure Storage
Azure Storageはデータの保存のためのサービスで、利用目的により最適化されている。
サービス | 説明 |
---|---|
Azure Blob Storage | テキストやバイナリデータなどが保存できる。もっとも汎用的に使用される。 |
Azure Files | SMB/NFSといったインターフェイスからも利用できるサービス |
Azureキュー | メッセージキューとして利用されるストレージ形態 |
Azureテーブル | 構造化されたテーブル形式のデータ(NoSQL)を補完するための領域 |
Azure Disk Storage | AzureのVMから利用される仮想ハードディスク形式 |
4.1.1. Azure Storageの特徴
- 冗長オプションによる高い耐久性
- 利用目的、データ形式によるストレージ種別の選択
- データのセキュリティ保護/認証/認可
- フルマネージドサービス
冗長オプションによる高い耐久性
冗長オプション | 説明 | 対応 |
---|---|---|
ローカル冗長ストレージ(LRS) | 1つのリージョン1つのデータセンター内に3つのコピー | 全部 |
ゾーン冗長ストレージ(ZRS) | 1つのリージョンの3つの可用性ゾーンにコピー | Azure Disk Storage以外 |
Geo冗長ストレージ/読み取りアクセスGeo冗長ストレージ(GRS/RA-GRS) | プライマリリージョンの1つのデータセンターに3つ、セカンダリリージョンの1つのデータセンターに3つ | Azure Disk Storage以外 |
Geoゾーン冗長ストレージ/読み取りアクセスGeoゾーン冗長ストレージ(GZRS/RA-GZRS) | プライマリリージョンではゾーン冗長ストレージ、セカンダリリージョンでは1つのデータセンターに3つのコピー(計6つ) | Azure Disk Storage以外 |
データのセキュリティ保護
セキュリティ保護機能の有効化/無効化を決めることができる。
フルマネージドサービス
ハードウェアのメンテナンス、更新プログラムの適用などはAzure側が行う。
4.2. Azureストレージアカウント
Azure Storageでは、ストレージを作成するときに管理単位としてストレージアカウントを作成する。 ストレージアカウントにはいくつか種類があり、それぞれ要件が異なる。通常はStandardのレベルで問題ない。
4.2.1. ストレージアカウントの種類
種類 | 対象サービス | 冗長オプション | 用途 |
---|---|---|---|
Standard汎用v2 | BLOB,キュー,テーブル,Azure files | 全部 | Standardタイプのストレージアカウント |
PremiumブロックBLOB | BLOB | LRS, ZRS | ブロックBLOB用のストレージアカウント |
Premiumファイル共有 | Azure Files | LRS,ZRS | ファイル共有専用のPremiumタイプのストレージアカウント |
PremiumページBLOB | ページBlobのみ | LRS | ページBlob特化のPremiumタイプのストレージアカウント |
Standard汎用v1 | BLOB,キュー,テーブル,Azure files | LRS,GRS,RA=GRS | 最新の機能を利用できない。コストがやや高い |
Blob Storage | BLOB(ブロックBLOBのみ) | LRS,GRS,RA-GRS | Standardv2の使用が推奨 |
4.2.2. Azureストレージアカウントの操作
ストレージアカウントの作成と管理
ストレージアカウントはAzure PortalやPowerShellなどで作成する。 ストレージアカウントの作成と管理に関わる設計設定項目は以下の通り。
- 基本情報
- プロジェクトの詳細
- サブスクリプション
- リソースグループ
- インスタンスの詳細
- ストレージアカウントの名称
- 地域
- パフォーマンス
- 冗長性
- プロジェクトの詳細
- 詳細設定
- セキュリティ
- REST API操作の安全な転送を必須にする
- コンテナでのパブリックアクセスを有効化を許可する
- ストレージアカウントキーへのアクセスを有効にする
- TLSの最小バージョン
- 階層型名前空間
- 階層型名前空間を有効にする
- アクセスプロトコル
- SFTPを有効にする
- ネットワークファイルシステムv3を有効にする
- BLOBストレージ
- クロステナントレプリケーションを許可する
- アクセス層
- Azure Files
- 大きいファイルの共有を有効にする
- セキュリティ
- ネットワーク
- ネットワーク接続
- ネットワークアクセス
- ネットワークルーティング
- ルーティングの優先順位
- ネットワーク接続
- データ保護
- 復旧
- コンテナのポイントインタイムアウトを有効にする
- BLOBの論理的な削除を有効にする
- コンテナの論理的削除を有効にする
- ファイル共有の論理的な削除を有効にする
- 追跡
- BLOBのバージョン管理を有効化する
- BLOBの変更フィールドを有効にする
- アクセス制御
- バージョンレベルの不変性のサポートを有効にする
- 復旧
- 暗号化
- 暗号化
- 暗号化の種類
- カスタマーマネージドキーのサポートを有効にする
- 暗号化キー(カスタマーマネージドキーを選択している場合)
- インフラストラクチャ暗号化を有効にする
- マルチテナントアプリケーション
- 暗号化
- タグ
削除されたストレージアカウントの復旧
ストレージアカウントの削除があったのち、以下条件の場合、ストレージアカウントの復旧が行える。
- ストレージアカウントが過去14日以内に削除された
- ストレージアカウントはARMデプロイモデルを使用して作成されている
- 元のアカウントが削除されて以来、同じ名前の新しいストレージアカウントが作成されていない
- ストレージアカウントを復旧するユーザに適切な権限を与えられている
Azure Portalを使用して復旧する手順は以下の通り。
- ストレージアカウント一覧より「復元」をクリックし「削除されたアカウントの復元」を開く
- 対象のサブスクリプション、ストレージアカウントを選択し復元する
コンテナの作成と管理
Azure Blob Storageはデータはコンテナに保存され、整理される。 データのアップロード前にコンテナを作成する必要がある。
コンテナの作成手順は以下の通り。
- 作成するコンテナが配置されるストレージアカウントのナビゲーションメニューより「データストレージ」-「コンテナ」を選択
-
「+ コンテナー」より新しいコンテナの作成画面を選びコンテナを作成する
-
コンテナーとBLOBへのアクセス管理
- コンテナへのAzure RBACロールの割り当て
- 共有アクセス署名(SAS)
- アクセスポリシーまたは不変性ポリシー
- リースの管理
- コンテナーの削除
4.3. Azure Blob Storage
Azure Blob STorageはもっとも汎用性と利用頻度の高いストレージサービス。 BLOBは大量のテキストデータや画像/動画などのバイナリデータ、既存のデータ型で定義できない汎用的なデータ形式の非構造化データなどを格納するためのデータ型の1つ。
Azure Blob StorageにはBLOB管理のために以下の3種類の階層が存在する。
- ストレージアカウント ... 管理単位
- ストレージアカウント内のコンテナー ... ファイルシステムのディレクトリのようにBLOBセットを整理できる
- BLOB ... Blob Storageコンテナー内に保存されたデータ
Azure Blob Storageでは以下3種類のBlobがサポートされている。
- ブロックBlob
- テキストとバイナリデータが格納
- 最大190.7TiBのデータを格納できる
- 追加Blob
- 追加操作用に最適化されたページBlob
- 仮想マシンのデータのログ記録などに最適
- ページBlob
- ランダム読み取り/書き込みをする動作のファイルに最適
- 最大8TiBのランダムアクセスファイルを格納できる
- 仮想ハードドライブ(VHD)ファイルを格納し、仮想マシン用のディスクとして機能
4.3.1. Azure Blob Storageの容量
Azure Blob Storageに保存できる単一のBlob最大サイズはBlob種別と構成により異なる。
- ブロックBlobでは約190.7TiB
- ページBlobでは8TiB
- ストレージアカウント当たりの最大容量は5PiB
となっているが、サポートに問い合わせることで最大サイズを増やすことも可能。
4.3.2. Azure Blob Storageへのアクセス
Azure Blob StorageはHTTPS経由でアクセスされる。 この時使用されるURLは、ストレージアカウント、コンテナー、BLOBのそれぞれの名前空間から構成される。
4.3.3. BLOBデータのアクセス層
ストレージアクセス層は保存されるデータ、期間、更新頻度/アクセス頻度のバランスによりコストを最適化できるコスト管理オプションのこと。 以下のような種類がある。
- ホットアクセス層
- 頻繁に使用されるデータ、頻繁に書き込みされるデータの格納に向いている
- ストレージコストは高く、アクセスコストは低くなる
- クールアクセス層
- 頻繁に使用はしないものの即座にアクセスできるようにしておきたい古いデータや短期のバックアップ向き
- 最低30日保存しておくことが必要で、それ未満で削除するとペナルティ料金が加算される
- コールドアクセス層
- 頻繁に使用はしないものの即座にアクセスできるようにしておきたい古いデータや短期のバックアップ向き
- 最低90日保存しておくことが必要で、それ未満で削除するとペナルティ料金が加算される
- アーカイブアクセス層
- ほとんどアクセスされない長期のバックアップやアーカイブデータの保存に適している
- 最低180日保存しておくことが必要で、それ未満で削除するとペナルティ料金が加算される
- アーカイブ層にあるデータはそのままでは読み取りも変更もできない
- 取得する場合はホット、クールなどのオンラインアクセス層にリハイドレードする必要がある(数時間かかる)
項目 | ホット層 | クール層 | コールド層 | アーカイブ層 |
---|---|---|---|---|
可用性 | 99.9% | 99% | 99% | 99% |
可用性(RA=GRS読み取り) | 99.99% | 99.99% | 99.9% | 99.9% |
利用料金 | ストレージコスト高い アクセスコスト安い |
ストレージコスト安い アクセスコスト高い |
ストレージコスト安い アクセスコスト高い |
ストレージコストが最安 アクセスコストが最も高い |
最低推奨データ保持期間 | なし | 30日 | 90日 | 180日 |
待機時間 | ims | ims | ims | 数時間 |
サポートされている冗長構成 | すべて | すべて | すべて | LRS,GRS,RA-GRSのみ |
4.3.4. Azure Blob Storageの操作
Azure PortalによるBLOB作成と管理
- Blobの作成
- ストレージアカウントとコンテナーを選択
- Blobの種類
- ブロックBlob
- ページBlob
- 追加Blob
- .vhdファイルをページBLOBとしてアップロードする
- ブロックサイズ
- 最大
4000MiB
- 最大
- アクセス層
- アップロード先のフォルダ
- BLOBインデックスタグ
- 暗号化スコープ
- アイテム保持ポリシー
- BLOBの管理
- Blobの概要
- バージョン
- スナップショット
- 編集
- SASの生成
- アクセス層の変更
- リースの取得
- BLOBの削除
PowerShellによるBloBの作成と管理
- PoweShellのバージョン確認
$PSVersionTable.PSVersion
- AZ PowerShellモジュールのインストール確認
Get-Module-Name Az-ListAvaiable
-
AZ PowerShellモジュールのインストール
Install-Module -Name Az-RepositoryPSGallery -Force
-
資格情報をコンテキストオブジェクトとして構成する
Connect-AzAccount
Set-AzContext -Subscription <サブスクリプション番号>
$Ctx = NewAzStorageContext /`
-StorageAccountName <ストレージアカウント名> -UseConncetedAccount
- コンテナの作成
New-AzStorageContainer -Name <コンテナ名> -Context $ctx
- Blobのアップロード
Set-AzStorageBlobContent -File <ファイルパス> -Container <コンテナ名> -Context$ctx
Get-Children -Path <ファイルパス> -Rescuse | \`
Set-AzStorageBlobContent -Container <コンテナ名> -Context $ctx
- Blob一覧表示
Get-AzStorageBlob -Container <コンテナ名> -Context $ctx