awsデータストレージまとめ(インスタンスストア・EBS・EFS・S3)
各ストレージ
インスタンス ストア
Elastic Block Store (EBS)
- ブロックレベルストレージ
- インスタンスから独立してデータを永続化する
- インスタンスが終了してもデータは残る
- 起動しているインスタンスにアタッチ(追加)できる
- 稼働中にサイズ変更、ボリュームタイプの変更など可能
- インスタンスとEBSは同じAZにある必要がある
Elastic File System (EFS)
- マネージドなサーバーレスなファイルレベルストレージ
- 最大サイズ16TiB(=tebibyte=1024GB)
- EC2でNFSとしてマウント可能
- オートスケール
- リージョン内のAZを跨いでマウント可能
- ただし複数のVPCに接続はできない
Simple Storage Service (S3)
- オブジェクトレベルストレージ
- インターネットストレージとしてURLでアクセス可能
- 無制限のストレージ容量
- 各オブジェクトは最大5TB
- バケットはリージョン単位で保存される
- 各オブジェクトのバージョニングによる変更追跡
- 少なくとも3つのAZにデータが保存(バックアップ)される
- 複数のストレージクラスによる料金プラン
- 各オブジェクトにURLがあり静的webページとしても使える
ストレージ形式について
ファイルレベルストレージ
- ファイルストレージ
- ファイルベース・ストレージ
ファイルによるデータ管理。
階層構造化が容易で、一意のデータパスによりファイルにアクセスする。
データにはファイル名、作成日時などの最低限のメタデータが付与される。
ブロックレべルストレージ
- ブロックストレージ
ディスクを論理ボリュームへ分割し、論理ボリュームをさらにブロックへ分割。
データをブロック単位で保存する(ブロックより大きなデータは複数ブロックへ保存される。連続性はない)
ボリューム、ブロック両方にIDが振られボリュームID+ブロックIDでデータを特定する事で高速なデータアクセスが可能。
ブロック単位での差分更新が可能なため、巨大なデータの更新が高速で行える。
メタデータは基本的にはない、もしくは非常に限定的。
オブジェクトレベルストレージ
- オブジェクトストレージ
- オブジェクトベース・ストレージ
一つのデータを一つのオブジェクトとして保存する。
オブジェクトは一意のIDを持ち、インデックス化され高速にアクセスできる。
多彩なメタ情報が付与され、セキュリティポリシーやアクセス権限に至るまで様々な情報を持つ事ができる。
通常はフラットな構造になるが、S3のようにバケットを入れ子構造にできるサービスもある。
一度書き込まれたオブジェクトは変更できず、オブジェクトは全体を一度で書き込む必要がある。
そのため巨大なデータを更新する場合などは、巨大なデータを再度全て書き込み、過去データを削除(もしくは履歴として残す)ような運用になる。