保存するデータの種類が多様化するにつれ、保存データの総量は増え続け、爆発的に膨張している。オブジェクトストレージとブロックストレージはデータを扱うための2つの方式だが、どちらのシステムにも長所がある一方、万能薬ではない。企業に適しているのはどちらだろうか。詳しく見ていこう。
ブロックストレージとは?
2つの形式のうち古い方(ただし、決して時代遅れではない)のがブロックストレージです。このシステムでは、データを個々のブロックに分割して各ブロックにアドレスを割り当て、ストレージ媒体全体に効率よく分散させる。従来のファイルシステムでは、データはファイルフォルダーの階層構造に保存されるが、ブロック方式では階層は必要ない。ファイルを呼び出すと、サーバーは固有の識別子によって各ブロックを特定し、それらを収集してファイルを再構成する。これらのブロックは複数のネットワーク接続されたシステムに分散させることもできるため、1台のシステムに全作業の負荷が集中するのを防げる。この方式の利点は、複数のユーザーが各ブロックにすばやくアクセスでき、データを高速かつ効率的に呼び出せることだ。ただし、各ブロックには固有の識別子がある一方で、ファイルシステムではデータ全体に関連付けられるメタデータに制限がある。そのため、メタデータの処理は補助的なソフトウェアやデータベースに委ねられる。
ブロックストレージソリューションを提供するクラウドサービスプロバイダーが存在するが、ブロックストレージはローカルネットワークなど、低遅延が求められる環境で特に力を発揮する。設計上、ファイルの書き込み、取得、変更を高速に行える。データへの変更はブロック単位で実施できるため、ファイルを変更する際にシステムがすべてのブロックを完全に取得する必要はない。このため、頻繁なアクセスを必要とするデータベースや、特に光ファイバー接続を介した高性能アプリケーションに最適だ。さらに、ブロックベースのシステムでは未使用のストレージ容量にも料金が発生することが多く、クラウドでの実装はコストが高くなる可能性がある。
最後に、ブロックストレージには長い歴史があり、十分なサポートも提供されている。そのため企業にとって、新しいプロトコルに対応していないレガシーソフトウェアを動かすうえで有用、あるいは必要になる場合がある。
オブジェクトストレージとは?
現代の問題には現代的な解決策が必要だ。アーカイブデータベースは大規模化し、ファイルサイズは膨張している。高速インターネットと大容量ストレージの恩恵により、YouTubeのようなサービスは途方もない量のデータをホストできるようになった。ブロックストレージでもこうしたニーズには対応できるが、これらの問題に最適なのはまったく異なるパラダイムだ。そこで登場するのがオブジェクトストレージだ。ブロックストレージとは概念的に逆の方式でデータを保存する方法である。
データを構成要素に分割するのではなく、オブジェクトストレージではデータをひとまとまりとして扱い、さらに2つの情報層、すなわち固有の識別子とメタデータを追加する。この3つの要素によって最終的な「オブジェクト」が構成される。生成されたオブジェクトはフラットなアドレス空間(つまり階層が不要な空間)に保存され、固有の識別子によって取得される。
この方式は、ストレージ全体のファイルシステムに複雑さをもたらすことなく、新しいオブジェクトを無制限に追加できるため、スケーラビリティの面でメリットがある。クラウドの観点でも、通常は利用中のストレージ容量に対してのみ料金を支払うため、コスト面で有利だ。メタデータタグを追加することで、高度な検索性と分析も実現できる。これは、大量のデータから情報を取り出す用途に適した特性だ。
一方で、オブジェクトベースのファイルの編集には、時間と手間がかかる場合がある。20GBのファイルにわずかな変更を加えるだけでも、基本的にはファイル全体を再作成し、オブジェクト全体を再生成しなければならない。これに対してブロックストレージでは、ファイルの小さな構成要素だけを編集できるため、小規模な作業であっても完了までに必要な時間を短縮できる。
ただし、アーカイブデータベースや大容量ファイルは、多くの場合、静的な性質を持つ。呼び出して閲覧する必要はあっても、変更の必要性は最小限だ。頻繁な変更が必要なファイルや、常時利用されるアプリケーションにはブロックストレージが適しているのに対し、大規模な静的データにはオブジェクトストレージが適している。
ブロックストレージとオブジェクトストレージのプロバイダー
大手テクノロジー企業から小規模なベンダーまで、企業顧客向けに両方のソリューションを提供していることが多い。クラウドベースのオブジェクトストレージおよびブロックストレージを提供する主な企業を以下に挙げる。
- IBM – オブジェクトストレージ:データへのアクセス頻度と必要な容量に応じた段階的な料金体系を採用している。
- IBM – ブロックストレージ:容量に基づく料金に加え、スナップショットには追加料金がかかる。月額料金は0.25 IOPS/GBあたり0.05ドルから。
- Amazon S3:Simple Storage Service、通称「S3」は、階層化された機能豊富なオブジェクトベースのサービスで、アクセス頻度に応じて料金は1GBあたり0.00099ドルから0.023ドルまで。
- Amazon EBS:Elastic Block Store(EBS)は、30GBの無料利用枠を含む高性能ブロックストレージソリューションだ。
- Microsoft Blob Storage:「blob」と呼ばれるオブジェクトストレージで、アーカイブ料金は1GBあたり0.00099ドルから、プレミアム料金はデータストレージの全レベルで1GBあたり0.15ドル。
- Azure Disk Storage:Azure Virtual Machine上のブロックストレージで、最小の4GBディスクサイズの場合、料金は1GBあたり月額0.60ドルから。
- Google Cloud Persistent Disk:料金体系を簡素化したブロックストレージで、1GBあたり月額0.040ドルから。
- Google Cloud Storage:標準ストレージの料金が1GBあたり月額0.02ドルという、競争力のある価格のオブジェクトストレージ。
適切なストレージの選び方
一定規模に達した企業の多くは、規制遵守やアーカイブを目的としてデータを維持しながら、頻繁に利用するデータをブロックとして近くに置くため、両方のソリューションをハイブリッド構成で利用する。ストレージソリューションを選ぶ際には、マーケティング上の宣伝文句に惑わされず、どの方式が自社のニーズに適しているかを見極めることが重要だ。