🪨

【AWS】S3・EBS・EFSの違いを把握する

に公開

はじめに

AWSサービスは、様々なストレージサービスを提供しており、AWS S3、EBS、EFSは、基本tけいなストレージサービスとして広く利用されています。

これらはすべて「データを保存する」という共通の目的を持ちますが、データの保存形式、アクセス方法、スケーラビリティなどが大きく異なります。
本記事では、これら3つのサービスの違いを詳細に解説し、適切な使い分けを明確にします。

サービスの概要

まずサービス名とその概要をまとめます。

サービス名 保存形式 概要
S3 オブジェクトストレージ インターネット経由でアクセス可能な、無限に拡張するストレージ
EBS ブロックストレージ EC2インスタンス専用の高性能な仮想ハードディスク
EFS ファイルストレージ 複数のEC2インスタンス間で共有できるネットワークファイルシステム

オブジェクトストレージとは

オブジェクトストレージは、従来のファイルシステムとは全く異なるアプローチをとる、クラウド時代の新しいストレージ形式です。

仕組みと特徴

データの保存単位:「オブジェクト」
データは「オブジェクト」として保存されます。各オブジェクトはデータ本体と、それを説明する豊富なメタデータ、そしてユニークなID(キー)で構成されます。
従来のファイルシステムのような階層構造は、実質的にはありません。

アクセス方式:HTTP/HTTPS(API)
オブジェクトストレージは、RESTful APIを介してHTTP/HTTPSプロトコルでアクセスされます。インターネットのどこらかでもアクセス可能です。

スケーラビリティと耐久性
事実上無限に拡張できます。容量を事前に予約する必要がありません。データを自動で複数のサーバー、さらには複数のデータセンターに分散・冗長化するため、極めて高い耐久性を誇ります。

デメリット
部分的な変更ができません。例えば、ファイルの一部を書き換える場合でもオブジェクト全体をダウンロードし、変更を加えてから、新しいオブジェクトとしてアップロードし直す必要があります。

ブロッックストレージとは

ブロックストレージは、もっとも古典的で、サーバーのOSが直接アクセスすることを前提としたストレージ形式です。

仕組みと特徴

データの保存単位:「ブロック」
データは固定長の小さな「ブロック」に分割されて保存されます。
データが必要なとき、OSは特定のブロックアドレスを指定して読み書きを要求します。

アクセス方式
サーバーに専用ボリュームとしてアタッチ(接続)され、OSがそれを認識してファイルシステムを構築します。
サーバーとストレージ間の通信には、通信の仕組みをよりハードウェアや物理的な動作に近い部分で扱うプロトコルが使われ、高速なI/Oと低レイテンシを実現します。

デメリット
基本的に単一のホストからのみアクセス可能です。複数のサーバーで共有する場合は、特別なクラスタリングソフトウェアが必要です。
ストレージ容量は事前にプロビジョニング(確保)する必要があり、柔軟な拡張性は持ちません。

ファイルストレージとは

ファイルストレージは、オンプレミスのファイルサーバー(NAS)をクラウドで実現するような仕組みです。

仕組みと特徴

データの保存単位:「ファイル」
データはユーザーが認識する「ファイル」単位で保存されます。
ファイルは階層構造(ディレクトリ/フォルダ)によって管理されます。

アクセス方式:ネットワーク経由での共有
NFS(Linux系)やSMB/CIFS(Windows系)といったファイル共有プロトコルを使ってネットワーク経由でアクセスします。
最も重要な特徴は、複数のサーバーから同時に同じファイルシステムをマウントし、読み書きできることです。

デメリット
ブロックストレージに比べてI/O性能が劣る傾向があります。ネットワークプロトコルによるオーバーヘッドやファイルロックなどの仕組みが影響します。

結論:使い分けの指針

  • 大容量・無限の拡張性・高耐久性が・Webアクセスが必要 -> オブジェクトストレージ
  • 高速性・OS統合が最優先 -> ブロックストレージ
  • 複数サーバーでの共有・階層構造が必要 -> ファイルストレージ

Amazonサービスの適切な選び方

それぞれのサービスが活躍する代表的な利用シーンを理解することで、適切な選択が可能になります。

Amazon S3を選ぶべきケース

S3は「非構造データ」や「大容量データ」の保存に最適です。

  1. 静的Webサイトのホスティング:HTML、CSS、JavaScriptなどの静的ファイルをS3に置くことで、サーバーレスなWebサイトを構築できます。
  2. データレイク/ビッグデータ分析:構造化されていないログデータ、センサーデータなどを大量に保存し、AthenaやEMRといった分析サービスと連携させる場合。
  3. バックアップとアーカイブ:災害対策や長期ほぞんを目的としたデータの保管場所。
  4. コンテンツ配信:画像、動画などのマルチメディアファイルを保存し、Amazon CloudFront(CDN)と連携させて高速配信する場合。

Amazon EBSを選ぶべきケース

EBSは「EC2インスタンスのコアなデータ保存に最適です。

  1. OSブートボリューム:EC2インスタンスを起動するためのOSを格納するボリューム。
  2. リレーショナルデータベース:MySQL、PostgreSQLなどのデータベースのデータ格納場所。低レイテンシと高スループットが求められるため、EBSが必須です。
  3. 単一サーバーのアプリケーションデータ:1つのEC2インスタンスからのみアクセスできれば良い、アプリケーションのログファイルや設定ファイル。

Amazon EFSを選ぶべきケース

EFSは「複数のサーバー間での共有」が必須な場合に最適です。

  1. コンテンツ管理システム(CMS):複数のWebサーバー(EC2)が同じ画像やアップロードファイルにアクセスする必要がある場合。
  2. 開発・テスト環境:複数の開発者が共通のファイルを共有し、作業を進める必要がある場合。
  3. ホームディレクトリの共有:複数のユーザーやEC2インスタンスが同じユーザーデータにアクセスする必要がある仮想デスクトップ環境など。

まとめ

  • S3 (オブジェクト): 無限の容量と耐久性を持つ、Webアクセス可能なデータレイク・バックアップ用ストレージ。
  • EBS (ブロック): EC2インスタンス専用の高速な仮想ディスクで、OSやデータベースのデータ保存に最適。
  • EFS (ファイル): 複数のEC2インスタンス間で同時共有できるネットワークファイルシステム(NAS)。

Discussion