ストレージアカウントとは
Azure の提供するストレージサービスを収容するコンピュータアカウントです。
Azure では以下 4 つのストレージサービスを提供しています。
- Blob ストレージ : http(s) の REST-API がインタフェースとなるオブジェクトストレージ
- File ストレージ : SMB/CIFS プロトコル経由で提供されるファイルストレージ
- Queue ストレージ : 疎結合を実現する目的でよく使われるメッセージキュー用ストレージ
- Table ストレージ : NoSQL (Not Only SQL) がインタフェースとなるオブジェクトストレージ
これらのストレージサービスを使う前に、まず『ストレージアカウント』という箱が必要になります。その中で上記 4 つのうちのいずれか、もしくは複数のサービスを有効化します。
ストレージアカウントでは「ロケーション」がセットされますので、別のロケーションでストレージサービスを使いたいとき等は別途ストレージアカウントを用意する必要があります。
ストレージアカウントとストレージの種類のマッピング
ストレージアカウント作成時にはまず、「パフォーマンス」を Standard にするか Premium にするかの 2 択を決める必要があります。
Standard は「汎用ストレージ」とも呼ばれ、HDD が使われます。一方、Premium は SSD が使われ、主に BLOB サービスやファイル共有サービスに特化した設定です。
汎用はデフォルトでは v2 のみが選択肢として表示されます。v1 も作成することは可能ですが、過去の互換性のためにあり、現在は非推奨です。
Standard の汎用ストレージはアカウント作成後に 4 つのサービスの中から任意の複数サービスを動作させることができます。1 つでもよいですし 4 つのサービス全てを動作させることもできます。
一方、Premium は作成時にどのサービスを動作させるか決めます。ページ BLOB は後述しますが現在ほぼ使われることが無いため、現状は実質 BLOB かファイル共有かの 2 択です。
ストレージの冗長性の種類
ストレージのデータは冗長性を持たせることができますが、その選択肢は 6 つあります。また、その選択肢はストレージアカウントの種類によって異なります。
汎用 (Standard) はどの冗長性もサポートしていますが、Premium は LRS か ZRS の 2 択です。
以下にストレージアカウントの種類と冗長性の選択肢のマッピングを示します。
- [ Local Redundancy Storage ] : 同一データセンター内の 3 つのノードにデータを同期して保存し、障害時は自動で切り替わり。
- [ Zone Redundancy Storage ] : 同一リージョンの 3 つのデータセンターにデータを同期して保存し、障害時は自動で切り替わり。
- [ (Read-Access) Geo Redundancy Storage ] : プライマリリージョンとセカンダリリージョンにそれぞれ LRS でデータを非同期で保存し、障害時は手動で切り替え可。RA (Read Access) が付く場合は平常時も障害時も読み取り専用アクセス可。
- [ (Read-Access) Geo Zone Redundancy Storage ] : プライマリリージョンに ZRS, セカンダリリージョンに LRS でデータを非同期で保存し、障害時は手動で切り替え可。RA (Read Access) が付く場合は平常時も障害時も読み取り専用アクセス可。
LRS/ZRS が同期 (即時に冗長コピー作成) であるのに対し、GRS/GZRS は非同期 (15 分未満の適当なタイミングで冗長コピー作成) です。
そのため、GRS/GZRS においては障害時や切り替え時にデータ損失 (プライマリリージョンで行った直近 15 分未満の変更がセカンダリリージョンに反映されない) の可能性があります。また、手動切替後は LRS に変更されるため、再度 GRS/GZRS にするためには手動で再設定が必要になります。
Geo での冗長性においては、『ペアリージョン』というものが存在します。例えば East-US に作成したストレージアカウントで Geo 冗長性を設定した場合、East-US がプライマリリージョンとなり、そのペアリージョンである『West-US』がセカンダリリージョンとなります。
GRS/GZRS においては「リージョンが利用できなくなった場合に、データへの読み取りアクセスを行えるようにします。」と言うオプションがあります。これが Read-Access の設定です。この説明だと障害時にだけ Read 可能であるように見えますが、平常時でも Read が可能です。
Read-Access オプション有効時には、プライマリ用の URL に加え、セカンダリ用の URL も作成され、セカンダリ用は常に読み取り専用でのアクセスが可能です。これは以下の通り、「データ管理」の「geo レプリケーション」にて「ストレージエンドポイント」の「すべてを表示」で確認できます。
手動で切り替え (フェイルオーバー) を実行すると、先の通り LRS に変更になり、セカンダリ用の URL (-secondary) は無くなります。
冗長性設定の変更は無停止で可能ですが、GZRS/RA-GZRS を設定するには ZRS を経由する必要があります。
マネージドディスクとの違い
ページ BLOB は主に VM のディスク用途と各所で説明がありますが、これはいわゆる「アンマネージドディスク」で、Azure VM の第一世代 (Gen1) でのみサポートされるディスクです。
Azure VM の Gen2 では「マネージドディスク」のみが使われます。ストレージアカウントとは別の「ディスク」というリソースが存在していますので、ストレージアカウントを作成することなく、Azure VM を使うことができます。
Append BLOB (追加ブロブ) について
Append BLOB (追加ブロブ) という仕組みがありますが、これは Azure Portal の作成時には選択肢として出てきません。
REST API のドキュメントがありますので、おそらく、ブロック BLOB ストレージサービスを作成し、そのストレージサービスを指定した API 操作のみ提供しているものと思われます。
コメント
Azure Administrator Associateの試験勉強をしているのですが、
ストレージに関して知りたいことがすべてわかりやすくまとめられている素晴らしい記事でした。
他の記事もとても勉強になります。
こちらを何度も読んで試験勉強頑張ります!
Mさん、コメントありがとうございます。
また、本サイトがお役に立てているようで何よりです。お褒め頂きありがとうございます。
Azure 試験、私も制覇を目指して日々精進しております。
Mさんもぜひ頑張ってください。