クラウド
オブジェクトストレージとは?ブロック・ファイルとの違いを例で解説
- オブジェクトストレージ
- ブロックストレージ
- ファイルストレージ
- クラウド
- Amazon S3
- Amazon EBS
- データベース
- 結果整合性
- バケット
- Amazon RDS
- Amazon Aurora
- Amazon EFS
- Azure Blob Storage
- Azure Files
- Cloud SQL
- Dynamo
- 強い整合性
- 耐久性
- AWS
- Azure
- Google Cloud
目次
クラウドでは、計算の機械は入れ替わる。台数を増やせば新しい仮想マシンが加わり、壊れれば作り直され、コンテナは更新のたびに新しいものと入れ替わる。機械の中にデータを置いていると、機械と一緒にデータも消える。そのため、データは計算から切り離したストレージのサービスに置く。ストレージには、ブロック、ファイル、オブジェクトの三つの形がある。本稿は、この三つを、読み書きの単位と共有のしかたで比べる。そのうえで、その上で動くデータベースとの関係と、整合性の考え方の変化を取り上げる。
オブジェクトストレージとは何で、ブロックストレージやファイルストレージとどう違うのか。どのデータを、どこに置けばよいのか。
クラウドでは計算の機械が入れ替わるので、データはその外のストレージのサービスに置く。ブロック・ファイル・オブジェクトのどれを使うかは、データをどの単位で読み書きし、何台から共有するかで決める。 ブロックストレージは、一台の仮想マシンにディスクとして付け、データの一部だけを書き換えられる。ファイルストレージは、フォルダの階層を複数の機械で共有する。オブジェクトストレージは、データを名前で丸ごと読み書きする代わりに、大量のデータを高い耐久性で置ける。データベースは、この三つと並ぶ四つ目の選択肢ではない。ストレージの上で動くソフトで、表の形のデータを何人もが同時に更新するときに使う。オブジェクトストレージの考え方も変わってきた。Amazon S3 は長く、上書きや削除の直後に古いデータを返すことがある結果整合性だったが、2020 年 12 月から、オブジェクトの書き込みと削除については、直後の読み取りで最新を返す強い整合性に変わった。
設計事務所の三種類のデータ
※ この節の数値は説明のための仮定で、測定値ではありません。
建物の設計事務所が、仕事の道具をクラウドに移したとする。扱うデータは三種類ある。
- 案件の台帳:顧客、案件、締め切り、請求を記録する。何人もが同時に書き込み、一件ずつ細かく更新する。
- 作業中の図面のファイル:所員が CAD のソフトで開き、保存し、ほかの所員と同じフォルダで共有する。
- 完成した図面と現場の写真:引き渡しの後は、ほとんど書き換えないが、何年も保管し、ときどき取り出す。毎年増え続ける。
社内のサーバー室では、これらはすべて一台のファイルサーバーと、データベースのサーバーのディスクに入っていた。クラウドに移って、所員向けの Web の画面を仮想マシンで動かし、利用が増えたので、仮想マシンを作り直して台数を増やした日を考える。
- 担当者仮想マシン1. 台数を増やすため、仮想マシンを作り直す
- 仮想マシン2. 前の機械に直接付いていたディスクの中身は消えている
- 仮想マシンストレージのサービス3. 案件の一覧と図面を読みにいく
- ストレージのサービス仮想マシン4. 作り直す前と同じデータを返す
データを機械の外のストレージのサービスに置いておけば、機械を何度作り直しても、データは同じ場所にある。三種類のデータの置き方は、二段で決まる。
まず、表の形のデータを何人もが同時に更新するかを見る。案件の台帳がこれにあたるので、データベースに入れる。データベースとストレージの関係は、後の節で述べる。
ほかの二つは、三つのストレージから選ぶ。
- 作業中の図面のファイル:一台の仮想マシンに付けたディスクに置くと、台数を二台に増やしたとき、二台目からは同じフォルダを開けない。そのため、複数の機械で同じフォルダを使えるファイルストレージに置く。所員の PC が Windows なら、SMB で使える種類を選ぶ。事務所からクラウドへの回線も要り、大きなファイルは開くのに時間がかかる。
- 完成した図面と現場の写真:一度書いたら丸ごと読み出すだけなので、名前を付けて丸ごと置くオブジェクトストレージで足りる。ほとんど取り出さない古いものは安い種類の保存へ移すが、最も安い種類は取り出しに時間がかかる。
データを計算の外に置く理由
クラウドの仮想マシンには、仮想マシンが動いている物理的な機械に直接付いたディスクを使える種類がある。AWS はこれをインスタンスストアと呼び、仮想マシンを再起動しても中身は残るが、停止したり削除したりするとデータは消えると書いている1。一方、Amazon EBS のディスクは、仮想マシンの稼働とは独立して残る2。
機械が入れ替わることを前提にする考え方は、クラウドより前の大規模なシステムから来ている。Google の Ghemawat らは 2003 年、安い汎用の機械を大量に並べた分散ファイルシステム GFS を発表し、部品の故障は例外ではなく常に起きるものだとして、監視、誤りの検出、故障への耐性、自動の復旧を仕組みに組み込むべきだと書いた3。Amazon の DeCandia らも 2007 年、大小の部品が絶えず故障する規模では、故障の中で永続的なデータをどう管理するかが、システムの信頼性と拡張性を決めると書いている4。
ブロックストレージ:一台の機械のディスク
ブロックストレージは、データを同じ大きさのブロックに分けて保存する5。個々のブロックに直接読み書きできるので、データの全体を取り出さなくても、一部だけを書き換えられる5。
クラウドでは、仮想マシンに付けるディスクとして使う。AWS は 2008 年 8 月に Amazon EBS を公開し、動いている仮想マシンに付けて、ファイルシステムとして使える永続的なディスクと説明した6。EBS のディスクは、付ける先の仮想マシンと同じアベイラビリティーゾーン(リージョンと呼ぶ一つの地域の中で、電源などが独立したデータセンターの集まり)に置く必要がある2。
その代わり、基本は一台の機械に付けて使う。AWS は、機械とディスクが一対一の関係に限られるため、共有のファイルストレージのような拡張性や経済性を得にくいと書いている5。例外として、EBS の一部の種類は、同じアベイラビリティーゾーンの複数の仮想マシンに同時に付けられる7。
ファイルストレージ:フォルダの階層を共有する
ファイルストレージは、ファイルとフォルダの階層でデータを整理する8。ファイル名と、フォルダをたどる道筋(パス)が、ファイルを見分ける手がかりになる8。社内のファイルサーバーと同じ使い方で、NFS や SMB という、OS が標準で備えるファイル共有の方式で読み書きする。AWS は、ファイルごとに共有や権限を設定する一般的な方式を使えるのは、三つのうちファイルストレージだけだと書いている9。
AWS は 2016 年 6 月に Amazon EFS を本番の利用に提供し、一台以上の仮想マシンから NFS で同じファイルシステムを使えるようにした10。
オブジェクトストレージ:データを名前で丸ごと出し入れする
オブジェクトストレージは、データを、そのデータを説明する情報(メタデータ)と一緒に、オブジェクトという単位で保存する5。Amazon S3 では、オブジェクトはファイルとそのメタデータからなり、バケットというオブジェクトの入れ物に入れる。オブジェクトにはキーという名前があり、バケットの中で一つのオブジェクトを指す11。通常のバケットはフォルダの階層を持たず、平らな名前の空間にオブジェクトを並べる5。キーに「/」を含めて、フォルダのように見せることはできる。ディレクトリバケットという種類のバケットは、本当の階層を持つ12。
基本の読み書きは、ファイル共有の方式ではなく、事業者の API(プログラムから操作するための窓口)を通して行う。そのため、既存のアプリから使うには、新しいコードを書く必要がある5。S3 には、ファイルシステムとして読み書きできるようにする S3 Files という仕組みも加わっている13。書き換えの単位も違う。ファイルシステムはファイルの一部の更新や追記ができるが、S3 はオブジェクトを丸ごと書き換えるように作られている13。例外として、ディレクトリバケットの中で S3 Express One Zone という保存の種類に置いたオブジェクトには、末尾にデータを足せる14。
その代わり、大量のデータを高い耐久性で置ける。AWS は、S3 を、1 年間に 99.999999999% のオブジェクトの耐久性を持つよう設計している。標準などの種類では、同じリージョンの最低三つのアベイラビリティーゾーンにまたがって複数の機器に冗長に保存し、1 ゾーンの種類では一つのゾーンの中に保存する15。この値は設計の目標で、失われた割合の実測ではない。年に一、二回しか読まないデータには、最も安い種類の保存(S3 Glacier Deep Archive)も用意されているが、取り出しには 12〜48 時間かかる16。
オブジェクトストレージは、クラウドの初期からある。AWS は 2006 年 3 月、開発者向けのストレージのサービスとして Amazon S3 を公開した17。
三つのストレージの選び方
三つのどれを使うかの手がかりは二つある。
- どの単位で読み書きするか:一部を細かく書き換えるならブロック(データベースがデータを置く先も、多くはこれである)、ファイルとして開いて保存するならファイル、丸ごと置いて丸ごと取り出すならオブジェクトである。
- 何台の機械から使うか:一台ならブロック、複数の機械で同じフォルダを使うならファイル、多数の機械や外部からプログラムで使うならオブジェクトである。
三社のサービスの名前でいえば、次のようになる。
- AWS:ブロックは Amazon EBS、ファイルは Amazon EFS、オブジェクトは Amazon S3。
- Azure:ブロックはマネージド ディスク(データの複製を三つ持つ)18、ファイルは SMB と NFS で使える Azure Files19、オブジェクトは Azure Blob Storage20。
- Google Cloud:ブロックは Hyperdisk と Persistent Disk21、ファイルは Filestore22、オブジェクトは Cloud Storage23。
データベースとストレージの関係
データベースは、ストレージの上で動くソフトである。多くのデータベースは、データを表の形で整理し、何人もが同時に書き込んでも矛盾が出ないように更新をさばく。データベースは、遅れの小さい読み書きができるブロックストレージにデータを置くことが多い24。
クラウドでは、データベースのソフトを仮想マシンに入れ、ブロックストレージのディスクを付けて自分で運用することもできる。事業者が運用するデータベースを借りることもできる。借りる場合は、下のストレージも事業者が用意する。たとえば Amazon RDS では、データベースのデータを Amazon EBS のディスクに置き、利用者はその容量と種類を指定する25。三つのストレージのどれにするかを、利用者が選ぶことはない。
AWS は 2009 年 10 月、Amazon RDS をベータ版として公開した。表の形でデータを持つリレーショナルデータベースを、インフラの用意やソフトの保守、一般的な管理の作業を気にせずに使えると説明している26。いまの RDS の文書は、バックアップ、ソフトの修正、障害の自動の検出と復旧を RDS が管理し、データベースへの命令(クエリ)を速く動くように直す作業は利用者の責任だと書いている25。Azure では Azure SQL Database27、Google Cloud では MySQL、PostgreSQL、SQL Server を扱う Cloud SQL が、同じ種類のサービスである28。
データベースの下のストレージも変わってきた。AWS の Verbitski らは 2017 年、Aurora というデータベースの論文で、クラウドのサービスでは計算と保存を切り離すことで回復力と拡張性を得るようになっていると書いた29。Aurora は、データベースの下に一台の機械用のディスクを置く代わりに、多くの機械にまたがる専用のストレージを置いた29。データベースの層からネットワークを越えて書き込むのは変更の記録(ログ)だけで、データのページそのものは書かない29。論文の結びは、従来のデータベースの一体の作りから離れ、保存を計算から切り離すことが中心の考えだったとまとめている29。
整合性の考え方の変化
複数の場所にデータの複製を持つと、書き込んだ直後に読んだとき、どの複製から最新の値が返るかという問題が出る。これを整合性の問題と呼ぶ。
Amazon の Dynamo の論文(2007 年)は、この問題に一つの答えを示した。Dynamo は、Amazon の中心のサービスの一部が「いつでも使える」状態を保つための保存の仕組みで、そのために、一部の故障の場面では整合性を犠牲にすると書いている4。ディスクが壊れても、ネットワークが不安定でも、データセンターが竜巻で壊れても、客が買い物かごに商品を入れられることを目指した4。すべての更新は最終的にはすべての複製に届く、結果整合性という設計である4。Amazon の CTO の Vogels は 2008 年、結果整合性を、弱い整合性の一つの形と定義している。新しい更新がなければ、最終的にはすべての読み取りが最後に更新された値を返すことだけを保証する30。
S3 も、公開のときから結果整合性を採っていた31。2020 年 5 月の時点の S3 の文書は、新しいオブジェクトの書き込みには、一つの例外を除いて書き込み直後の読み取りの整合性があるが、上書きと削除は結果整合性だと書いている32。2020 年 12 月 1 日、AWS は、S3 がすべてのアプリに対して、書き込み直後の読み取りで最新の版を返す強い整合性を、追加の料金なしで自動で提供すると発表した31。Vogels は後に、追加の費用なしに、性能と可用性を犠牲にせずに強い整合性を実現したかったと説明している33。
ただし、強い整合性になったのは、オブジェクトの書き込みと削除である。バケットの設定の変更は、今も結果整合性である11。また、S3 の更新は一つのキーごとで、複数のオブジェクトをまとめて一度に更新する方法はない11。何人もが同時に複数の記録を矛盾なく更新するには、やはりデータベースが要る。
切り離す設計の広がりと、その代償
計算から保存を切り離す設計は、オブジェクトストレージにもデータベースにも広がっている。ただし、切り離すと、計算と保存の間の通信が増える。Aurora の論文自身、大量の処理での一番の制約は、計算や保存からネットワークへ移ったと書いている29。Aurora がネットワークを越えて書くのをログだけにしたのは、この制約への対処で、論文はネットワークの I/O の回数を一桁減らしたと書いている29。
オブジェクトストレージが何にでも合うわけでもない。Google Cloud は、オブジェクトストレージは書き込みがやや遅いので、細かい更新が頻繁に起きるデータ(トランザクションのデータ)には適さないと説明している8。丸ごと書き換える作りなので、一部だけを頻繁に更新するデータには、ブロックストレージや、その上で動くデータベースのほうが合う。
ストレージのサービスによって、複製を置く範囲は違う。S3 の標準などの種類は複数のアベイラビリティーゾーンに複製を置くが、EBS のディスクは一つのゾーンの中にある。データの置き方が決まっても、計算の機械や、そのゾーン、さらにはリージョン全体が止まることはある。一つの建物や一つのリージョンが止まっても動き続けるには、どう備えればよいのかが、次の問いである。
出典33件
-
AWS「Amazon EC2 インスタンスストアボリュームのデータの永続性」2026年10月14日取得. https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/instance-store-lifetime.html — 停止や終了でデータが消えること。 ↩
-
AWS「Amazon EBS ボリューム」2026年10月14日取得. https://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/ebs-volumes.html — 仮想マシンと独立した永続性と、同じアベイラビリティーゾーン。 ↩ ↩2
-
S. Ghemawat, H. Gobioff, S.-T. Leung「The Google File System」SOSP 2003、2026年10月14日取得. https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf — 部品の故障を前提にする設計。 ↩
-
G. DeCandia ほか「Dynamo: Amazon’s Highly Available Key-value Store」SOSP 2007、2026年10月14日取得. https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf — 可用性のために整合性を犠牲にする設計と結果整合性。 ↩ ↩2 ↩3 ↩4
-
AWS「ブロックストレージ、ファイルストレージ、オブジェクトストレージの違い」2026年10月14日取得. https://aws.amazon.com/jp/compare/the-difference-between-block-file-object-storage/ — 三つの仕組みと、それぞれの制約。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
AWS News Blog(Jeff Barr)「Amazon EBS (Elastic Block Store) – Bring Us Your Data」2008年8月20日、2026年10月14日取得. https://aws.amazon.com/blogs/aws/amazon-elastic/ — EBS の公開。 ↩
-
AWS「マルチアタッチを使用して EBS ボリュームを複数の EC2 インスタンスへアタッチ」2026年10月14日取得. https://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/ebs-volumes-multi.html — 同じゾーンの複数の仮想マシンへの接続。 ↩
-
Google Cloud「オブジェクト ストレージ、ファイル ストレージ、ブロック ストレージの比較」2026年10月14日取得. https://cloud.google.com/discover/object-vs-block-vs-file-storage?hl=ja — ブロックの部分の書き換え、ファイルの階層、オブジェクトの不得意。 ↩ ↩2 ↩3
-
AWS「The difference between block, file, and object storage」2026年10月14日取得. https://aws.amazon.com/compare/the-difference-between-block-file-object-storage/ — ファイルの単位の共有の方式と権限。 ↩
-
AWS News Blog(Jeff Barr)「Amazon Elastic File System – Production-Ready in Three Regions」2016年6月28日、2026年10月14日取得. https://aws.amazon.com/blogs/aws/amazon-elastic-file-system-production-ready-in-three-regions/ — NFS で複数の機械から使うファイルシステム。 ↩
-
AWS「Amazon S3 とは」2026年10月14日取得. https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/Welcome.html — オブジェクト、バケット、キー、整合性、キーごとの更新。 ↩ ↩2 ↩3
-
AWS「What is Amazon S3?」2026年10月14日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html — ディレクトリバケットの階層。 ↩
-
AWS「Amazon S3 FAQs」2026年10月14日取得. https://aws.amazon.com/s3/faqs/ — S3 はオブジェクトを丸ごと更新するよう作られていること。 ↩ ↩2
-
AWS「Appending data to objects in directory buckets」2026年10月14日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-append.html — S3 Express One Zone での追記。 ↩
-
AWS「Amazon S3 におけるデータ保護」2026年10月14日取得. https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/DataDurability.html — 設計上の耐久性と三つのゾーンへの冗長な保存。 ↩
-
AWS「Amazon S3 ストレージクラス」2026年10月14日取得. https://aws.amazon.com/jp/s3/storage-classes/ — S3 Glacier Deep Archive。 ↩
-
Amazon「Amazon Web Services Launches」2006年3月14日、2026年10月14日取得. https://press.aboutamazon.com/2006/3/amazon-web-services-launches — Amazon S3 の公開。 ↩
-
Microsoft「Azure マネージド ディスクの概要」2026年8月20日更新、2026年10月14日取得. https://learn.microsoft.com/ja-jp/azure/virtual-machines/managed-disks-overview — ブロックの単位のディスクと三つの複製。 ↩
-
Microsoft「Azure Files とは」2026年8月17日更新、2026年10月14日取得. https://learn.microsoft.com/ja-jp/azure/storage/files/storage-files-introduction — SMB と NFS のファイル共有。 ↩
-
Microsoft「Azure Blob Storage の概要」2026年5月18日更新、2026年10月14日取得. https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-blobs-overview — オブジェクトストレージ。 ↩
-
Google Cloud「Persistent Disk」2026年10月14日取得. https://cloud.google.com/compute/docs/disks/persistent-disks?hl=ja — 仮想マシンのブロックストレージ(Hyperdisk と Persistent Disk)。 ↩
-
Google Cloud「Filestore の概要」2026年10月14日取得. https://cloud.google.com/filestore/docs/overview?hl=ja — 事業者が管理するファイルサーバー。 ↩
-
Google Cloud「Cloud Storage のプロダクト概要」2026年10月14日取得. https://cloud.google.com/storage/docs/introduction?hl=ja — オブジェクトを保存するサービス。 ↩
-
AWS「ブロックストレージとは何ですか?」2026年10月14日取得. https://aws.amazon.com/jp/what-is/block-storage/ — リレーショナルデータベースなどでの使用。 ↩
-
AWS「Amazon Relational Database Service (Amazon RDS) とは」2026年10月14日取得. https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Welcome.html — 事業者と利用者の分担。 ↩ ↩2
-
AWS News Blog(Jeff Barr)「Introducing Amazon RDS – The Amazon Relational Database Service」2009年10月26日、2026年10月14日取得. https://aws.amazon.com/blogs/aws/introducing-rds-the-amazon-relational-database-service/ — RDS のベータ版。 ↩
-
Microsoft「Azure SQL Database とは」2026年10月14日取得. https://learn.microsoft.com/ja-jp/azure/azure-sql/database/sql-database-paas-overview?view=azuresql — 事業者が管理するデータベース。 ↩
-
Google Cloud「Cloud SQL の概要」2026年10月14日取得. https://cloud.google.com/sql/docs/introduction?hl=ja — 事業者が管理するリレーショナルデータベース。 ↩
-
A. Verbitski ほか「Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases」SIGMOD 2017、2026年10月14日取得. https://cdn.amazon.science/dc/2b/4ef2b89649f9a393d37d3e042f4e/amazon-aurora-design-considerations-for-high-throughput-cloud-native-relational-databases.pdf — 計算と保存を切り離す設計。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
W. Vogels「Eventually Consistent - Revisited」All Things Distributed、2008年12月23日、2026年10月14日取得. https://www.allthingsdistributed.com/2008/12/eventually_consistent.html — 結果整合性の定義(ACM Queue 2008年12月の改訂版)。 ↩
-
AWS「Amazon S3 now delivers strong read-after-write consistency automatically for all applications」2020年12月1日、2026年10月14日取得. https://aws.amazon.com/about-aws/whats-new/2020/12/amazon-s3-now-delivers-strong-read-after-write-consistency-automatically-for-all-applications/ — 強い整合性への変更。 ↩ ↩2
-
AWS「What is Amazon S3?」Developer Guide、2020年5月9日時点、2026年10月14日取得(アーカイブ). https://web.archive.org/web/20200509052011id_/https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html — 上書きと削除の結果整合性。 ↩
-
W. Vogels「Diving Deep on S3 Consistency」All Things Distributed、2021年4月20日、2026年10月14日取得. https://www.allthingsdistributed.com/2021/04/s3-strong-consistency.html — 変更の理由。 ↩
この記事はAIを使用して執筆されました。内容には誤りが含まれる可能性があります。事実や数字の出典は脚注から確かめられます。