📦 STEP 6: オブジェクトストレージの概念
オブジェクトストレージの基本を理解し、データレイク構築の土台を作ります
📋 このステップで学ぶこと
- オブジェクトストレージとは何か
- ファイルストレージ・ブロックストレージとの違い
- S3 vs GCS vs Azure Blob の比較
- オブジェクトストレージのユースケース
- ストレージクラスの概念
💡 なぜオブジェクトストレージが重要なのか?
データ基盤を構築する上で、オブジェクトストレージは最も重要な技術の一つです。
企業のデータレイクの90%以上がオブジェクトストレージ(S3やGCS)上に構築されており、この技術を理解することがデータエンジニアとしての第一歩となります。
📦 1. オブジェクトストレージとは?
基本概念
オブジェクトストレージとは、ファイル(オブジェクト)を保存するためのクラウドストレージサービスです。写真、動画、ログファイル、バックアップなど、あらゆる種類のデータを保存できます。
💡 例え話:トランクルーム(貸し倉庫)
オブジェクトストレージは、巨大なトランクルームのようなものです。
オブジェクトストレージの3つの構成要素
オブジェクトストレージは、3つの主要な要素で構成されています。
1. オブジェクト(Object)
保存されるファイル本体です。
- データ本体:ファイルの中身(画像、CSV、動画など)
- メタデータ:ファイルの情報(後述)
- 一意のキー:ファイルを識別するためのパス
2. バケット(Bucket)
オブジェクトを入れる「容器」です。
- 名前は世界で一意:他の人と被ってはいけない
- 権限設定:誰がアクセスできるか
- リージョン:どこに保存するか
3. メタデータ(Metadata)
オブジェクトに関する情報です。
- システムメタデータ:サイズ、日時、コンテンツタイプ
- カスタムメタデータ:自分で追加できるタグ
- 用途:検索や分類に活用
📝 具体例:ECサイトのデータをS3に保存
⚠️ 重要:「フォルダ」は実は存在しない
上の例で orders/2024/01/15/ はフォルダのように見えますが、実際にはフォルダは存在しません。
これは単なる「キー(ファイル名)の一部」です。オブジェクトストレージはフラット構造で、全てのオブジェクトは同じ階層にあります。
「/」はただの文字として扱われ、UIがフォルダのように表示しているだけです。これは後のステップで詳しく学びます。
🗂️ 2. ストレージの3つの種類
ストレージには、3つの主要なタイプがあります。それぞれ特徴と用途が違うので、適切に使い分けることが重要です。
💡 例え話で理解しよう
3つのストレージを「本の管理方法」に例えてみましょう。
3つのストレージタイプの比較
| 種類 | 特徴 | 用途 | 例 |
|---|---|---|---|
| ファイルストレージ | 階層構造(フォルダ) 共有ドライブ |
ファイル共有 NAS |
Windowsの共有フォルダ AWS EFS、GCP Filestore |
| ブロックストレージ | 低レベルアクセス 高速 |
データベース OS |
HDDやSSD AWS EBS、GCP Persistent Disk |
| オブジェクトストレージ | フラット構造 スケーラブル HTTP経由 |
バックアップ 静的コンテンツ データレイク |
AWS S3 GCS Azure Blob |
それぞれを詳しく見ていく
1️⃣ ファイルストレージ
特徴:Windowsエクスプローラーのような階層構造で管理
メリット:直感的、複数人で共有しやすい
デメリット:大規模データには向かない、スケールが難しい
2️⃣ ブロックストレージ
特徴:データを固定サイズのブロックに分割して保存。OSやデータベースが使う低レベルなストレージ。
メリット:非常に高速、データベースに最適
デメリット:容量制限あり、1つのサーバーにしかマウントできない
3️⃣ オブジェクトストレージ ⭐ データ基盤の主役
特徴:フラット構造、HTTP経由でアクセス、実質無制限の容量
メリット:実質無制限、スケーラブル、安価、高い耐久性
デメリット:ファイルシステムとしてマウント不可、ブロックストレージより遅い
💡 データ基盤では、オブジェクトストレージが主役
データレイク構築では、オブジェクトストレージが最適です。その理由:
- 実質無制限:TB〜PB級のデータを保存可能(自動拡張)
- 安価:1GBあたり月額数円(ブロックストレージの1/10以下)
- 耐久性:99.999999999%(イレブンナイン)= 10億ファイルを100年保存しても1ファイルも失われない
- 直接クエリ:AthenaやBigQueryで、データをコピーせずに分析可能
☁️ 3. S3 vs GCS vs Azure Blob 比較
クラウド各社が提供するオブジェクトストレージを比較してみましょう。基本機能はほぼ同じですが、細かい違いがあります。
3大オブジェクトストレージの基本情報
| 項目 | AWS S3 | GCS | Azure Blob |
|---|---|---|---|
| 正式名称 | Amazon Simple Storage Service | Google Cloud Storage | Azure Blob Storage |
| 開始年 | 2006年(最古参) | 2010年 | 2010年 |
| 容器の名前 | バケット | バケット | コンテナ |
| 最大サイズ | 5TB/オブジェクト | 5TB/オブジェクト | 4.77TB/ブロック |
| 耐久性 | 99.999999999% | 99.999999999% | 99.999999999% |
| 標準クラス料金 | $0.023/GB/月〜 | $0.020/GB/月〜 | $0.018/GB/月〜 |
💡 耐久性「99.999999999%」の意味
「イレブンナイン」と呼ばれるこの数字は、驚異的な耐久性を示しています:
機能比較
| 機能 | S3 | GCS | Azure Blob |
|---|---|---|---|
| バージョニング | ✅ あり | ✅ あり | ✅ あり |
| ライフサイクル管理 | ✅ あり | ✅ あり | ✅ あり |
| 暗号化 | ✅ あり | ✅ あり | ✅ あり |
| 静的Webホスティング | ✅ あり | ✅ あり | ✅ あり |
| 直接クエリ | Athena | BigQuery | Synapse Analytics |
どれを選ぶべきか?
🟠 AWS S3がおすすめな場合
- 他のAWSサービス(EC2、Lambda、Redshift)を使う
- 実務で最も使われており、情報が豊富
- 最も歴史が長く、安定性が高い
- エンタープライズでの採用実績No.1
🔵 GCSがおすすめな場合
- BigQueryとの連携が最強(外部テーブル機能)
- 料金体系がシンプルで分かりやすい
- UIがわかりやすく初心者向け
- 機械学習(Vertex AI)との連携が強い
🟣 Azure Blobがおすすめな場合
- Microsoft製品(Office 365、Power BI)との連携
- 企業での採用が増加中
- オンプレミスとのハイブリッド構成
- Active Directoryとの連携
💡 このコースでは
AWS S3を中心に学び、GCSも比較として学びます。
S3とGCS両方を使えるようになれば、Azure Blobも簡単に使えます(概念は同じため)。両方学ぶことで、どのクラウドでも対応できるスキルが身につきます。
🎯 4. オブジェクトストレージのユースケース
オブジェクトストレージは様々な用途で使われています。主要なユースケースを見ていきましょう。
主要な6つのユースケース
1. データレイク ⭐
用途:あらゆるデータを保存
- ログファイル(CSV、JSON、Parquet)
- 画像、動画、音声
- センサーデータ、IoTデータ
- 生データをそのまま保存
2. バックアップ・アーカイブ
用途:長期保存
- データベースバックアップ
- ファイルサーバーのバックアップ
- コンプライアンス対応(7年保存など)
- 災害対策(DR)
3. 静的Webサイト
用途:HTML、CSS、JSの配信
- 静的サイトホスティング
- SPAアプリケーション(React、Vueなど)
- CDN(CloudFront)との連携
- 低コストでスケーラブル
4. ビッグデータ分析
用途:大量データの分析
- AthenaやBigQueryで直接クエリ
- 機械学習の学習データ
- ETL処理の中間データ
- TB〜PB級のデータ処理
5. メディア配信
用途:画像・動画の配信
- 画像ホスティング
- 動画ストリーミング
- 音声ファイル配信(Podcast等)
- CDNとの連携で高速配信
6. IoTデータ収集
用途:センサーデータの保存
- IoTデバイスからのデータ
- 時系列データ
- リアルタイム分析の元データ
- 低コストで大量保存
実際のフォルダ構造例
📝 例1:ECサイトのデータ基盤
📝 例2:機械学習プロジェクト
📊 5. ストレージクラスの概念
ストレージクラスとは?
ストレージクラスとは、データのアクセス頻度に応じて、料金と性能を選べる仕組みです。これを上手く使うことで、コストを大幅に削減できます。
💡 例え話:引っ越し業者の倉庫サービス
AWS S3のストレージクラス
| クラス | 特徴 | 料金(東京) | 用途 |
|---|---|---|---|
| S3 Standard | 頻繁にアクセス 最も高速 |
$0.023/GB/月 (約3.5円) |
最新データ 頻繁に使うログ |
| S3 Intelligent-Tiering | 自動的に最適化 アクセス監視付き |
自動で最適化 | パターン不明 おまかせしたい |
| S3 Standard-IA | 低頻度アクセス 取り出し料金あり |
$0.0125/GB/月 (約2円) |
月1回程度 バックアップ |
| S3 Glacier Instant | アーカイブ 即時取り出し可能 |
$0.004/GB/月 (約0.6円) |
年数回アクセス |
| S3 Glacier Deep Archive | 長期アーカイブ 取り出しに12時間 |
$0.00099/GB/月 (約0.15円) |
7〜10年保存 コンプライアンス |
GCSのストレージクラス
| クラス | 特徴 | 料金(東京) | 用途 |
|---|---|---|---|
| Standard | 頻繁にアクセス 高速 |
$0.020/GB/月 | 最新データ |
| Nearline | 月1回程度 30日最小保存 |
$0.010/GB/月 | バックアップ |
| Coldline | 90日に1回程度 90日最小保存 |
$0.004/GB/月 | 災害復旧 |
| Archive | 年1回以下 365日最小保存 |
$0.0012/GB/月 | 長期保存 |
コスト削減の具体例
💰 ストレージクラスで90%コスト削減!
📝 ライフサイクルポリシーの設定例
S3では、以下のようなルールを設定して自動でクラスを移行できます:
💡 ストレージクラス選択のポイント
- 毎日アクセス:Standard
- 月1回程度:Standard-IA / Nearline
- 年数回:Glacier Instant / Coldline
- ほぼアクセスしない(コンプライアンス保存):Glacier Deep Archive / Archive
- パターン不明:Intelligent-Tiering(自動最適化)
📝 STEP 6 のまとめ
✅ このステップで学んだこと
1. オブジェクトストレージとは
- ファイル(オブジェクト)を保存するクラウドストレージ
- バケット、オブジェクト、メタデータで構成
- フラット構造(フォルダは実は存在しない)
2. 3つのストレージタイプ
- ファイルストレージ:階層構造、共有向け
- ブロックストレージ:高速、DB向け
- オブジェクトストレージ:スケーラブル、データレイク向け
3. S3、GCS、Azure Blobの比較
- 基本機能はほぼ同じ
- S3が最も普及、GCSはBigQueryとの連携が強み
4. ストレージクラス
- アクセス頻度に応じて料金を最適化
- ライフサイクルポリシーで自動移行
- 適切に設定すれば90%以上のコスト削減も可能
💡 次のステップへ
オブジェクトストレージは、データ基盤の土台となる重要な技術です。
次のSTEP 7では、実際にAWS S3を使ってバケットを作成し、ファイルをアップロード・ダウンロードします。いよいよ、実際に手を動かしてクラウドストレージを体験しましょう!
📝 理解度チェック
ファイルストレージ、ブロックストレージ、オブジェクトストレージの違いを説明してください。
【解答】
- ファイルストレージ:階層構造(フォルダ)で管理。共有ドライブに最適。例:NAS、AWS EFS
- ブロックストレージ:低レベルアクセス、高速。データベースやOSに最適。例:HDD/SSD、AWS EBS
- オブジェクトストレージ:フラット構造、HTTP経由でアクセス。スケーラブルで大量データに最適。例:AWS S3、GCS
オブジェクトストレージの耐久性「99.999999999%」とは、どういう意味ですか?
【解答】
99.999999999%(イレブンナイン)の耐久性とは、データが失われる確率が極めて低いことを意味します。
具体的には、1,000万個のオブジェクトを保存した場合、1万年に1回、1個失われる可能性があるという計算になります。
これは、複数のデータセンターに自動的にレプリケーション(複製)されているため、非常に高い耐久性を実現しています。
以下のケースで、どのストレージクラスを選ぶべきか答えてください。
1. 毎日アクセスするログファイル
2. 月1回程度確認するバックアップ
3. 法律で10年間保存が義務付けられているデータ(ほぼアクセスしない)
【解答】
- S3 Standard または GCS Standard
理由:毎日アクセスするため、高速アクセスが必要。追加の取り出し料金もかからない。 - S3 Standard-IA または GCS Nearline
理由:月1回程度のアクセスなら、低頻度アクセス用のクラスがコスト効率が良い。 - S3 Glacier Deep Archive または GCS Archive
理由:ほぼアクセスしないため、最も安いアーカイブクラスを選択。取り出しに時間がかかるが、コストが最小限。
データレイク構築において、オブジェクトストレージが最適な理由を3つ挙げてください。
【解答例】
- 実質無制限のストレージ:TB〜PB級のデータを保存できる。自動的に拡張するため、容量を気にする必要がない。
- コストが安い:特にアーカイブクラスを使えば、1GB/月が$0.001以下。大量データを低コストで保存できる。
- 直接クエリ可能:AthenaやBigQueryで、S3/GCS上のデータを直接SQLクエリできる。データを移動せずに分析可能。
その他、「高い耐久性(99.999999999%)」「スケーラビリティ」「様々なフォーマット対応」なども正解です。
❓ よくある質問
S3とGCSは、1オブジェクトあたり最大5TBです。
ただし、マルチパートアップロードを使えば、大きなファイルも分割してアップロードできます。実務では、数GB〜数百GBのファイルが一般的です。
基本的にはできません。
オブジェクトストレージは、HTTP APIを通じてアクセスします。ただし、s3fsやgcsfuseなどのツールを使えば、ファイルシステムのようにマウントすることも可能です(パフォーマンスは劣ります)。
ほぼ同じ速度です。
両方とも高速で、ミリ秒単位でアクセスできます。速度よりも、他のサービス(Athena、BigQueryなど)との連携や、料金体系で選ぶことをおすすめします。
はい、いつでも変更できます。
手動で変更することも、ライフサイクルポリシーを設定して自動的に移行することもできます。例えば、「30日経過したら自動的にS3 Standard-IAに移行」といった設定が可能です。
非常に高い耐久性(99.999999999%)を持っています。
複数のデータセンターに自動的にレプリケーションされているため、ハードウェア障害があっても、データが失われることはほぼありません。
ただし、誤って削除した場合は復元できないので、バージョニング機能を有効にすることをおすすめします。
学習メモ
クラウドデータ基盤(AWS・GCP) - Step 6