開発者ドキュメント

オブジェクトストレージとブロックストレージサービス

序章

柔軟でスケーラブルなデータストレージは、最新の技術とツールで開発されているほとんどのアプリケーションとサービスのベースライン要件です。 大量または少量の画像、ビデオ、またはテキストのブロブを保存するかどうかにかかわらず、アプリケーション開発者は、ユーザー生成コンテンツ、ログ、バックアップなどを保存および取得するためのソリューションを必要としています。

今日の複雑な展開、コンテナ、および一時的なインフラストラクチャにより、単一のサーバー上のディスクにファイルを保存するだけの時代は終わりました。 クラウドプロバイダーは、最新のアプリケーション展開のストレージニーズを満たすサービスを開発しており、それらは主にオブジェクトストレージとブロックストレージの2つのカテゴリに当てはまります。

両方を見て、それぞれの一般的な長所、短所、およびユースケースについて説明しましょう。

ブロックストレージとは

ブロックストレージサービスは比較的シンプルでおなじみです。 これらは、ネットワーク上にハードドライブなどの従来のブロックストレージデバイスを提供します。 クラウドプロバイダーは、多くの場合、任意のサイズのブロックストレージデバイスをプロビジョニングして仮想マシンに接続できる製品を持っています。

そこから、通常のディスクのように扱います。 ファイルシステムでフォーマットしてファイルを保存したり、複数のデバイスをRAIDアレイに結合したり、ブロックデバイスに直接書き込むようにデータベースを構成したりして、ファイルシステムのオーバーヘッドを完全に回避できます。 さらに、ネットワークに接続されたブロックストレージデバイスには、通常のハードドライブに比べていくつかの独自の利点があります。

これは非常に柔軟な設定であり、ほとんどすべての種類のアプリケーションに役立ちます。 このテクノロジーの長所と短所をまとめてみましょう。

ブロックストレージのいくつかの利点は次のとおりです。

ブロックストレージの欠点は次のとおりです。

ブロックストレージサービスは、その高速IO特性により、従来のデータベースにデータを格納するのに適しています。 さらに、通常のファイルシステムストレージを必要とする多くのレガシーアプリケーションは、ブロックストレージデバイスを使用する必要があります。

クラウドプロバイダーがブロックストレージサービスを提供していない場合は、 OpenStack Cinder Ceph 、または多くのNASデバイスで利用可能な組み込みのiSCSIサービスを使用して独自のサービスを実行できます。

オブジェクトストレージとは

クラウドコンピューティングの現代の世界では、オブジェクトストレージは、HTTPAPIを使用したデータとメタデータの非構造化ブロブの保存と取得です。 ファイルシステムを使用してファイルをブロックに分割してディスクに保存する代わりに、ネットワーク上に保存されているオブジェクト全体を処理します。 これらのオブジェクトは、画像ファイル、ログ、HTMLファイル、または任意の自己完結型のバイトブロブである可能性があります。 従う必要のある特定のスキーマや形式がないため、非構造化です。

オブジェクトストレージは、開発者のエクスペリエンスを大幅に簡素化したために普及しました。 APIは標準のHTTPリクエストで構成されているため、ライブラリはほとんどのプログラミング言語用に迅速に開発されました。 データのblobの保存は、オブジェクトストアへのHTTPPUTリクエストと同じくらい簡単になりました。 ファイルとメタデータの取得は、通常のGETリクエストです。 さらに、ほとんどのオブジェクトストレージサービスはファイルをユーザーに公開して提供することもできるため、静的アセットをホストするためにWebサーバーを維持する必要がありません。

さらに、オブジェクトストレージサービスは、使用するストレージスペースに対してのみ課金されます(HTTPリクエストごと、および転送帯域幅に対しても課金されるものもあります)。 これは、使用に応じて拡張できるコストでワールドクラスのストレージとアセットのホスティングを利用できる小規模な開発者にとっては朗報です。

ただし、オブジェクトストレージはすべての状況に適したソリューションではありません。 メリットとデメリットの概要を見てみましょう。

オブジェクトストレージのいくつかの利点は次のとおりです。

オブジェクトストレージのいくつかの欠点は次のとおりです。

これらのプロパティがあるため、オブジェクトストレージは、静的アセットのホスティング、画像や動画などのユーザー生成コンテンツの保存、バックアップファイルの保存、ログの保存などに役立ちます。

いくつかの自己ホスト型オブジェクトストレージソリューションがありますが、ホスト型ソリューションの利点のいくつかを放棄します(ハードドライブやスケーリングの問題について心配する必要がないなど)。 Go言語で記述された人気のオブジェクトストレージサーバーであるMinio Ceph 、または OpenStackSwiftを試すことができます。

結論

ストレージソリューションの選択は、開発者にとって複雑な決定になる可能性があります。 この記事では、ブロックストレージサービスとオブジェクトストレージサービスの両方の長所と短所について説明しました。 十分に複雑なアプリケーションでは、すべてのニーズを満たすために両方のタイプのストレージが必要になる可能性があります。

モバイルバージョンを終了