Azure Storageとはどのようなサービスなのか?

Azure Storageとは?

Azure StorageというのはMicrosoftが提供するクラウドサービス「Azure」製品群の一つで、インフラサービスをクラウド化した、いわゆる「IaaSサービス」の一つです。IaaSの主な用途としては、様々な形式のデータファイルを保存するためのストレージサービスとして使われることが多く、Azure Storageもストレージサービスの一つとして法人を中心に広く提供されています。

Azure Storageはクラウドサービスの世界では業界シェア2位を誇る巨大サービスです。1位はAmazonが提供するAWSですが、近年ではAzureがシェアを伸ばしており、その差は年々縮まっていると言われています。では、Azure Storageはどのような点が評価されているのでしょうか?

Azure Storageは耐久性と拡張性、そして何よりも安全性が高いという評価が多くなっており、ユーザーがクラウドサービスに求める要件をほぼ備えていると言っても過言ではありません。耐久性を例に取るとAzure Storageは「イレブン9(ナイン)」と呼ばれる「99.999999999%」の耐久性を担保できる構造になっていますし、それと同時に、保存されるデータが自動的に暗号化されて安全に保管されるような設計になっています。

Azure Storageが持つ役割としては、「マネージドディスク」として仮想マシンのディスクを提供すること。そしてアプリケーションを始めとして様々な用途で使用される「ストレージ」として機能することの2つがあります。

Azure Storageにユーザーが求める役割の大多数は「マネージドディスク」としての役割です。仮想マシンに設定されているOSディスクやデータディスクが保存されているのは、Azure Storage内にある「Blob」というストレージに保管されています。つまり、仮想マシンの各種ディスクはAzure Storageが「管理(Manage)」しているため、「マネージドディスク」と呼ばれています。

Azure Storageが持つもう一つの役割「ストレージ」に関しては、Blob、File、Table、Queueという4つのサービスで構成されています。

ストレージアカウントの性能

Azure Storageのストレージアカウントとしては2つの性能があり、一般的にはスタンダード(Standard)と呼ばれるものが用意されていて、もう一つプレミアム(Premium)という反応速度が求められるシステム向けのものがあります。

スタンダード(Standard)にはv1とv2、2種類のサービスがありますが、文字通りv2が新しいサービスとして提供されています。現実的にはv2の方が一般的に利用される機会が多いため、ほとんどの場合はv2の機能を把握しておけば良いでしょう。

Azure Storageでストレージアカウントを作成しようとした時、Azureのポータル画面で出てくる選択肢は基本的に「スタンダード(Standard)」のv2アカウントになっています。つまり、MicrosoftとしてもAzure Storageの主たる選択肢はスタンダード(Standard)のv2アカウント」だとしていることになります。

ストレージサービスの種類

Azure Storageには4つのサービスがあるということをお伝えしましたが、それぞれどのようなものなのでしょうか?簡単に解説します。

Blob(ブロブ)

Blobはいわゆる「オブジェクトストレージサービス」と呼ばれる種類のサービスで、テキストデータ、バイナリーデータなど、大量のデータを格納するためのサービスです。

オブジェクトストレージは「オブジェクト」という単位でデータを管理するストレージサービスです。主な用途としては、ストリーミング配信などに使用される動画データや音声ファイルを保存したり、長期間に渡って保管することが求められるバックアップデータのような重要データの保存があげられます。

オブジェクトストレージは、PCで使われるローカルディスクとは異なり、パスを使いません。その代わりとしてオブジェクトIDという識別子を使い、階層構造を持たないため拡張性に優れているという特徴があります。

File(ファイル)

オンプレミスのファイルサーバー代わりに利用されるファイル共有サービスが「File」です。ファイル共有サービスは世の中の需要も多く、それだけ安定性と耐久性が要求されるサービスであるため、Microsoftも力を入れたインフラ投資を行っています。そのため、利便性は高いのですがその分だけ価格が高めに設定されているという評判もあります。

使い方としては、いわゆる「共有フォルダ」のような役割を果たす機能である「ファイル共有」を作成し、ファイル共有システムがどこまでの機能を有するのかを規定する「レベル(=アクセス層)」を設定します。

ファイル共有機能そのものはWindows、Linux、macOSなど、世の中の主だったOSには対応しているため、OSごとにどうやってマウントするかの選択肢が表示されますので、最終的に接続して有効化します。ただし、プロトコルによってはポート番号の指定などもあるため、設定には十分気をつけることが必要です。

Table(テーブル)

JASONやXML、YAML形式の半構造化データを保存して利用するのが「Table」です。保存するデータに対して個別に識別子を設定して、データそのものと識別子をセットでストレージに格納します。そのため、読み込む際には識別子をキーとして指定することで簡単に対応するデータを呼び出すことができるようになります。

これは大容量データに対して簡単に、かつ高速に接続することができるというメリットを持つNoSQLキーバリューストアサービスと呼ばれるもので、NoSQLは「リレーショナル・データベース=RDB」ではないということを示す言葉です。NoSQLはRDBで操作に使うSQL言語を使わないため、手軽な手法として広がり始めています。

Queue(キュー)

Queueというのはサーバーや異なる複数の機能、アプリケーションうやシステム間で行われるメッセージング処理を担当する機能です。システム同士の通信というのは通常だと1対1で行われることになりますが、場合によっては相互に干渉してしまいシステム間の通信が滞って遅くなってしまうことがあります。そのようなことが起きないように、各サーバーやシステム同士の間にQueueを差し込むことでシステム間の通信に滞留が起きないようにするために使われます。

システム間通信の滞留は、大容量のデータがアップロードされた時などに、アプリケーションやシステムがデータを指定されたストレージ内に完全に保存するまで、他の指示を受け付けなくなるタイムラグが発生することによって起こります。このような状態になってしまった際に、他の指示を、現在実行中の処理とは別に行えるようにするものがQueueです。

ストレージのアクセス層

保存するデータへの接続頻度や、保存する期間によって様々なパフォーマンスを最適化するために使われるオプションがアクセス層です。代表的な2つのアクセス層をご紹介します。

Blobのアクセス層

Blobが持つアクセス層としては「ホット」「クール」「アーカイブ」の3種類があり、それぞれ用途が異なります。

【ホット】

高頻度で接続させるデータに適していて、保存コストは高くなりますが、読み込みや書き込みのコストは比較的低いアクセス層です。

【クール】

接続される頻度が低く、30日以上そのまま保管される種類のデータによく使われるアクセス層です。ホットと比べると保存にかかるコストは低くなりますが、反対に読み込み・書き込みのコストは高めです。

【アーカイブ】

半年以上アクセスされることがない、低頻度のデータに使われるアクセス層です。保存コストは3種類のアクセス層のうちで最も低くなっていますが、その反面、読み込み・書き込みのコストが最も高いという特徴があります。

これらのアクセス層は、最初に選択したものから別のアクセス層に変更することも可能です。「クール」と「アーカイブ」の場合は一定期間が経過する前にアクセス層の移動を行ったりデータの削除を行ったりした場合は割引料金が適用されるようになっています。

一方、「ホット」と「クール」間は「オンライン層」という括りがあるため相互に好きなタイミングで接続するkとおができますが、「アーカイブ」の場合は「オフライン層」であるため、読み込みや変更を加えることはできません。「アーカイブ」に保存してあるデータを読み込むためには「ホット」か「クール」のどちらかにアクセス層を変えることが必要になりますが、この変更には一定時間待つことが求められます。「

例えば「アーカイブ」にあるデータをオンライン層に変更するためには、「オンライン層にファイルをコピーする」もしくはアクセス層を「ホット」か「クール」のどちらかに変更する、といういずれかの作業が必要で、この処理には最大で数時間以上を必要とすることがあります。

Fileのアクセス層

次にFileのアクセス層についてご紹介します。Fileのアクセス層にも4つの種類があり、次の4種類です。

【Premium】

SSDで提供され、遅延を極力抑えることが求められるシステムで使用することが推奨されています。データ保存にかかるコストは最も高く設定されていますが、読み込みと書き込みにかかるコストは、なんと無料になっています。

【トランザクション最適化】

HDDで提供され、トランザクションの負荷が高くなるシステムで使用することが推奨されています。データ保存にかかるコストはPremiumほど高くありませんが、読み込みと書き込みにかかるコストは安いとはいえ無料ではありません。

【ホット】

HDDで提供され、開発チーム間でのデータ共有など、いわゆる「汎用的な用途」で使われることが想定されています。保存にかかるコストは比較的リーズナブルなものに押さえられていますが、読み書きにかかるコストも同様のレベルまで上がります。

【クール】

HDDで提供され、長期間のデータ保存用に使用されることが想定されているアクセス層です。保存にかかるコストは4種類の中でもっとも安く押さえられていますが、読み込みと書き込みのコストは最も高く設定されています。

「Premium」に関しては、ストレージアカウントの種類そのものがPremiumでなければ選択できません。

ストレージの冗長オプション

ストレージという機能を考える時に気になるのは、バックアップ性能がどの程度担保されているのかということでしょう。このようにバックアップ性能を高める=障害に対する耐性を高めたり、常にバックアップが確保されている状態にできることを冗長性と言います。

システムである以上は障害が発生する可能性はゼロではありませんが、なにか起きた際の安定性や耐久性は極力高めておきたいというのが利用者側の本音でしょう。Azure Storageにはこのような耐性を高められる冗長性を強化するためのオプションが用意されています。

Azure Storageのストレージアカウントではこの冗長オプションが6つ用意されています。デフォルトでも3つのコピーが保存されることは保証されていますが、冗長性を高めて保存性を高めるにつれてコストは高くなっていきます。冗長オプションでメインのものについて簡単にご紹介します。

ローカル冗長ストレージ(LRS)

同じリージョンの同じデータセンター内にコピーを保存するオプションです。リージョンやデータセンターそのものの障害に対しては耐性が低くなっていますが、価格的には最も安く押さえられています。

ゾーン冗長ストレージ(ZRS)

リージョンが同じでも、別のデータセンター内にコピーを保存するオプションです。データセンターが同じリージョンにあるわけではないため、リージョンの障害に耐えることはできないですが、データセンターの障害に対しては耐久性が担保されています。

地理冗長ストレージ(GRS)

プライマリとセカンダリ、2つのリージョンを使用し、それぞれのリージョンに設定された各データセンターにそれぞれ3つ、合計6つのコピーを保存するオプションです。

通常はプライマリリージョンのみで読み取りを行いますが、地理冗長ストレージの派生形である「読み取りアクセス地理冗長ストレージ(RA-GRS)」を使用する場合は、セカンダリリージョンに保存したデータを読み取るためのアクセスも行うことが可能になります。稼働中のシステム本体に問題が起きてしまった場合は、フェイルオーバーを行うことでセカンダリリージョンへのアクセスも可能にはなりますが、フェイルオーバーの場合はデータの完全な保存は保証されないので一定のリスクは発生してしまいます。

そのため、通常はプライマリリージョンのみで運用し、アクセスそのものをセカンダリリージョンを利用することで分散化したいという狙いがある場合にRA-GRSを使うことになります。

地理ゾーン冗長ストレージ(GZRS)

地理冗長ストレージのプライマリリージョンを、単一のデータセンターではなく別のデータセンターで運用する形式のオプションです。

まとめ

ここまで、Azure Storageとはどのようなものかということと、そしてAzure Storageの冗長オプションがどのようなものかについてご説明してきました。クラウドサービスは日々進化を続けており、OS分野で圧倒的シェアを誇るMicrosoftもAzureという大型サービスで続々と利便性の高いサービスを展開しています。もしシステム担当者としてクラウドストレージについて調べる必要がある場合は、今回の情報を参考にしてみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です