本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「ストレージアカウントを全力で守る!」を再編集したものです。
データを安く手軽に扱えるストレージアカウントは、クラウドネイティブなアプリケーションを開発する場合にほぼ100%使用しているのではないでしょうか?
ストレージアカウントには様々なオプションがありますので、「ストレージアカウントを守る」というよく分からないテーマで説明してみます。
目次
データの冗長性オプションの使用
LRS(ローカル冗長ストレージ)
RA-GRS(読み取りアクセス-ジオ冗長ストレージ)
RA-GZRS(読み取りアクセス-ジオゾーン冗長ストレージ)
オブジェクトレプリケーション
まとめ
データの冗長性オプションの使用
詳しくは下記のドキュメントを見ていただくのが良いですが、長いのでざっくりとした説明をします。
https://docs.microsoft.com/ja-jp/azure/storage/common/storage-redundancy
LRS(ローカル冗長ストレージ)
Azureポータルからデフォルト設定でストレージアカウントを作成すると、「LRS」という冗長性オプションが使用されます。
こちらは「リージョン内で3回データがコピーされる」というもので、安いNASとかと比較すると遥かにすごい仕組みですね!
データの持続性は99.999999999%以上ということで、ほぼ消える心配は無いですが、リージョン内でのやりくりなのでリージョン障害のようなものがあれば影響を受けます。
RA-GRS(読み取りアクセス-ジオ冗長ストレージ)
アプリケーションが使用する重要なデータ等はLRSとは別の冗長性オプションを使用するのが良いです。
最近までは、「RA-GRS」というオプションを使用するのが私のベストプラクティスでした。
これは、2つのリージョン内でデータを持ってくれるオプションで、データの持続性が99.99999999999999% 以上にアップし、リージョン障害にも対応できます。
ちなみに先頭に「RA-」と付くオプションの場合、データの更新が可能なリージョンは片方だけになります。
RA-GZRS(読み取りアクセス-ジオゾーン冗長ストレージ)
そして最近は「RA-GZRS」のような、ゾーン冗長のオプションが登場しました。
ゾーン冗長については別途調べてみてください、簡単に言うと、「リージョン内はさらにデータセンターの概念に分かれているので、データが3つのデータセンターに分散するよう保管され、データセンター単位の障害に耐えられる」でしょうか。
こちらのデータ持続性は99.99999999999999%以上ということで、非常に守れますね!
データが守れるほど、料金も高くなってくるので、アプリケーションの要件を考慮しつつどのオプションを選択するかを決めるのが良いと思います。
オブジェクトレプリケーション
下記の記事の通り、Blobを他のストレージアカウントに非同期にコピーすることも可能です。
https://docs.microsoft.com/ja-jp/azure/storage/blobs/object-replication-overview
ただ、これは「ストレージアカウントを守る」というテーマからは少しずれているかもしれません。
こちらはコンテナー単位にルールを定義する必要があります。
まとめ
ストレージアカウントを守るために、アプリケーションやデータの要件に従い冗長性オプションを適切に設定しましょう。
松枝 宏樹/FIXER
名古屋事業所所属。
得意分野はC#、ASP.NET、terraformなど。
最近はdocker、K8s関連を勉強中。
[転載元]
ストレージアカウントを全力で守る!