昨今の組織は、膨大な量の非構造化データを生成し、処理しています。このデータには、画像や動画から、バックアップ、ログファイル、分析用の大規模なデータセットまで、あらゆるものが含まれます。これらの多様で、多くの場合非常に大きなファイルを効果的に保存、管理、アクセスするには、特殊なストレージ ソリューションが必要です。バイナリ ラージ オブジェクト(BLOB)ストレージは、これらの課題に対処する重要なテクノロジーとして登場し、非構造化データを処理するためのスケーラブルで費用対効果の高い方法を提供します。
バイナリ ラージ オブジェクト ストレージ システムは、大規模なスケーラビリティと高い耐久性を実現し、費用対効果を高めるように設計されているため、大量の非構造化データを保存できます。
バイナリ ラージ オブジェクト ストレージを完全に理解するには、まずそのコア コンポーネントであるオブジェクト ストレージとバイナリ ラージ オブジェクト(BLOB)自体を定義するとよいでしょう。
オブジェクト ストレージは、データをオブジェクトと呼ばれる個別の単位として管理するデータ ストレージ アーキテクチャです。データを階層的なディレクトリ構造(フォルダとファイル)で整理するファイル システムや、データを固定サイズのブロックとして管理するブロック ストレージとは異なり、オブジェクト ストレージ システムでは、各データが自己完結型のオブジェクトとして扱われます。
各オブジェクトには通常、次のものが含まれます。
BLOB はバイナリ ラージ オブジェクトの略で、単一のエンティティとして保存されるバイナリデータのコレクションを指します。「バイナリ」という用語は、データがテキストや特定の形式に限定されず、あらゆる形式になり得ることを意味します。実行可能ファイル、画像、音声または動画コンテンツ、圧縮アーカイブ、データベース バックアップ、その他の種類のデジタル情報などが考えられます。名前の「ラージ」の部分は、BLOB が通常、構造化データとともに従来のデータベース フィールドに直接保存するには大きすぎるファイルに使用されることを示しています。
したがって、バイナリ ラージ オブジェクト ストレージは、本質的には、オブジェクト ストレージ システム内にこれらの BLOB を個々のオブジェクトとして保存する手法です。たとえば、大きな動画ファイルをデータベース レコードに直接埋め込むのではなく、動画ファイルをオブジェクト ストレージ システムに保存し、その BLOB への参照(オブジェクトの固有識別子または URL)をデータベースに保存します。
バイナリ ラージ オブジェクト ストレージを使用するプロセスは、一般的に以下の主要なステップから構成され、オブジェクト ストレージ システムによってサポートされます。
ユーザーまたはアプリケーションが大きなバイナリ ファイルを保存する必要がある場合、関連するメタデータとともにデータを API 呼び出し(通常は HTTP/S 経由の RESTful API)を介してオブジェクト ストレージ システムに送信します。このデータをストレージ システムが受信します。
オブジェクト ストレージ システムは、アップロードされたバイナリデータとそのメタデータを受け取り、「オブジェクト」にカプセル化します。次に、この新しいオブジェクトに固有識別子を割り当てます。この識別子は、後でオブジェクトをアドレス指定して取得する際に使用されるため、非常に重要です。
システムはオブジェクトを保存し、多くの場合、複数の物理ストレージ デバイスに分散して複製します。場合によっては、異なるデータセンターに分散して複製することもあります。この分散型アプローチにより、データの耐久性(ハードウェア障害からの保護)と可用性が向上します。具体的なレプリケーション戦略は、選択したストレージ クラスやプロバイダのポリシーによって異なります。
BLOB に関連付けられたメタデータがインデックス化されます。これにより、オブジェクトが数十億個ある場合でも、メタデータタグに基づいてオブジェクトを検索または分類できます。
ユーザーまたはアプリケーションが BLOB にアクセスする必要がある場合、オブジェクトの固有識別子を使用してオブジェクト ストレージ システムにリクエストを送信します。システムはオブジェクトを見つけ、バイナリデータをリクエスタにストリーミングで返します。
オブジェクト ストレージ システムには、BLOB の読み取り、書き込み、削除を許可するユーザーを制御するメカニズムが用意されています。これは通常、Identity and Access Management(IAM)ポリシー、アクセス制御リスト(ACL)、または一時的なアクセスを許可する署名付き URL を使用して管理されます。
バイナリ ラージ オブジェクト ストレージを使用すると、非構造化データの管理において、以下の大きなメリットがあります。
スケーラビリティ
オブジェクト ストレージ システムは、エクサバイト以上にスケールできるように設計されており、大量のデータとオブジェクトに対応できます。そのため、大量のデータを生成するアプリケーションに適しています。
費用対効果
アクセス頻度の低い大量のデータを、従来の高性能ファイル システムやデータベースに保存すると、費用がかさむ可能性があります。オブジェクト ストレージでは、アクセス頻度と耐久性の要件に基づいて費用が異なる階層オプションが提供されることが多く、費用を最適化できます。
耐久性と可用性
主要なオブジェクト ストレージ サービスは、多くの場合、複数のデバイスまたは地理的ロケーションにまたがってオブジェクトを冗長的に保存することで、高いレベルのデータ耐久性を提供できます。これにより、ハードウェア障害によるデータ損失のリスクを最小限に抑え、高可用性をサポートできます。
リッチ メタデータ
各 BLOB に広範なカスタム メタデータを関連付けることができるため、データの整理が向上し、検索が容易になり、より高度なデータ マネジメント機能と分析機能を実現できます。
簡素化されたデータアクセス
標準的な HTTP API を介して BLOB にアクセスすることで、ウェブ アプリケーション、モバイルアプリ、その他のクラウド サービスとの統合を簡素化できます。各オブジェクトに付与されている一意の識別子により、複雑なファイルパスをたどることなく直接アクセスできます。
分離
BLOB をデータベースやアプリケーション サーバーの外部に保存することで、これらのプライマリ システムのパフォーマンスとスケーラビリティを向上させることができます。データベースは、扱いにくい種類の大規模なデータの管理から解放され、アプリケーションは静的コンテンツの配信をオフロードできます。
BLOB をホストするオブジェクト ストレージ サービスでは、アクセス頻度、取得時間、費用に基づいて分類された、さまざまなストレージ クラスやストレージ階層が提供されることがよくあります。これらの階層は、データの使用方法に基づいてストレージ費用を最適化する場合に役立ちます。一般的なタイプは次のとおりです。
低レイテンシと高スループットが要求される、アクセス頻度の高いデータ向けに設計されています。この階層は、アクティブなウェブサイト コンテンツ、モバイル アプリケーション データ、分析ワークロードによってアクティブに処理されるデータに適しています。通常、ストレージ費用は高くなりますが、アクセス費用を抑えることができます。
アクセス頻度が低い(月に 1 回程度など)データ向けですが、リクエスト時にすぐに利用できる状態を維持します。Standard Storage よりもストレージ費用を抑えることができますが、アクセス費用や取得費用がやや高くなる場合があります。長期的なバックアップ、迅速なアクセスが時折必要なデータ アーカイブ、障害復旧ファイルなどに最適です。
データへのアクセス頻度が低い(年に 1 回程度など)、長期的なデータ アーカイブ、コンプライアンス、保存を目的として設計されており、ストレージ費用を低く抑えることができます。データの取得には数分から数時間かかる場合があり、アクセス費用が高くなる可能性があります。規制に伴うアーカイブや、歴史的記録として保存する必要があるものの、日常業務では使用しないデータに適しています。
一部のプロバイダでは、アクセス頻度が極めて低く、取得に長い時間(数時間など)がかかっても問題ないデータ向けに、よりコールドな階層を提供している場合があります。こうした階層では、ストレージの費用が最も安くなります。
汎用性とスケーラビリティに優れた BLOB ストレージは、さまざまな業界における幅広い用途に対応します。
ユースケース | 機能 |
マルチメディア コンテンツの配信 | ウェブサイト、ストリーミング サービス、モバイルアプリの画像、動画、音声ファイル、リッチメディアなどを保存および提供する。 |
データレイクと分析 | さまざまなソースから収集した大量の元データ(構造化データ、半構造化データ、非構造化データ)を、ビッグデータ処理、ML モデルのトレーニング、ビジネス インテリジェンスのために、ネイティブ形式のままデータ レイクハウスに保存する。 |
ログファイルのアーカイブ | トラブルシューティング、セキュリティ分析、コンプライアンスを目的として、アプリケーション サーバーログ、セキュリティ ログ、監査証跡を保存する。 |
ドキュメント管理システム | 大量のドキュメント、PDF、スキャン画像、業務記録などを保存および管理する。 |
静的なウェブサイトのホスティング | ウェブサイトの静的アセット(HTML、CSS、JavaScript、画像)をオブジェクト ストレージから直接ホストすることで、優れたスケーラビリティと費用対効果を実現する。 |
ソフトウェア配布 | 大規模なソフトウェア パッケージ、アップデート、インストーラーを保存および配布する。 |
医療データ マネジメント | 医療画像(X 線、MRI)、患者記録、ゲノムデータを安全かつコンプライアンスに準拠した方法で保存する。 |
科学研究 | 実験、シミュレーション、センサー ネットワークから得られた大規模なデータセットを保存し、分析とコラボレーションに活用する。 |
ユースケース
機能
マルチメディア コンテンツの配信
ウェブサイト、ストリーミング サービス、モバイルアプリの画像、動画、音声ファイル、リッチメディアなどを保存および提供する。
データレイクと分析
さまざまなソースから収集した大量の元データ(構造化データ、半構造化データ、非構造化データ)を、ビッグデータ処理、ML モデルのトレーニング、ビジネス インテリジェンスのために、ネイティブ形式のままデータ レイクハウスに保存する。
ログファイルのアーカイブ
トラブルシューティング、セキュリティ分析、コンプライアンスを目的として、アプリケーション サーバーログ、セキュリティ ログ、監査証跡を保存する。
ドキュメント管理システム
大量のドキュメント、PDF、スキャン画像、業務記録などを保存および管理する。
静的なウェブサイトのホスティング
ウェブサイトの静的アセット(HTML、CSS、JavaScript、画像)をオブジェクト ストレージから直接ホストすることで、優れたスケーラビリティと費用対効果を実現する。
ソフトウェア配布
大規模なソフトウェア パッケージ、アップデート、インストーラーを保存および配布する。
医療データ マネジメント
医療画像(X 線、MRI)、患者記録、ゲノムデータを安全かつコンプライアンスに準拠した方法で保存する。
科学研究
実験、シミュレーション、センサー ネットワークから得られた大規模なデータセットを保存し、分析とコラボレーションに活用する。
バイナリ ラージ オブジェクトの保護は、機密データやミッション クリティカルなデータを扱う場合に特に重要です。効果的なセキュリティ戦略には、通常、多層型のセキュリティ対策が施されています。
暗号化
転送中の暗号化では、すべての API リクエストに HTTPS(TLS/SSL)を使用します。保存時の暗号化により、BLOB がストレージ上で暗号化されます。サーバーサイドの暗号化(プロバイダ管理の鍵)または顧客管理の暗号鍵 / 顧客指定の暗号鍵(CMEK / CSEK)のオプションを使用して、制御を強化できます。
Identity and access management(IAM):
きめ細かいアクセス制御ポリシーを実装して、特定の BLOB または BLOB のコレクション(バケットやコンテナと呼ばれることが多い)に対して、誰(ユーザー、グループ、サービス アカウント)がどのようなアクション(読み取り、書き込み、削除、一覧表示)を実行できるかを定義します。最小権限の原則に従い、必要な権限のみを付与してください。
アクセス制御リスト(ACL)
ACL は、別の制御レイヤとして機能し、個々のオブジェクトやバケットに対して、個々のユーザーやグループに特定の権限を付与できます。大規模な管理よりもきめ細かい制御のニーズに適している場合があり、特定の詳細な権限設定に対してきめ細かいアプローチを提供します。
署名付き URL / 事前署名付き URL
特定の BLOB に対して一時的かつ限定的なアクセス権を付与する必要がある場合(たとえば、ユーザーが購入したファイルのダウンロードを許可する場合など)、署名付き URL は安全な手段となります。こうした URL により、ユーザーが完全な認証情報を持っていなくても、特定の操作を実行できる時間制限付きの権限を付与できます。
バージョニング
オブジェクトのバージョニングを有効にして、BLOB の複数のバージョンを保持できます。必要に応じて以前のバージョンを復元できるため、誤った上書きや削除から保護できます。
監査ロギング
監査ロギングを有効にすると、BLOB とストレージ バケットに対するアクセス リクエストとアクションを追跡できます。これにより、セキュリティ分析、コンプライアンス レポート、不正アクセスの試みの特定に役立ちます。