本文へスキップ
BecomeCoder

AWSコース · 第4章 ストレージ · レッスン18

3種類のストレージ ― ブロック/ファイル/オブジェクト

導入

「データを保存する」と一言で言っても、AWSには目的の違う3つの保存方式があります。この分類を理解しておくと、後に出てくるEBS・EFS・S3の役割の違いがすっきり整理できます。

説明

AWSのストレージは、大きく次の3種類に分けられます。

ブロック 生のディスクとして OSから直接使う ファイル フォルダ階層で 複数台で共有 key + data オブジェクト キー+データで 平坦に大量保存
  • ブロックストレージ … データを固定サイズの「ブロック」に分けて保存する方式。OSからは「生のディスク」として見え、直接パーティションを切ったりファイルシステムを作ったりできる。代表例はEBS。基本的に1つのインスタンスに接続して使う。
  • ファイルストレージ … フォルダとファイルの階層構造を持つ、いわゆる「共有フォルダ」のような方式。複数のサーバーから同時にマウントして使える。代表例はEFS。
  • オブジェクトストレージ … 「キー(名前)」「データ本体」「メタデータ」の組み合わせで、フォルダ階層を持たず平坦に大量のデータを保存する方式。HTTP(S)経由のAPIでアクセスする。代表例はS3。

似ているようで、「OSに直接ディスクとして見せたいか(ブロック)」「複数サーバーでフォルダ共有したいか(ファイル)」「大量のファイルをAPI経由で保存・配信したいか(オブジェクト)」という目的の違いで使い分けます。

具体例

1つの写真投稿アプリの中に、実は3方式すべてが登場します。

アプリのどの部分か必要な保存のしかた選ぶ方式
EC2のOSやアプリ本体を置くディスクOSから生のディスクとして直接使いたいブロック(EBS)
3台のWebサーバーで共有する設定ファイル置き場複数台から同じフォルダを同時に読み書きファイル(EFS)
ユーザーが投稿した写真そのもの大量のファイルをAPIで保存し、そのまま配信オブジェクト(S3)

「どれか1つを選ぶ」のではなく、部分ごとに向いた方式を組み合わせるのが実際の設計です。この対応関係が頭に入っていれば、次のレッスン以降のEBS・EFS・S3が「あの役割か」とすぐ結びつきます。

読んでみよう

まずはこの3分類を頭に入れておけば、これから見ていくEBS・EFS・S3のどれがどの方式なのかがすぐに判断できるようになります。

次のレッスンへ →