どーも。shihopowerです!今日はEFSとEBSの差分を確認しましたので、記事にまとめました。AWSSAP対策をしていて、EFSを使用して設計している選択肢と、EBSを使用して設計している選択肢のどっちのほうが要件をより満たしていてベストプラクティスだろう?と考えた時に、両者の差分をきっちりおさえておかないと自信をもって選択できないことに気が付きました。
実際に調べてみると、EFSとEBSは、どちらもEC2インスタンスから利用可能なストレージサービスですが、ストレージ形式、共有の可否、およびスケーラビリティにおいて大きな違いがあるんです。
「EFSとEBSってどう違うの?」って問われたときにすらすらと自信をもって答えられない人はぜひ内容確認していただけると嬉しいです!
目次
- 基本的なストレージ形式と接続方式を説明する
- 共有アクセス(接続性)の違いを説明する
- 可用性と配置(AZ)の範囲を説明する
- 容量とスケーラビリティを説明する
- 主なユースケースを説明する
- 比較まとめ表を示す
1. 基本的なストレージ形式と接続方式を説明する
- Amazon EBS: ブロックストレージ形式であり、EC2インスタンスのネットワーク接続型ディスクボリュームとして動作します。
- Amazon EFS: NASに似たファイルストレージ形式であり、ネットワークファイルシステム(NFS v4)プロトコルを使用してアクセスします。
2. 共有アクセス(接続性)の違いを説明する
- Amazon EBS: 基本的に1つのボリュームは1つのEC2インスタンスにのみアタッチ可能です。ただし、プロビジョンドIOPSボリューム(io1/io2)に限り、複数のインスタンスで共有できるマルチアタッチ機能がありますが、接続先は同一アベイラビリティーゾーン(AZ)内のインスタンスに限られます。
- Amazon EFS: 数千ものEC2インスタンスから同時にアクセスすることが可能な共有ストレージとして設計されています。
3. 可用性と配置(AZ)の範囲を説明する
- Amazon EBS: データの冗長化はAZ内で行われますが、ボリューム自体は特定のAZに固定されているため、他のAZにあるインスタンスから直接アタッチすることはできません。
- Amazon EFS: データは複数のAZに分散して保存されるため、リージョン内の異なるAZにある複数のEC2インスタンスから同時にアクセスが可能です。
4. 容量とスケーラビリティを説明する
- Amazon EBS: ボリュームサイズは最大 16 TB(io2 Block Expressは最大 64 TB)に制限されており、あらかじめプロビジョニング(容量設定)したサイズに対して課金されます。
- Amazon EFS: 容量はペタバイト規模まで自動で拡張・縮小し、事前に容量を設定する必要がない「サーバーレス」な特性を持っています。
5. 主なユースケースを説明する
- Amazon EBS: 低レイテンシーが求められるデータベースのデータ保存、インスタンスのブートボリューム(OS領域)、開発環境などに適しています。
- Amazon EFS: 複数のサーバー間で共有するコンテンツリポジトリ、アプリケーションの共有ディレクトリ、ビッグデータ処理の分散共有ストレージなどに適しています。
6. 比較まとめ表を示す
最後に今までの内容を表にしてまとめてみました。
| 項目 | Amazon EBS | Amazon EFS |
|---|---|---|
| ストレージの種類 | ブロックストレージ | ファイルストレージ |
| 主なプロトコル | 独自(ネットワーク接続型) | NFS v4 |
| 共有アクセス | 原則1対1(マルチアタッチは限定的) | 数千台からの同時アクセスが可能 |
| 可用性範囲 | 単一AZ内 | 複数AZ(リージョン全体) |
| 容量の拡張性 | 事前設定が必要(最大16/64TB) | 自動拡張・縮小(ペタバイト級) |
| 料金体系 | プロビジョニングサイズと期間 | 使用したデータ量に応じた従量課金 |
いかがでしたでしょうか。本記事がどなたかの参考になれば幸いです。