「オブジェクトストレージ」と「ブロックストレージ」の違いについて解説します。
一言で表すと、HDDにデータを保存する感覚に近いのが「ブロックストレージ」、1オブジェクト(≒1ファイル)単位でデータを記録する形式が「オブジェクトストレージ」となります。
ブロックストレージは、ディスクに保存するイメージ
従来から使われてきたのがブロックストレージです。
HDDやSSDなどのストレージを、一定の大きさの「ブロック」に分割して使用します。「1ブロック=4KB」のディスクに「10KB」のデータを書き込む際は、3ブロックが使われるイメージです。
WindowsやLinuxなどのOSからはファイル単位に見えますが、実際には裏側で「ファイルシステム」と呼ばれる仕組みが動いていて、ディスク上のブロックを管理しています。
AWSのサービスでは、EBS(Elastic Block Storage)が該当します。サイズが「100GB」のEBSを作成した場合は、100GB分(のブロック)の料金が常に発生します。
オブジェクトストレージは、ファイル単位で保存する
一方のオブジェクトストレージは、クラウド時代で利用が急増しています。
データに目印となるラベル(メタ情報)を付けたうえで、広大な空間に配置するようなイメージです。1つ1つのデータを「オブジェクト」と呼び、画像や動画などの保存に向いています。
ブロック単位ではなくオブジェクト単位で管理するため、特定の欲しいオブジェクト(データ)だけをピンポイントに取り出すことが可能です。拡張性にとても優れているのが特徴です。
大半のクラウドサービスでは、保存容量が無制限となっています。実際に保管したオブジェクト(データ)の分だけ料金が発生します。HTTP経由でもオブジェクトにアクセスが可能です。
「AWS S3」がオブジェクトストレージの代表的なサービスです。
クラウドの大量データ時代ではオブジェクトストレージが活躍
オブジェクトストレージの特徴は、何よりもその拡張性です。
データが常に増加し続けるシステムでは、オブジェクトストレージが活躍しています。
身近な例では、Twitterの画像投稿機能が挙げられます。世界中から大量の画像データが毎秒投稿される中、ブロックストレージでは容量の拡張とブロック管理が追いつきません。
画像にIDを割り振った上でオブジェクトストレージに配置し、クライアントからはHTTP(HTTPS)で直接取得してもらう。といったシステム構成です。大量アクセスにも強いです。
一方のブロックストレージは、細かなデータをローカルで頻繁に読み書きする場合に向きます。特にデータベースなどは、ブロックストレージとの相性が非常に良いと言えます。
まとめ
「オブジェクトストレージ」と「ブロックストレージ」の違いについて比較しました。
データベースなど、サーバー内で頻繁に読み書きする場合は「ブロックストレージ」が適切です。
Webサービスのメディアファイルなど、サーバーから離れた場所で読み書きがある・データ量が増え続ける場合は「オブジェクトストレージ」を用いましょう。
【関連記事】