STEP 6:オブジェクトストレージの概念

📦 STEP 6: オブジェクトストレージの概念

オブジェクトストレージの基本を理解し、データレイク構築の土台を作ります

📋 このステップで学ぶこと

  • オブジェクトストレージとは何か
  • ファイルストレージ・ブロックストレージとの違い
  • S3 vs GCS vs Azure Blob の比較
  • オブジェクトストレージのユースケース
  • ストレージクラスの概念

💡 なぜオブジェクトストレージが重要なのか?

データ基盤を構築する上で、オブジェクトストレージは最も重要な技術の一つです。

企業のデータレイクの90%以上がオブジェクトストレージ(S3やGCS)上に構築されており、この技術を理解することがデータエンジニアとしての第一歩となります。

📦 1. オブジェクトストレージとは?

基本概念

オブジェクトストレージとは、ファイル(オブジェクト)を保存するためのクラウドストレージサービスです。写真、動画、ログファイル、バックアップなど、あらゆる種類のデータを保存できます。

💡 例え話:トランクルーム(貸し倉庫)

オブジェクトストレージは、巨大なトランクルームのようなものです。

トランクルーム(オブジェクトストレージ)のイメージ あなたの部屋(自分のPC) ↓ 預ける トランクルーム(S3/GCS) ├─ 荷物A(オブジェクト): 写真.jpg │ └─ ラベル: 「2024年1月、サイズ2MB、旅行写真」 ├─ 荷物B(オブジェクト): 売上データ.csv │ └─ ラベル: 「2024年1月、サイズ100MB、経理部門」 └─ 荷物C(オブジェクト): バックアップ.zip └─ ラベル: 「2024年1月、サイズ10GB、月次バックアップ」 ポイント: ・どんな荷物でも預けられる(ファイル形式を問わない) ・ラベル(メタデータ)で整理できる ・住所(URL)さえ分かれば、いつでも取り出せる ・容量を気にしなくていい(自動で拡張)

オブジェクトストレージの3つの構成要素

オブジェクトストレージは、3つの主要な要素で構成されています。

1. オブジェクト(Object)

保存されるファイル本体です。

  • データ本体:ファイルの中身(画像、CSV、動画など)
  • メタデータ:ファイルの情報(後述)
  • 一意のキー:ファイルを識別するためのパス

2. バケット(Bucket)

オブジェクトを入れる「容器」です。

  • 名前は世界で一意:他の人と被ってはいけない
  • 権限設定:誰がアクセスできるか
  • リージョン:どこに保存するか

3. メタデータ(Metadata)

オブジェクトに関する情報です。

  • システムメタデータ:サイズ、日時、コンテンツタイプ
  • カスタムメタデータ:自分で追加できるタグ
  • 用途:検索や分類に活用

📝 具体例:ECサイトのデータをS3に保存

バケット名: ec-company-data-lake (世界で一意の名前が必要) バケットの中身: ├─ orders/2024/01/15/order_001.json ← オブジェクト(キー) │ ├─ データ: {“order_id”: 1, “total”: 5000, …} │ └─ メタデータ: │ ├─ サイズ: 2KB │ ├─ 作成日: 2024-01-15 │ └─ Content-Type: application/json │ ├─ products/catalog.csv │ ├─ データ: (商品一覧のCSV) │ └─ メタデータ: サイズ: 50MB │ └─ images/products/item_001.jpg ├─ データ: (商品画像) └─ メタデータ: サイズ: 500KB アクセスURL例:
https://ec-company-data-lake.s3.ap-northeast-1.amazonaws.com/orders/2024/01/15/order_001.json

⚠️ 重要:「フォルダ」は実は存在しない

上の例で orders/2024/01/15/ はフォルダのように見えますが、実際にはフォルダは存在しません

これは単なる「キー(ファイル名)の一部」です。オブジェクトストレージはフラット構造で、全てのオブジェクトは同じ階層にあります。

「/」はただの文字として扱われ、UIがフォルダのように表示しているだけです。これは後のステップで詳しく学びます。

🗂️ 2. ストレージの3つの種類

ストレージには、3つの主要なタイプがあります。それぞれ特徴と用途が違うので、適切に使い分けることが重要です。

💡 例え話で理解しよう

3つのストレージを「本の管理方法」に例えてみましょう。

1. ファイルストレージ = 図書館 ・本が棚(フォルダ)に整理されている ・棚の場所(パス)をたどって本を探す ・複数の人が同じ本棚を使える 2. ブロックストレージ = 自分専用の本棚 ・自分の部屋に置いた本棚 ・超高速でアクセスできる ・自分しか使えない 3. オブジェクトストレージ = 倉庫サービス ・本にラベルを貼って倉庫に預ける ・ラベル(URL)で取り出す ・何冊でも預けられる(容量無制限) ・ちょっと取り出しに時間がかかる

3つのストレージタイプの比較

種類 特徴 用途
ファイルストレージ 階層構造(フォルダ)
共有ドライブ
ファイル共有
NAS
Windowsの共有フォルダ
AWS EFS、GCP Filestore
ブロックストレージ 低レベルアクセス
高速
データベース
OS
HDDやSSD
AWS EBS、GCP Persistent Disk
オブジェクトストレージ フラット構造
スケーラブル
HTTP経由
バックアップ
静的コンテンツ
データレイク
AWS S3
GCS
Azure Blob

それぞれを詳しく見ていく

1️⃣ ファイルストレージ

特徴:Windowsエクスプローラーのような階層構造で管理

C:\ ├─ Users\ │ └─ Documents\ │ └─ report.docx └─ Program Files\ └─ app.exe → フォルダの中にフォルダ(階層構造) → 会社の共有ドライブによく使われる

メリット:直感的、複数人で共有しやすい

デメリット:大規模データには向かない、スケールが難しい

2️⃣ ブロックストレージ

特徴:データを固定サイズのブロックに分割して保存。OSやデータベースが使う低レベルなストレージ。

ファイル → [ブロック1][ブロック2][ブロック3]… 例:100MBのファイル → 4KBのブロック × 25,600個に分割 → 必要なブロックだけ読み書き → 超高速アクセス

メリット:非常に高速、データベースに最適

デメリット:容量制限あり、1つのサーバーにしかマウントできない

3️⃣ オブジェクトストレージ ⭐ データ基盤の主役

特徴:フラット構造、HTTP経由でアクセス、実質無制限の容量

バケット/ ├─ オブジェクト1 (data/log.csv) ├─ オブジェクト2 (images/photo.jpg) └─ オブジェクト3 (backup/db.sql) → 実際にはフォルダはなく、パスっぽく見えるだけ → 全てフラット(同じ階層)に保存されている → URLでアクセス: https://bucket.s3.amazonaws.com/data/log.csv

メリット:実質無制限、スケーラブル、安価、高い耐久性

デメリット:ファイルシステムとしてマウント不可、ブロックストレージより遅い

💡 データ基盤では、オブジェクトストレージが主役

データレイク構築では、オブジェクトストレージが最適です。その理由:

  • 実質無制限: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%」の意味

「イレブンナイン」と呼ばれるこの数字は、驚異的な耐久性を示しています:

99.999999999% の意味 ・1,000万個のオブジェクトを保存した場合 ・10,000年に1回、1個が失われる可能性がある 現実的に言えば: ・10億ファイルを100年間保存しても ・1ファイルも失われない確率 これは複数のデータセンターに自動的にコピーを作成しているため

機能比較

機能 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サイトのデータ基盤

S3バケット: ec-company-data-lake ec-company-data-lake/ ├─ raw/ # 生データ(そのまま保存) │ ├─ orders/ │ │ └─ 2024/01/15/orders.json # 日付でパーティション │ ├─ users/ │ │ └─ 2024/01/15/users.csv │ └─ products/ │ └─ 2024/01/15/products.csv │ ├─ processed/ # 加工済みデータ │ ├─ daily_sales/ │ │ └─ 2024/01/15/sales.parquet │ └─ user_segments/ │ └─ 2024/01/15/segments.parquet │ └─ curated/ # 分析用データ(最終形) ├─ sales_reports/ └─ dashboards/ データの流れ: raw → processed → curated

📝 例2:機械学習プロジェクト

S3バケット: ml-image-classification ml-image-classification/ ├─ datasets/ # 学習データ │ ├─ train/ │ │ ├─ cat/ # カテゴリごとに分類 │ │ │ ├─ cat_001.jpg │ │ │ └─ cat_002.jpg │ │ └─ dog/ │ │ ├─ dog_001.jpg │ │ └─ dog_002.jpg │ ├─ validation/ │ └─ test/ │ ├─ models/ # 学習済みモデル │ ├─ v1.0/ │ │ └─ model.pkl │ └─ v2.0/ │ └─ model.pkl │ └─ predictions/ # 予測結果 └─ 2024/01/

📊 5. ストレージクラスの概念

ストレージクラスとは?

ストレージクラスとは、データのアクセス頻度に応じて、料金と性能を選べる仕組みです。これを上手く使うことで、コストを大幅に削減できます。

💡 例え話:引っ越し業者の倉庫サービス

引っ越し業者の倉庫サービスで考えてみましょう プラン1: すぐ取れる棚(手前) ・料金: 高い(月額1万円) ・取り出し: 即日 ・用途: よく使うもの(季節家電など) プラン2: 奥の棚 ・料金: 中くらい(月額5千円) ・取り出し: 翌日 ・用途: たまに使うもの(スーツケースなど) プラン3: 地下倉庫 ・料金: 激安(月額1千円) ・取り出し: 1週間後 ・用途: ほぼ使わないもの(アルバム、思い出の品) → オブジェクトストレージも同じ! アクセス頻度に応じてクラスを選ぶことでコスト最適化

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%コスト削減!

例:100TBのデータを1年間保存する場合 【全部Standardの場合】 100TB × $0.023/GB × 1000 × 12ヶ月 = $27,600/年(約400万円) 【ライフサイクルポリシーを設定した場合】 ・最初の30日: Standard(10TB)→ $276 ・31〜90日: Standard-IA(30TB)→ $450 ・91日以降: Glacier(60TB)→ $288 合計: 約$1,014/年(約15万円) → 年間385万円の削減!(約96%削減)

📝 ライフサイクルポリシーの設定例

S3では、以下のようなルールを設定して自動でクラスを移行できます:

ライフサイクルポリシー例: ルール1: 30日経過したら Standard-IA に移行 ルール2: 90日経過したら Glacier に移行 ルール3: 365日経過したら Deep Archive に移行 ルール4: 7年経過したら削除 → 一度設定すれば自動で最適化される!

💡 ストレージクラス選択のポイント

  • 毎日アクセス: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を使ってバケットを作成し、ファイルをアップロード・ダウンロードします。いよいよ、実際に手を動かしてクラウドストレージを体験しましょう!

📝 理解度チェック

問題 1 基礎

ファイルストレージ、ブロックストレージ、オブジェクトストレージの違いを説明してください。

【解答】

  • ファイルストレージ:階層構造(フォルダ)で管理。共有ドライブに最適。例:NAS、AWS EFS
  • ブロックストレージ:低レベルアクセス、高速。データベースやOSに最適。例:HDD/SSD、AWS EBS
  • オブジェクトストレージ:フラット構造、HTTP経由でアクセス。スケーラブルで大量データに最適。例:AWS S3、GCS
問題 2 基礎

オブジェクトストレージの耐久性「99.999999999%」とは、どういう意味ですか?

【解答】

99.999999999%(イレブンナイン)の耐久性とは、データが失われる確率が極めて低いことを意味します。

具体的には、1,000万個のオブジェクトを保存した場合、1万年に1回、1個失われる可能性があるという計算になります。

これは、複数のデータセンターに自動的にレプリケーション(複製)されているため、非常に高い耐久性を実現しています。

問題 3 応用

以下のケースで、どのストレージクラスを選ぶべきか答えてください。
1. 毎日アクセスするログファイル
2. 月1回程度確認するバックアップ
3. 法律で10年間保存が義務付けられているデータ(ほぼアクセスしない)

【解答】

  1. S3 Standard または GCS Standard
    理由:毎日アクセスするため、高速アクセスが必要。追加の取り出し料金もかからない。
  2. S3 Standard-IA または GCS Nearline
    理由:月1回程度のアクセスなら、低頻度アクセス用のクラスがコスト効率が良い。
  3. S3 Glacier Deep Archive または GCS Archive
    理由:ほぼアクセスしないため、最も安いアーカイブクラスを選択。取り出しに時間がかかるが、コストが最小限。
問題 4 応用

データレイク構築において、オブジェクトストレージが最適な理由を3つ挙げてください。

【解答例】

  1. 実質無制限のストレージ:TB〜PB級のデータを保存できる。自動的に拡張するため、容量を気にする必要がない。
  2. コストが安い:特にアーカイブクラスを使えば、1GB/月が$0.001以下。大量データを低コストで保存できる。
  3. 直接クエリ可能:AthenaやBigQueryで、S3/GCS上のデータを直接SQLクエリできる。データを移動せずに分析可能。

その他、「高い耐久性(99.999999999%)」「スケーラビリティ」「様々なフォーマット対応」なども正解です。

❓ よくある質問

Q1: オブジェクトストレージに保存できるファイルサイズの上限はありますか?

S3とGCSは、1オブジェクトあたり最大5TBです。

ただし、マルチパートアップロードを使えば、大きなファイルも分割してアップロードできます。実務では、数GB〜数百GBのファイルが一般的です。

Q2: オブジェクトストレージは、ファイルシステムとしてマウントできますか?

基本的にはできません。

オブジェクトストレージは、HTTP APIを通じてアクセスします。ただし、s3fsgcsfuseなどのツールを使えば、ファイルシステムのようにマウントすることも可能です(パフォーマンスは劣ります)。

Q3: S3とGCS、どちらが速いですか?

ほぼ同じ速度です。

両方とも高速で、ミリ秒単位でアクセスできます。速度よりも、他のサービス(Athena、BigQueryなど)との連携や、料金体系で選ぶことをおすすめします。

Q4: ストレージクラスは後から変更できますか?

はい、いつでも変更できます。

手動で変更することも、ライフサイクルポリシーを設定して自動的に移行することもできます。例えば、「30日経過したら自動的にS3 Standard-IAに移行」といった設定が可能です。

Q5: オブジェクトストレージのデータは、削除されることはありませんか?

非常に高い耐久性(99.999999999%)を持っています。

複数のデータセンターに自動的にレプリケーションされているため、ハードウェア障害があっても、データが失われることはほぼありません。

ただし、誤って削除した場合は復元できないので、バージョニング機能を有効にすることをおすすめします。

📝

学習メモ

クラウドデータ基盤(AWS・GCP) - Step 6

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE