AWS EFSとEBSとS3(違い&いつ使用するか?)


315

この質問のタイトルのとおり、AWS EFS、EBS、S3の実際的な違いは何ですか?

それぞれについての私の理解:

  • S3はどこからでもアクセスできるストレージ機能です
  • EBSはEC2にマウントできるデバイスです
  • EFSはEC2にマウントできるファイルシステムです

では、なぜEFSではなくEBSを使用するのでしょうか。それらは同じユースケースを持っているように見えますが、わずかな意味上の違いはありますか?EFSはAZ間で複製されますが、EBSは単にマウントされたデバイスです。EBSについての理解が不足しているため、区別することができません。

EFSよりもS3を選ぶ理由 どちらもファイルの保存、スケーリング、複製が行われます。S3ではSDKを使用する必要があると思います。EFSがファイルシステムであるため、選択したプログラミング言語から標準のI / Oメソッドを使用してファイルを作成できます。しかし、それだけが本当の違いですか?


2
EFSはNFSのようなものです。EBSは基本的にSANです。S3は、ちょっと WebDavのよう。氷河は、おそらくブルーレイのDVD storagemojo.com/2014/04/25/amazons-glacier-secret-bdxl
ニール・マクギガン

回答:


466

1つの単語の答え:お金:D

US-East-1に保存する1 GB: (2016.dec.20に更新)

  • 氷河:$ 0.004 /月(注:2016年の大幅な値下げ)
  • S3:$ 0.023 /月
  • S3-IA(2015.09に発表):$ 0.0125 /月(+ $ 0.01 /ギガ検索料金)
  • EBS:$ 0.045-0.1 /月(速度に依存-SSDかどうか)+ IOPSコスト
  • EFS:$ 0.3 /月

処理中/処理前にデータを一時的に保存するために使用できるその他のストレージオプション:

  • SNS
  • SQS
  • Kinesisストリーム
  • DynamoDB、SimpleDB

上記のコストは単なるサンプルです。地域によって違いがあり、いつでも変わる可能性があります。また、インターネットへのデータ転送には追加料金がかかります。ただし、それらはサービスの価格間の比率示しています

これらのサービスには、さらに多くの違いがあります。

EFSは次のとおりです。

  • 一般に利用可能(プレビュー外)ですが、お住まいの地域ではまだ利用できない場合があります
  • ネットワークファイルシステム(つまり、レイテンシが大きくなる可能性がありますが、リージョン間でさえ、複数のインスタンス間で共有できます)
  • EBSと比較して高価です(約10倍)。ただし、追加の機能が提供されます。
  • 可用性の高いサービスです。
  • マネージドサービスです
  • EFSストレージをEC2インスタンスに接続できます
  • 複数のEC2インスタンスから同時にアクセスできます
  • 2016年12月20日以降、ダイレクトコネクトを介してEFSストレージをオンプレミスサーバーに直接接続できるようになりました。()

EBSは:

  • ブロックストレージ(フォーマットする必要があるため)。つまり、必要なファイルシステムのタイプを選択できます。
  • ブロックストレージなので、複数のブロックストレージでRAID 1(または0または10)を使用できます
  • 本当に速い
  • 比較的安い
  • Amazonからの新しい発表により、SSD-sではストレージあたり最大16TBのデータを保存できます。
  • バックアップの理由でEBSのスナップショットを作成できます(実行中)。
  • しかし、それは特定の地域にのみ存在します。別のリージョンに移行することはできますが、リージョンを越えてアクセスすることはできません(EC2経由で共有する場合のみ。ただし、ファイルサーバーがあることを意味します)。
  • アタッチするEC2インスタンスが必要です
  • 新機能(2017.Feb.15):ボリュームの使用中に、ボリュームサイズの増加、パフォーマンスの調整、またはボリュームタイプの変更ができるようになりました。変更が有効になるまで、アプリケーションを引き続き使用できます。

S3は:

  • オブジェクトストア(ファイルシステムではない)。
  • ファイルと「フォルダ」を保存できますが、従来のファイルシステムの場合のように、ロック、アクセス許可などを設定することはできません。
  • つまり、デフォルトではS3をマウントしてWebサーバーとして使用することはできません。
  • しかし、それはあなたのウェブサイトのためにあなたの画像とビデオを保存するのに最適です
  • 短期間のアーカイブ(例:数週間)に最適です。長期間のアーカイブにも適していますが、Glacierの方がコスト効率が高くなります。
  • ログの保存に最適
  • すべての地域のデータにアクセスできます(追加料金が適用される場合があります)
  • 高可用性、冗長性。基本的にデータ損失はありません(99.999999999%の耐久性、99.9の稼働時間SLA)
  • EBSよりはるかに安い。
  • コンテンツを直接インターネットに提供できます。EC2インスタンスなしで、フル(静的)WebサイトをS3から直接機能させることもできます。

氷河は:

  • 長期アーカイブストレージ
  • 保存するのに非常に安い
  • 取得する可能性が非常に高い
  • データを「読み戻す」のに最大4時間かかります(したがって、長期間取得する必要がないことがわかっているアイテムのみを保存してください)

JDLのコメントで言及したように、価格設定に関してはいくつかの興味深い側面があります。たとえば、Glacier、S3、EFSは使用量に基づいてストレージを割り当てますが、EBSでは割り当てられたストレージを事前に定義する必要があります。つまり、過大評価する必要があります。(ただし、EBSボリュームにストレージを追加するのは簡単です。ある程度のエンジニアリングが必要です。つまり、EBSストレージを常に「超過払い」して、さらに高価にします。)

出典:AWSストレージアップデート–新しい低コストのS3ストレージオプションとGlacier価格の引き下げ


8
データを迅速に復元する必要がある場合、Glacierは非常に高価ですliangzan.net/aws-glacier-calculator
Anatoly

6
S3より安いという意見には同意しませんEBS。ではS3あなただけの自由のための2000 PUTおよび20 000 GETを持つことができます。ではEBS、あなたは自由のために2 000 000 I / O操作を持っています。これが私のQAです。stackoverflow.com/questions/34048866/…
Green

2
2 000 000 S3の読み取りコストは〜0.4 $、2 000 000の書き込みコストは〜$ 5 ...しかし、要点は、タスクに適したストレージを選択する必要があることです。S3は(ほとんど)大きく、頻繁に変更されることはないが、広くアクセス可能なファイルに最適です。(多くの例外を除いて:D)
Adam Ocsvari

2
良い比較。ただし、EBSとEFSのもう1つの大きな違いは、EBSが固定量のストレージであることです。はい、1 GBの比較は異なりますが、なぜ1 GBのEBSパーティションを作成するのですか?最低でも、10 GBのパーティションを作成する場合は、10 GBのデータに保存されている同じ1 GBのデータについて$ .5-1.0を調べます。データを保存する必要性がどれだけ速く増大するか、および支払いを継続したい未使用スペースの量によっては、EFSがより良いオプションになる場合があります。
JDL 2016年

3
また、注目に値します。EFSは現在、Linuxではのみ機能し、Windowsでは機能しません。
Andrew Clark

110

なぜ人々がEFSを支持して最も説得力のある理由を強調していないのでしょうか。EFSは同時に複数のEC2インスタンスにマウントできるため、EFS上のファイルに同時にアクセスできます。

(2020年5月の編集、EBSは同時に複数のEC2へのマウントもサポートしています。https//docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.htmlを参照して ください


私も。質問をしたり、質問に(回答ではなく)投票した人は、UFSシステムとNFSシステムの違いがわからないだけです。
BMW

5
同様に、これはS3とEBSの使用の違いです。S3とEFSは複数のサーバー間で共有されるデータに対して適切に機能しますが、EBSはそうではありません。
ジェフリーワイズマン

また、EFSはCDNの起点として使用できません。この役割にはS3が適しています。CDNに対応する必要のあるアセットがたくさんある場合は、S3を使用することをお勧めします
Moses Liao GZ 2018年

71

比較の修正:

  • S3はどこからでもアクセスできるストレージ機能です
  • EBSはEC2にマウントできるデバイスです
  • EFSは、複数のEC2インスタンスに同時にマウントできるファイルシステムです。

この時点では、EFSとEBSを比較するのは少し時期尚早です。EFSのパフォーマンスは不明であり、信頼性も不明です。

なぜS3を使うのですか?

  • ファイルが1つ以上のEC2インスタンスに対して「ローカル」である必要はありません。
  • (事実上)無限の容量
  • 組み込みのWebサービス、認証

2
West-2で利用できるようになったため、最近EFSボリュームをセットアップしました。大きなファイルで書き込みの問題が発生しているようです。たとえば、「ファイルが大きすぎます」でDockerコンテナーの作成が失敗し、sqlite dbの作成も失敗しました。私が使用していたEBSボリュームでは、これらの問題はありませんでした。したがって、EFSには、現時点で「修正」を必要とするユーザビリティ/信頼性の問題がある可能性があります。
DKebler 2016年

7

比較に追加するには:EFSでの(バースト)読み取り/書き込みパフォーマンスは、収集されたクレジットに依存します。クレジットの収集は、そこに保存するデータの量によって異なります。より多くの日付->より多くのクレジット。つまり、読み取りまたは書き込みが行われる数GBのストレージのみが必要な場合、すぐにクレジットが不足し、througphputが約50 kb / sに低下します。これを修正する唯一の方法(私の場合)は、大きなダミーファイルを追加して、クレジットの獲得率を上げることでした。ただし、より多くのストレージ->より多くのコスト。


2
それは非常に遅いです。最初はこれはOPの間違いだと思っていましたが、ドキュメントを確認した後、それは正しいです(2017年現在)
Jakobovski

7

価格と機能は別として、スループットも大きく異なります(user1677120が言及)。

EBS

EBS docsから取得

| EBS volume | Throughput |           Throughput          |
|    type    |   MiB/s    |         dependent on..        |
|------------|------------|-------------------------------|
| gp2 (SSD)  | 128-160    | volume size                   |
| io1 (SSD)  | 0.25-500   | IOPS (256Kib/s per IOPS)      |
| st1 (HDD)  | 20-500     | volume size (40Mib/s per TiB) |
| sc1 (HDD)  | 6-250      | volume size (12Mib/s per TiB) |

io1、st1、およびsc1の場合、ボリュームサイズに応じて、スループットトラフィックを少なくとも125Mib / sまで、ただし500Mib / sまでバーストできることに注意してください。

たとえば、EBSボリュームをRAID0として展開することで、スループットをさらに向上させることができます。

EFS

EFSドキュメントから取得

| Filesystem |    Base    |   Burst    |
|    Size    | Throughput | Throughput |
|    GiB     |   MiB/s    |   MiB/s    |
|------------|------------|------------|
|         10 |        0.5 |        100 |
|        256 |       12.5 |        100 |
|        512 |       25.0 |        100 |
|       1024 |       50.0 |        100 |
|       1536 |       75.0 |        150 |
|       2048 |      100.0 |        200 |
|       3072 |      150.0 |        300 |
|       4096 |      200.0 |        400 |

基本スループットは保証されています。バーストスループットは、基本スループットを下回っている間、収集したクレジットを使い果たします(そのため、これは限られた時間しかありません。詳細については、こちらをご覧ください。

S3

S3はまったく異なるものであるため、EBSやEFSと比較することはできません。さらに、S3の公開されたスループットメトリックはありません。並行してダウンロードすることでスループットを向上させることができます(AWSで、この方法で基本的に無制限のスループットが得られるとどこかで読んでいます)、またはCloudFrontをミックスに追加します


2

簡単な言葉で

Amazon EBSはブロックレベルのストレージを提供します。

Amazon EFSは、ネットワーク接続の共有ファイルストレージを提供します。

Amazon S3はオブジェクトストレージを提供します。


1

EBSはシンプルです。同じAZのインスタンスに接続できるブロックレベルのストレージであり、インスタンスの寿命に関係なく存続できます。

ただし、興味深い違いは、EFSとS3の違いであり、EFSの適切な使用例を特定することです。

コスト:EFSはS3の約10倍のコストがかかります。

ユースケース:

  • 同時にファイルを処理する必要がある数千のインスタンスがある場合は常に、S3よりもEFSをお勧めします。
  • また、S3はオブジェクトベースのストレージですが、EFSはファイルベースです。つまり、ファイルを継続的に更新(更新)する必要がある場合は常に、EFSを使用する必要があります。
  • S3は最終的には一貫していますが、EFSは強い一貫性があります。結果の一貫性を確保できない場合は、EFSを使用する必要があります

0

Amazon EBSは、ブロックレベルのストレージを提供します-これにファイルシステムを作成してファイルを保存するために使用されます。Amazon EFS-NAS / SANと同様の共有ストレージシステム。それをunixサーバーにマウントして使用する必要があります。Amazon S3-これはオブジェクトベースのストレージであり、各アイテムはhttp URLで保存されます。

違いの1つは、EBSは一度に1つのインスタンスに接続でき、EFSは複数のインスタンスに接続できるため、ストレージを共有する必要があることです。S2プレーンオブジェクトストレージをマウントできません。


0

EFSとS3には同じ目的があり、あらゆる種類のオブジェクトやファイルを保存できます。

しかし、私にとっての唯一の違いは、EFSは、VM(EC2)クラウドで従来のファイルシステムを複数のインスタンスに接続できるように、より柔軟に使用できることです。

一方、S3は、オブジェクト用の独立した柔軟で柔軟なサーバーです。静的ファイル、画像、動画、または静的アプリ(js)のホスティングにも使用できます。

EBSは明らかにOSやOSに関連するものをインストールできるブロックストレージ用です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.