オブジェクトストレージとは?クラウドスケールのファイル
オブジェクトストレージは、データをオブジェクト(ファイルにメタデータと一意のキーを加えたもの)として、bucket と呼ばれるフラットなコンテナに保存し、HTTP API 経由でアクセスします。膨大なスケールと耐久性のために構築されています。
オブジェクトストレージは、非構造化データ(画像、バックアップ、ログ、build artifact、静的サイト)を保存するクラウド流の方法です。ネストされたディレクトリを持つ filesystem やデータベース用のブロックデバイスとは異なり、HTTP 経由でフラットなキーバリューモデルを公開します。S3、Google Cloud Storage、Azure Blob、Cloudflare R2 が主な例です。
オブジェクト、キー、bucket
bucket 内の一意のキーの下にオブジェクト(データとメタデータ)を保存します。キーにはフォルダを模すためのスラッシュを含められますが、構造はフラットです。各オブジェクトはシンプルな HTTP API を通じてキーで取得されます。
他のストレージとの違い
- ブロックストレージはディスクやデータベースを支え、低レベルで高速です。
- ファイルストレージはディレクトリを持つ共有 filesystem を提供します。
- オブジェクトストレージは filesystem の機能をスケールと耐久性と引き換えにします。
耐久性とティア
オブジェクトストアはデータをレプリケートして非常に高い耐久性を実現し、hot(頻繁なアクセス)から cold のアーカイブまでのストレージクラスを提供します。lifecycle ルールはオブジェクトが古くなるにつれてより安価なティアへ移動させ、コストを自動的に最適化します。
一般的な用途
オブジェクトストレージは、バックアップ、data lake、メディア、ログ、静的ウェブサイトのホスティング(多くの場合 CDN の背後)に最適です。データベースのディスクのような低レイテンシのランダム書き込み向けではなく、耐久性が高くスケーラブルな blob 向けです。
CI/CD における役割
pipeline は build artifact やテストレポートの保存、依存関係のキャッシュ、そして build フォルダを bucket に同期して静的フロントエンドを deploy するためにオブジェクトストレージに依存します。deploy ステップは asset をアップロードし、bucket の前段に CDN があればキャッシュを無効化して、ユーザーが新しいリリースを見られるようにします。
重要なポイント
- オブジェクトストレージは、データをキー付きオブジェクトとしてフラットな bucket に保持し、HTTP 経由でアクセスします。
- filesystem の機能を犠牲にする代わりに、膨大なスケールと非常に高い耐久性を得ます。
- pipeline はこれを artifact 用に、また CDN の背後で静的サイトを deploy するために使います。