はじめに
8月から中途で入社して、イチからクラウド(AWS)を勉強しています。
前職で新卒入社時にも類似の研修は受けたのですが、経験を積んで解像度が上がった状態で研修を受けなおすと分かりやすさが全く違いますね。
研修では、序盤でS3がストレージとして紹介され、その後EBSが再びストレージとして紹介されていました。同じストレージという位置づけのため違いが分からない方もいるかと思い、自分の理解の確認も兼ねて簡単に解説していこうと思います。
サービス比較
有名なものでS3/EBS/EFSがあります。
| 名称 | 種類 | サービス概要 | 類似/関連技術 |
|---|---|---|---|
| S3 | オブジェクトストレージ | ファイル配信・静的コンテンツ配信 | minio, cloudflare R2 |
| EBS: Elastic Block Storage | ブロックストレージ | 仮想ブロックストレージ。OSからはローカルディスクのように扱える | - |
| EFS: Elastic File Storage | ファイルストレージ | 複数のEC2から同じファイルシステムを共有したい用途。NFSでマウントして使う | NFSベースの共有ストレージ |
3つの中で最もレイヤーが低い(生に近い)のがEBSです。実態はネットワーク経由でアタッチされる仮想ブロックストレージですが、OSからはサーバーに直接接続された物理ディスク(NVMe/SSD)のように認識されます。S3やEFSと違ってOSの起動(ブート)ディスクとして利用できるのが大きな特徴です。
S3とEFSの大きな違いは 「アクセス手順」 と 「主な利用目的」 です。
S3はWeb API(HTTP/HTTPS)経由でアクセスするため、アプリケーションからの読み書きや、Webサービスを通じた不特定多数へのファイル配信・静的コンテンツ配信に適しています。
一方でEFSは、Linux OS等に直接マウント(NFS接続)して利用する共有ファイルシステムです。標準的なファイルシステム(POSIX準拠・階層構造やファイルロック機能を持つ)として振る舞うため、複数のEC2から同じデータを共有・同時アクセスしたい用途で重宝されます。
余談:類似サービス・プロダクト(主に学習・検証向け)
学習用途・個人用途であればS3やEFSのようなオブジェクト/ファイルストレージはOSSや別サービスで代替1することも可能です。下記に挙げるソフトウェアは完全な代替ではありませんが、個人で利用してストレージとしての仕組みや役割を理解してみるのはいかがでしょうか。
S3代替
minio: S3互換ストレージとして有名なソフトウェアで以前はオンプレで組むなら有力候補だったのですが、2026年4月にパブリックアーカイブ化しています- cloudflare R2: クラウドサービスなのでローカルマシン不要です。下り(エグレス)通信料が無料でS3より安く済む場合もあるため、個人利用もオススメです
- RustFS: 正式リリース前なので本番環境での使用は控えた方がよいかなという印象ですが、minio代替として勢いのあるOSSです。個人環境で試す分には十分だと思われます
- SeaweedFS: こちらもminio代替として注目されているOSSです。分散ファイルシステムなので動かすマシンにもスペックが求められます
EFS代替
- Linux+nfs-server: LinuxマシンのローカルストレージをNFSで共有フォルダ化することで、自作でEFSのような仕組みを構築できます
- NAS: NASの機能によっては、ブロックベースではなくファイルベースでストレージを作り、簡単にNFSで配信できるものもあります。NASにはQNAPやSynologyのようなメーカーが販売している完成品と、TrueNAS のようにPCにインストールして構築できるNAS用OSがあります
おわりに
余談で代替ツールや自作構成についても触れましたが、これらを自前で構築・運用しようとすると、環境構築や機材を揃えたりしなければならず、コストや労力がかかってしまいます。
こうしてローカルでの構築や代替手段の仕組みを意識してみると、AWSのありがたみをより深く実感できると思います。
皆さんもぜひ、それぞれのストレージ特性をしっかり理解した上で、目的に合ったサービスを使用していきましょう!
-
ストレージとしての役割の代替であって、高可用性・障害対応・認可認証・保守運用まで代替できるという意図の表現ではありません ↩