基礎知識
クラウドにおけるストレージの特徴と違いを知ろう
2019年5月13日
データを保存するストレージには、「ブロックストレージ」「オブジェクトストレージ」「ネットワークアタッチドストレージ(NAS)」など、さまざまな種類のものが存在します。
今回はクラウドにおけるそれぞれのストレージの特徴を紹介します。ストレージごとの違いを理解し、用途によって最適なストレージを選択しましょう。
ブロックストレージ
ブロックストレージは、一般的なハードディスクと同じように使えるストレージです。PCに搭載されているハードディスクと同様で、特定の1台の仮想サーバーが占有して使用します。
ほかのストレージよりも高速にデータを読み書きできるため、頻繁にデータを書き換える用途に向いています。仮想サーバーの起動ディスクはブロックストレージである必要がありますし、データベースサーバーのデータベース格納領域などにも、ブロックストレージの利用が適しています。
ブロックストレージは利用開始時に決まった容量を確保する必要があります。容量は運用開始後に増減させることができない場合もあるため、データが肥大化して容量を使い切ってしまうと、ディスク交換や追加のメンテナンスが必要になります。かといって最初から不必要に巨大なストレージを確保してしまうと、ブロックストレージは確保した容量に応じて課金されるため、無駄にコストがかかってしまいます。
後述するオブジェクトストレージと比べると、高速ではあるもののメンテナンスの手間やコストがかかるため、用途や使用する容量を検討した上で使用するとよいでしょう。
オブジェクトストレージ
オブジェクトストレージは、データ本体と、データ自身の情報を表す付加的なデータ(メタデータ)をセットにした「オブジェクト」を、「プール」や「バケット」と呼ばれる記録領域に保存するストレージです。その最大の特徴は、プールの容量やオブジェクトの数に上限がないという点です。容量の上限を気にしなくてよいため、ブロックストレージのように使用容量を厳密に見積もる必要がありません。
ブロックストレージでは、利用するしないに関係なく確保した容量に対して課金されるのに対し、オブジェクトストレージでは利用した容量分にのみ課金されます。無駄なコストが発生しないのはもちろん、ストレージの容量あたりの価格もブロックストレージより安価です。
サーバーに接続したブロックストレージはユーザーの責任でRAID構成を取るなどで、耐障害性を高めたりバックアップやメンテナンスを行う必要がありますが、オブジェクトストレージのプールはクラウドベンダーが用意してくれるため、運用管理をベンダーに任せられ、運用の手間を軽減できます。またオブジェクトストレージの内部ではデータの多重化が行われているため、ハードウェア障害に備えたバックアップもユーザーは意識する必要がありません。
このような特徴から、画像や動画といった大容量データや、サーバーのログやバックアップといった重要なデータを保存する用途に向いています。またコンテンツデリバリーネットワーク(CDN)と連携し、オブジェクトストレージに保存した動画を配信するのも定番です。ただし、ブロックストレージに比べて低速なため、データベースのような頻繁に書き換えが行われるデータの保存には向きません。
ネットワークアタッチドストレージ(NAS)
ネットワークアタッチドストレージ(NAS)は複数のサーバーで共有できるストレージで、いわゆる「NFSサーバー」や「Sambaサーバー」と同じものにあたります。
負荷分散のため、複数のサーバーを並列に運用するのはよくあるケースです。このとき、すべてのサーバーに共通のデータを各サーバーが個別に持つのは容量の無駄です。またデータ更新時にすべてのサーバーでデータを同期する手間もかかってしまいます。このような場合は共通のデータをNAS上に保存し、すべてのサーバーで共有するのが便利です。
NASの共有ディレクトリは、各サーバーのディレクトリにマウントして利用します。一度、マウントしてしまえばディレクトリ名とファイル名でデータにアクセスできるため、そのデータがローカルのブロックストレージ上にあるか、ネットワーク越しのNAS上にあるかを意識する必要はありません。
NASはデータを共有できるのが最大の特徴であるため、複数台のサーバーを運用して初めてメリットが生まれます。前述のように、並列稼動するサーバーのコンテンツ置き場としての利用することが多いでしょう。ストレージの容量あたりの単価はブロックストレージよりやや高くなりますが、1つのストレージを複数のサーバーで同時に利用できることを考えると、各サーバーにブロックストレージを用意するよりも割安です。
用途に応じてストレージを使い分けよう
よくある例として、Webサーバーとデータベースサーバーで構成され、動画コンテンツを配信するWebサイトを考えてみましょう。
すべてのサーバーには起動ディスクとして、OSのインストールされたブロックストレージが接続されています。データベースサーバーにはデータベースを格納する領域として、専用のブロックストレージを追加するとよいでしょう。負荷分散のため、Webサーバーは複数台で構成します。この際、画像やHTMLなどのWebコンテンツは全サーバーで共有するため、NAS上に置くのが効率的です。そして、動画コンテンツは容量が大きく更新頻度が低いため、オブジェクトストレージに保存して配信を行います。
ストレージによって、向いている用途と向かない用途があります。このようにシステムの要件によって、最適なストレージを選択することが重要です。