ストレージサーバ — 大きな塊を置く倉庫

上級の解説は準備中のため、上級の内容を表示しています。

概要 — まず全体をつかむ

中級では署名付きURL・冗長化を見ました。上級では、オブジェクトストレージの内部と運用へ。

詳細 — 1段階ずつ追う

オブジェクトストレージの内部

ファイル階層ではなく、キー→オブジェクトのフラットな空間として、水平に分散して保持します。

  • メタデータとデータの分離 — 索引(どこに何があるか)と実体を別に管理
  • 冗長化 — レプリケーション(丸ごと複製)/イレージャーコーディング(断片+パリティで容量効率)
  • 耐久性 — 複数拠点への分散で、非常に高い「失わなさ」を実現

大きな塊を扱う流れ

  1. 署名付きURL で、クライアントが倉庫と直接やり取り
  2. 巨大ファイルはマルチパートアップロード(分割・並列・部分再送)
  3. 保存後、イベント通知で後処理を起動(サムネイル生成・ウイルススキャン)
  4. 配信はCDNと組み合わせ、近くから

運用の勘所

  • 整合性モデル — 現行の主要オブジェクトストレージ(S3など)は全操作で強整合。一方、一般の分散システムでは結果整合のこともある
  • ライフサイクル/階層化 — ホット→クール→アーカイブへ自動移動(コスト最適化)
  • 保存時暗号(SSE) — サーバ側で暗号化、鍵管理と組み合わせ
  • アクセス制御 — バケットポリシー・署名の期限と権限を最小に

⚠️ 深部の落とし穴

  • 結果整合の読み取り — 分散設計次第では書いた直後に一覧に出ない/削除が見える(現行S3は強整合だが、一般には設計依存)
  • 公開設定・署名ミス — バケット公開や広すぎる署名で情報漏洩(重大事故の定番)
  • 大量の小オブジェクト — メタデータ管理・一覧コストが膨らむ
  • ホットオブジェクト — 特定オブジェクトへの集中(CDN/複製で分散)

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. 巨大ファイルを分割して並列にアップし、途中失敗も部分再送で済ませる仕組みは?

2. レプリケーション(丸ごと複製)に比べ、イレージャーコーディング(消失符号)の利点は?

3. 現行の主要なオブジェクトストレージ(S3など)が提供する整合性モデルとして正しいのは?

4. オブジェクトストレージがデータを保持する構造として正しいのは?

5. オブジェクト保存後に、サムネイル生成やウイルススキャンなどの後処理を自動で起動するのに使うのは?

6. 特定のオブジェクトにアクセスが集中する「ホットオブジェクト」への対処として適切なのは?

7. オブジェクトストレージで、保存時にサーバ側がデータを暗号化する仕組みを英字3文字の略語で答えてください。

8. 古いオブジェクトを「ホット→クール→アーカイブ」と安価な階層へ自動的に移動させ、コストを最適化する設定を何と呼ぶ?