「S3、EBS、EFS。AWSのストレージサービスが3つもあるけど、結局どれを使えばいいんだろう?」
オンプレの世界では、ストレージといえばサーバー内蔵のローカルディスクか、SANやNASの共有ストレージか、という2択がほとんどでした。ところがAWSに来ると、Amazon S3、Amazon EBS、Amazon EFSという3つのストレージサービスが並んでいて、それぞれ用途も料金体系もまったく異なります。選択を間違えると、パフォーマンスが足りなくて障害が起きたり、逆に月額コストが想定の数倍に膨れ上がったりします。
この記事では、S3・EBS・EFSの違いを「ストレージの種類」「アクセス方式」「料金」「ユースケース」の4軸で徹底比較し、オンプレ経験者が迷わず選べる判断基準を解説します。

なぜAWSにストレージが3種類あるのか?
オンプレ時代を思い出してみてください。サーバーの内蔵ディスク(DAS)はOSやアプリケーションのインストール先として使い、NASはチーム間でファイルを共有するために使い、バックアップテープやオブジェクトストレージは長期保管用に使っていたはずです。
AWSの3つのストレージサービスは、まさにこの役割分担をクラウド上で再現したものです。
・Amazon EBS(Elastic Block Store): サーバー内蔵ディスク(DAS/SAN)に相当。EC2インスタンスに直接アタッチして使うブロックストレージ
・Amazon EFS(Elastic File System): NASに相当。複数のEC2インスタンスから同時にマウントして使える共有ファイルストレージ
・Amazon S3(Simple Storage Service): テープライブラリやオブジェクトストレージに相当。HTTP/HTTPS経由でアクセスする大容量データの保管庫
それぞれがカバーする領域が違うからこそ、3種類存在するわけです。問題は「自分のワークロードにどれが合うか」の判断が、オンプレの経験だけでは難しいこと。次のセクションから、1つずつ掘り下げていきます。
Amazon S3の特徴と得意領域
1. オブジェクトストレージという考え方
S3は「オブジェクトストレージ」というカテゴリに属します。オンプレのファイルシステムのようにディレクトリ階層を持つのではなく、「バケット」というコンテナの中に「オブジェクト」(ファイル+メタデータ)をフラットに格納する仕組みです。
ファイルシステムとの最大の違いは、オブジェクトの一部だけを書き換えるといった操作ができないこと。更新するときはオブジェクト全体を上書きします。そのため、データベースのデータファイルやログのように頻繁に追記されるファイルの置き場所には向きません。
一方で、1つのオブジェクトで最大5TBまで格納でき、バケット全体の容量に上限はありません。99.999999999%(イレブンナイン)の耐久性を持ち、データ消失リスクはほぼゼロです。
2. S3が活きるユースケース
・静的ファイル配信: Webサイトの画像・CSS・JSファイルのホスティング(CloudFrontと組み合わせてCDN配信)
・バックアップ・アーカイブ: データベースダンプ、ログファイルの長期保管
・データレイク: ビッグデータ分析用の生データ集約先(Athena・Redshift Spectrumと連携)
・アプリケーション間のデータ受け渡し: ETLパイプラインの中間ファイル置き場
3. S3の料金体系
S3の料金は「保存容量」「リクエスト数」「データ転送量」の3要素で決まります。東京リージョン(ap-northeast-1)のS3 Standardの場合、保存料金は1GBあたり月額約$0.025です(2026年4月時点)。
保存しているだけなら非常に安価ですが、GETリクエストが大量に発生するワークロードでは、リクエスト料金が無視できない額になることがあります。料金見積もりでは保存容量だけでなく、アクセス頻度も必ず考慮してください。

Amazon EBSの特徴と得意領域
1. ブロックストレージとは何か
EBSは「ブロックストレージ」です。オンプレのサーバーに搭載するSSDやHDDと同じ感覚で、EC2インスタンスにアタッチしてファイルシステム(ext4やxfs)をフォーマットし、マウントして使います。
オンプレとの最大の違いは、EBSボリュームはネットワーク経由でEC2インスタンスに接続されるという点です。物理的に同じ筐体に入っているわけではないため、インスタンスを停止・終了してもデータは残ります。逆に、ネットワーク越しのアクセスなので、インスタンスストアと比較するとわずかにレイテンシが大きくなります。
2. ボリュームタイプの選択
EBSには用途に応じた複数のボリュームタイプがあります。
| ボリュームタイプ | 最大IOPS | 用途 | 料金目安(東京、2026年4月時点) |
|---|---|---|---|
| gp3(汎用SSD) | 16,000 | 一般的なワークロード | $0.096/GB/月 |
| io2 Block Express | 256,000 | 高IOPS要求のDB | $0.142/GB/月 + IOPS課金 |
| st1(スループット最適化HDD) | 500 | 大容量ログ処理 | $0.054/GB/月 |
| sc1(コールドHDD) | 250 | アクセス頻度の低いデータ | $0.018/GB/月 |
オンプレでSANのLUNを切り出すときに「IOPS要件はどれくらいか」を検討していたのと同じように、EBSでもボリュームタイプの選定がパフォーマンスとコストに直結します。迷ったらgp3から始めるのが定石です。
3. EBSが活きるユースケース
・OSのブートボリューム: EC2のルートデバイスとして使用
・データベース: MySQL、PostgreSQL、Oracleなどのデータファイル格納先
・トランザクション処理: ランダムI/Oが多いアプリケーション
・単一インスタンスのデータ保存: アプリのローカルデータやキャッシュファイル
4. EBSの制約
EBSボリュームは、原則として1つのEC2インスタンスにしかアタッチできません(io2のマルチアタッチ機能を除く)。また、同一アベイラビリティゾーン(AZ)内のEC2インスタンスにしかアタッチできないため、AZをまたいだ利用はできません。この制約は、オンプレのDAS(Direct Attached Storage)に似ています。
Amazon EFSの特徴と得意領域
1. マネージドNFSという位置づけ
EFSは、AWSが提供するフルマネージドのNFSv4ファイルシステムです。オンプレで使っていたNetAppやEMCのNASと同じ感覚で、複数のEC2インスタンスから同時にマウントしてファイルを読み書きできます。
オンプレのNASとの違いは、容量のプロビジョニングが不要なこと。EFSはファイルを追加すれば自動的に拡張し、削除すれば自動的に縮小します。容量設計のための見積もりや、ボリュームの拡張作業は必要ありません。
2. EFSが活きるユースケース
・Webサーバーのコンテンツ共有: 複数のEC2インスタンスで同じドキュメントルートを参照する
・コンテナのデータ共有: Amazon ECSやEKSのタスク間で永続データを共有する
・開発環境のホームディレクトリ: 複数の開発者が同じファイルにアクセスする
・機械学習のトレーニングデータ: 複数のGPUインスタンスから同じデータセットを読み込む
3. EFSの料金体系
EFSの料金はストレージクラスによって異なります。東京リージョン(ap-northeast-1)の場合、EFS Standardは1GBあたり月額約$0.36です(2026年4月時点)。EBS gp3($0.096/GB/月)やS3 Standard($0.025/GB/月)と比較すると、GB単価はかなり割高です。
ただし、EFS Infrequent Access(EFS IA)を活用すれば、アクセス頻度の低いファイルを自動的に低価格のストレージ層に移動でき、コストを大幅に削減できます。EFS IAの保存料金は1GBあたり月額約$0.020で、S3 Standardよりも安くなります。ライフサイクルポリシーを設定して、一定期間アクセスのないファイルを自動でIAに移すのが定番の運用です。
3サービス比較表で整理する
ここまでの内容を表で一覧にまとめます。
| 比較項目 | Amazon S3 | Amazon EBS | Amazon EFS |
|---|---|---|---|
| ストレージ種別 | オブジェクト | ブロック | ファイル(NFS) |
| オンプレ相当 | オブジェクトストレージ / テープ | DAS / SAN | NAS(NetApp等) |
| アクセス方式 | HTTP/HTTPS(API) | ブロックデバイス(マウント) | NFSv4(マウント) |
| 同時アクセス | 無制限(APIリクエスト) | 原則1インスタンス | 数千インスタンス同時可 |
| 最大容量 | 無制限 | 64TB/ボリューム | 無制限(自動拡張) |
| レイテンシ | 数十〜数百ミリ秒 | サブミリ秒 | 数ミリ秒 |
| 料金目安(東京、2026年4月時点) | $0.025/GB/月 | $0.096/GB/月(gp3) | $0.36/GB/月(Standard) |
| 耐久性 | 99.999999999% | 99.999% | 99.999999999% |
| AZの制約 | リージョン全体 | 単一AZ | リージョン全体 |
この表を見ると、「コストならS3」「パフォーマンスならEBS」「共有ならEFS」という大まかな傾向が見えてきます。
判断フロー:どのストレージを選ぶか
選定で迷ったときは、以下の3つの質問に順番に答えてください。
質問1: 複数のインスタンスから同時にアクセスする必要があるか?
→ Yesなら、ファイルシステムとしてマウントしたいならEFS、APIアクセスで十分ならS3。
質問2: ブロックデバイスとしてマウントする必要があるか?
→ Yesなら、EBS一択。データベースのデータファイルやOSのブートボリュームがこれに該当します。
質問3: データの読み書き頻度はどれくらいか?
→ 頻繁に読み書きする → EBSまたはEFS
→ 書き込みは少なく読み取り中心 → S3(+ CloudFrontで高速化)
→ 保管がメインでほとんどアクセスしない → S3(Glacier系ストレージクラスで大幅コスト削減)
現場では、1つのシステムで3サービスを併用するのが普通です。「EBSにデータベース、EFSにアプリケーションの設定ファイル共有、S3にバックアップとログ保管」という組み合わせは、多くのWebアプリケーションで見られる典型パターンです。
よくあるトラブルと対処法
1. EBSのIOPS不足によるパフォーマンス低下
データベースサーバーで「ディスクI/Oが遅い」という報告があったら、まずCloudWatchのVolumeQueueLengthメトリクスを確認してください。この値が常に1以上になっているなら、I/Oリクエストが待ち行列に溜まっている=IOPSが足りていないサインです。
対処法は、gp3のIOPSプロビジョニングを増やすか、io2に変更すること。EBSはオンラインでボリュームタイプを変更できるので、サーバーを停止する必要はありません。
# gp3ボリュームのIOPSを変更する例(AWS CLI) aws ec2 modify-volume \ --volume-id vol-0123456789abcdef0 \ --iops 10000 \ --throughput 400 \ --region ap-northeast-1
2. S3の「403 Access Denied」で原因が特定できない
S3のアクセス制御は、IAMポリシー・バケットポリシー・ACL・VPCエンドポイントポリシー・S3 Block Public Accessの5つが絡み合っています。どれか1つでも「Deny」になっていればアクセスは拒否されます。
トラブルシューティングの手順は以下のとおりです。
・Step 1: IAM Access Analyzerでポリシー評価を確認する
・Step 2: CloudTrailのログでエラーの詳細(ErrorCode, ErrorMessage)を確認する
・Step 3: S3 Block Public Accessの設定が想定どおりか確認する
・Step 4: VPCエンドポイントを経由している場合、エンドポイントポリシーを確認する
オンプレのNASで「アクセス権が足りない」と言われたら、ファイルのパーミッションとACLを見れば済みましたが、S3ではチェックすべきレイヤーが多い分、ハマりやすいポイントです。
3. EFSのコストが想定以上に高い
EFS Standardはギガバイト単価がEBSの約4倍です。「とりあえずEFSにデータを入れておいたら、月末の請求が跳ね上がった」というのはよくある話です。
対処法は2つあります。
・ライフサイクルポリシーの設定: 一定期間(7日・14日・30日・60日・90日から選択)アクセスのないファイルを自動でEFS IAに移動させる
・スループットモードの見直し: Bursting(バースト)モードからElastic(弾力性)モードに変更して、使った分だけ課金に切り替える
# EFSライフサイクルポリシーの設定例(AWS CLI) aws efs put-lifecycle-configuration \ --file-system-id fs-0123456789abcdef0 \ --lifecycle-policies TransitionToIA=AFTER_30_DAYS \ --region ap-northeast-1
料金の実例で比較する
「100GBのデータを1か月間保存した場合」の料金を、東京リージョンで比較してみます(2026年4月時点の料金)。
| サービス | ストレージクラス | 100GBの月額 |
|---|---|---|
| Amazon S3 | Standard | 約$2.50 |
| Amazon S3 | Glacier Instant Retrieval | 約$0.50 |
| Amazon EBS | gp3 | 約$9.60 |
| Amazon EBS | sc1 | 約$1.80 |
| Amazon EFS | Standard | 約$36.00 |
| Amazon EFS | Infrequent Access | 約$2.00 |
EFS StandardがEBSの約4倍、S3の約14倍という価格差がはっきり見えます。EFSの利便性(自動拡張・複数インスタンス共有)には相応のコストがかかるということです。「NASが必要な場面でだけEFSを使い、それ以外はEBSかS3に寄せる」のがコスト最適化の基本方針になります。

本記事のまとめ
AWSの3つのストレージサービスを、オンプレの対応物と紐づけて整理すると以下のようになります。
| やりたいこと | AWSサービス | オンプレ相当 |
|---|---|---|
| EC2にディスクを追加したい | Amazon EBS | DAS / SAN LUN |
| 複数サーバーでファイル共有したい | Amazon EFS | NAS(NetApp / EMC) |
| 大量データを安く保管したい | Amazon S3 | オブジェクトストレージ / テープ |
| データベースを動かしたい | Amazon EBS(io2/gp3) | 高速SAN |
| Webの静的ファイルを配信したい | Amazon S3 + CloudFront | CDN + ストレージ |
「ブロックストレージが必要ならEBS、ファイル共有が必要ならEFS、それ以外はS3」。この判断軸を持っておけば、AWSのストレージ選定で大きく外すことはありません。
ただし、コスト差は無視できません。EFS Standardの料金はS3の14倍です。EFS IAやS3 Glacierなどの低頻度アクセス層を活用し、使わないデータには安い保管場所を用意しましょう。ストレージの選定とコスト最適化はセットで考えるのが、クラウドインフラ設計の基本です。
AWSストレージの設計で迷っていませんか?
クラウド実務に役立つ「Glossary Comparison」カテゴリの記事を他にもまとめています。あわせて読みたい関連記事はこちらからどうぞ。
関連記事
EBSとS3の違いを5項目で整理(ブロック/オブジェクト・料金・耐久性・アクセス方法・スケール)
EBS(Elastic Block Store)とS3(Simple Storage Service)は名前が似ているため混同されがちですが、設計思想がまったく異なります。EBSはEC2に直接アタッチして使うブロックストレージ、S3はHTTPS経由でアクセスするオブジェクトストレージで、用途・料金・耐久性すべてが異なる前提で選定する必要があります。
| 項目 | EBS | S3 |
|---|---|---|
| 種別 | ブロックストレージ | オブジェクトストレージ |
| 料金(東京・月額) | gp3:$0.096/GB | Standard:$0.025/GB |
| 耐久性 | 99.999%(5-nine) | 99.999999999%(11-nine) |
| アクセス方法 | EC2にアタッチ・OSがマウント | HTTPS API(GET/PUT) |
| スケール | 最大64TiB/ボリューム | 無制限・自動スケール |
判断基準はシンプルです。OSやデータベースが直接読み書きする必要があるならEBS、画像・ログ・バックアップ・静的コンテンツのようにアプリケーションがAPI経由で扱えるデータならS3です。料金差は約4倍あるため、EC2のルートボリューム以外でEBSを大量に確保している場合、S3への移行で大幅なコスト削減が可能です。
ap-northeast-1(東京リージョン)の実料金比較 — S3 Standard / EBS gp3 / EFS Standard
東京リージョン(ap-northeast-1)の2026年5月時点の標準料金は以下の通りです。同じ100GBを1ヶ月保存する場合、選択するストレージで月額コストが10倍以上変わるため、用途に合った選定が必須です。
| サービス | 単価(GB/月) | 100GB/月 | 1TB/月 |
|---|---|---|---|
| S3 Standard | $0.025 | $2.50 | $25.00 |
| EBS gp3 | $0.096 | $9.60 | $96.00 |
| EFS Standard | $0.36 | $36.00 | $360.00 |
S3はEBSの約1/4、EFSの約1/14の単価で、コスト効率が圧倒的に高いストレージです。ただしS3にはリクエスト課金(PUT $0.0047/1000件、GET $0.00037/1000件)と外部転送料金($0.114/GB)が別途発生するため、頻繁な小ファイル更新や大量ダウンロードを伴う用途では総額が膨らみます。EBS gp3はIOPS 3000・スループット125MB/sまで追加料金なしで含まれており、データベース用途の標準解です。EFSは単価が高い代わりに複数EC2からの同時マウントが可能で、共有が必要な場合のみ選択します。
EFS vs EBS の使い分け — 共有ファイルシステムが必要なケース・不要なケース
EFSとEBSの選定で最初に判断すべきは「複数EC2から同時に同じファイルにアクセスする必要があるか」の一点です。EBSは原則1台のEC2にしかアタッチできず(io2 Block Expressのマルチアタッチ例外を除く)、EFSはNFSv4プロトコルで複数EC2から同時マウントできます。
EFSが必要なケースは、Webサーバーを2台以上で冗長化してアップロード画像を共有する構成、CMSのwp-content/uploadsを複数インスタンスで共有する場合、コンテナ(ECS/EKS)の永続ボリュームを複数Podで共有する場合などです。一方、データベース(MySQL・PostgreSQL)のデータディレクトリやEC2のルートボリュームは単一インスタンスでの利用が前提なのでEBS一択で、EFSを使うとファイルロック制御の制限でデータ破損リスクがあります。
| 用途 | 推奨 | 理由 |
|---|---|---|
| DB(RDS/EC2 MySQL) | EBS gp3 | 低レイテンシ・単一アタッチ前提 |
| Web冗長化のuploads共有 | EFS | 複数EC2同時書込が必須 |
| ログ・バックアップ保管 | S3 | 単価最安・耐久性11-nine |
| コンテナ永続ボリューム | EFS | Pod再配置で同データ参照 |
コスト面では、EFSはEBSの約3.75倍の単価のため、共有要件がなければEBSで構成すべきです。「とりあえずEFS」は月額コストを大きく押し上げる典型的なアンチパターンで、共有が真に必要な領域だけEFS、それ以外はEBS、保管目的ならS3、という3層の使い分けが基本戦略です。